Skip to content

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

@yashali

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?

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