Skip to content

Dependency type 'CONDA' is not allowed to be with empty sha1 #67

Description

@yashali

I have set "conda.resolveDependencies=true" for whitesource scan with Unified Agent and also have this environment.yml in my repository:

channels:
  - pytorch
  - defaults
  - akode
  - conda-forge
  - bashtage
dependencies:
  - _libgcc_mutex=0.1
  - _openmp_mutex=4.5
  - ca-certificates=2021.10.8
  - ld_impl_linux-64=2.36.1
  - libffi=3.4.2
  - libgcc-ng=11.2.0
  - libgomp=11.2.0
  - libnsl=2.0.0
  - libstdcxx-ng=11.2.0
  - libzlib=1.2.11
  - ncurses=6.3
  - openssl=3.0.0
  - pip=22.0.3
  - python=3.8.12
  - python_abi=3.8
  - readline=8.1
  - setuptools=60.9.3
  - sqlite=3.37.0
  - tk=8.6.12
  - wheel=0.37.1
  - xz=5.2.5
  - zlib=1.2.11
  - pip:
    - pvt-py-pkg==1.1.1

I get this error while uploading the scan results to server:

[ERROR] [2022-03-09 09:11:00,752 +0000] - Failed to send request to WhiteSource server: Illegal arguments: Invalid dependency info, DependencyInfo@8556f1ec[groupId= null,artifactId= xz,version= 5.2.5,filename= xz-5.2.5-h7b6447c_0,dependencyType= CONDA ]  Dependency type 'CONDA' is not allowed to be with empty sha1
[DEBUG] [2022-03-09 09:11:00,752 +0000] - Failed to send request to WhiteSource server: Illegal arguments: Invalid dependency info, DependencyInfo@8556f1ec[groupId= null,artifactId= xz,version= 5.2.5,filename= xz-5.2.5-h7b6447c_0,dependencyType= CONDA ]  Dependency type 'CONDA' is not allowed to be with empty sha1
org.whitesource.agent.client.WssServiceException: Illegal arguments: Invalid dependency info, DependencyInfo@8556f1ec[groupId= null,artifactId= xz,version= 5.2.5,filename= xz-5.2.5-h7b6447c_0,dependencyType= CONDA ]  Dependency type 'CONDA' is not allowed to be with empty sha1
	at org.whitesource.agent.client.WssServiceClientImpl.extractResultData(WssServiceClientImpl.java:492)
	at org.whitesource.agent.client.WssServiceClientImpl.service(WssServiceClientImpl.java:339)
	at org.whitesource.agent.client.WssServiceClientImpl.updateInventory(WssServiceClientImpl.java:199)
	at org.whitesource.agent.client.WhitesourceService.update(WhitesourceService.java:371)
	at org.whitesource.request.ProjectsSender.update(ProjectsSender.java:791)
	at org.whitesource.request.ProjectsSender.sendRequest(ProjectsSender.java:296)
	at org.whitesource.request.ProjectsSender.sendProjects(ProjectsSender.java:165)
	at org.whitesource.fs.Main.sendScanResults(Main.java:209)
	at org.whitesource.fs.Main.main(Main.java:95)
[INFO] [2022-03-09 09:11:00,752 +0000] - Support token: 03e500d6fae8d4cf897be53ab3c1b80311646817060686

Looks like following is the reason why the above error occurs :

[DEBUG] [2022-03-09 09:10:31,594 +0000] - CondaDependencyResolver - calcSha1 - failed to calculate sha1 for xz:5.2.5
java.io.FileNotFoundException: /opt/conda/miniconda/pkgs/xz-5.2.5-h7b6447c_0 (Is a directory)
	at java.base/java.io.FileInputStream.open0(Native Method)
	at java.base/java.io.FileInputStream.open(FileInputStream.java:212)
	at java.base/java.io.FileInputStream.<init>(FileInputStream.java:154)
	at org.whitesource.agent.hash.HashCalculator.calculateHash(HashCalculator.java:172)
	at org.whitesource.agent.hash.HashCalculator.calculateSHA1(HashCalculator.java:161)
	at org.whitesource.agent.DependencyCalculator.calculateSHA1(DependencyCalculator.java:140)
	at org.whitesource.agent.dependency.resolver.conda.CondaDependencyResolver.calcSha1(CondaDependencyResolver.java:379)
	at org.whitesource.agent.dependency.resolver.conda.CondaDependencyResolver.createDepInfo(CondaDependencyResolver.java:370)
	at org.whitesource.agent.dependency.resolver.conda.CondaDependencyResolver.createAllDepInfos(CondaDependencyResolver.java:343)
	at org.whitesource.agent.dependency.resolver.conda.CondaDependencyResolver.buildCondaTree(CondaDependencyResolver.java:274)
	at org.whitesource.agent.dependency.resolver.conda.CondaDependencyResolver.collect(CondaDependencyResolver.java:155)
	at org.whitesource.agent.dependency.resolver.conda.CondaDependencyResolver.resolveDependencies(CondaDependencyResolver.java:126)
	at org.whitesource.agent.dependency.resolver.DependencyResolutionService.resolveDependenciesOfResolver(DependencyResolutionService.java:382)
	at org.whitesource.agent.dependency.resolver.DependencyResolutionService.resolveDependencies(DependencyResolutionService.java:207)
	at org.whitesource.agent.FileSystemScanner.createProjects(FileSystemScanner.java:255)
	at org.whitesource.fs.scanOrigins.GeneralScanOrigin.getProjects(GeneralScanOrigin.java:189)
	at org.whitesource.fs.scanOrigins.GeneralScanOrigin.scan(GeneralScanOrigin.java:98)
	at org.whitesource.fs.scanOrigins.ScanOrigin.runOriginScan(ScanOrigin.java:36)
	at org.whitesource.fs.FileSystemAgent.createProjects(FileSystemAgent.java:176)
	at org.whitesource.fs.Main.scanProjects(Main.java:116)
	at org.whitesource.fs.Main.main(Main.java:90)


Seems to me that "/opt/conda/miniconda/pkgs/xz-5.2.5-h7b6447c_0" is expected to be a file as per

try (InputStream inputStream = new FileInputStream(resourceFile);

Do we need to handle such a case? Or am I missing something?

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions