Probe Deployment Fails with Dependency Problem When Using Remote Distsrv

Document ID : KB000126694
Last Modified Date : 11/02/2019
Show Technical Document Details
Issue:
When trying to deploy a probe to a robot which reports to a downstream hub with its own distsrv the
  deployment may fail with a 'Dependency problem' error.

Probe Deployment - Remote Distsrv - Dependency Problem

 
Environment:
Multiple Hubs with the Upstream Hub's distsrv configured to use 'Use remote distsrv on distribution' and the
   remote distsrv is not using its local archive.

Distsrv Settings

Distribution Diagram
Cause:
When the environment is configured to use 'Use remote distsrv on distribution' and the downstream distsrv is not using its
   local archive (meaning it will pull the package from the upstream distsrv) the downstream distsrv will check and validate
   that the upstream distsrv has ALL dependencies from ALL tabs present. 

In the following log snippet the websphere 1.80 package was being deployed to a downstream x86 Linux robot. The downstream
   distsrv failed the deployment as it could not find the zLinux jre package in the upstream archive. Although the deployment is 
   going to an Intel based Linux system the remote distsrv looks for all dependencies to be present in the up stream archive.


ex. downstream distsrv.log snippet

Feb  6 13:43:12:800 [7968] distsrv: ExtractVersion - 1.80 -> 1.800000
Feb  6 13:43:12:800 [1272] distsrv: --- CheckRemoteJobAdd done
Feb  6 13:43:12:801 [7968] distsrv: TmpPackageFile (websphere, 1.80, 1) -> websphere=1.80.zip
Feb  6 13:43:12:801 [7968] distsrv: Enter: unzip_this_file: is_defined _WIN32
Feb  6 13:43:12:803 [7968] distsrv: unzip successful for: jobs/polgr01-primary+system-2/websphere=1.80.zip
Feb  6 13:43:12:803 [7968] distsrv: VerifyCrC 8107 bytes read by nimMD5Sum
Feb  6 13:43:12:803 [7968] distsrv: VerifyCrc xUdJKJFSfaUsqz03Z08dtQ== is ok
Feb  6 13:43:12:803 [7968] distsrv: cfgReader file open: C:\Nimsoft/archive/temp_d6/info.pkg
Feb  6 13:43:12:804 [7968] distsrv: cfgReader file close: C:\Nimsoft/archive/temp_d6/info.pkg
Feb  6 13:43:12:805 [7968] distsrv: TmpPackageFile - name = jre_zlinux, version = 1.70, match = 1
Feb  6 13:43:12:805 [7968] distsrv: ExtractVersion - 1.70 -> 1.700000
Feb  6 13:43:12:805 [7968] distsrv: TmpPackageFile (jre_zlinux, 1.70, 1) -> jre_zlinux=1.70.zip
Feb  6 13:43:12:805 [7968] distsrv: RequestQueueGetResult - id=105: not found
Feb  6 13:43:12:805 [7968] distsrv: RequestQueueRemove - id=105
Feb  6 13:43:12:805 [7968] distsrv: do_dependency_check - websphere to /polenta851win/secondaryHub/polgr01-robot Error when attempting to fetch package jre_zlinux - not found - will let the distribution fail
Feb  6 13:43:12:805 [7968] distsrv: TmpPackageFile - name = jre_solaris, version = 1.6.0, match = 1
Feb  6 13:43:12:805 [7968] distsrv: ExtractVersion - 1.6.0 -> 1.060000
Feb  6 13:43:12:805 [7968] distsrv: TmpPackageFile (jre_solaris, 1.6.0, 1) -> jre_solaris=1.06.zip
Feb  6 13:43:12:805 [7968] distsrv: Executing 'job_remote_request' to /polenta851win/primaryHub/polgr01-primary/distsrv (source=/polenta851win/secondaryHub/polgr01-secondary/distsrv, job_id=polgr01-primary+system-2, package=jre_solaris)...
Feb  6 13:43:12:805 [7968] distsrv: RequestQueueAdd - address=/polenta851win/primaryHub/polgr01-primary/distsrv, request=job_remote_request, timeout=60
Feb  6 13:43:12:805 [7968] distsrv: request for jre_solaris performed (0/1)
Feb  6 13:43:12:805 [7968] distsrv: websphere - Some dependency package is not yet fetched
Resolution:
Ensure that the upstream archive contains all the necessary dependency packages. This can be done by editing the package in the IM
   Client and checking the 'Dependencies' Tab under each OS section Tab and then downloading any missing dependencies.

IM Client - Edit Package - Check Dependencies

Note: The downstream hub will only deploy the necessary packages for the target robot OS. For example even
    though in this example it checks for jre_zlinux it will not deploy this package when the target is Intel Linux. The
    distsrv would check for java_jre 1.60 or greater as specified under the Linux Tab


An alternative would be to populate the downstream archive with the necessary packages (robot, websphere 1.80, java_jre) and then
   configure the downstream distsrv to use its local archive ('Use local archive for accepted remote distributions'). When this is enabled
   it will not check every dependency, it will only check the dependencies for the target OS in its local archive.