KB Article #73538

TPM_DISCONNECT error: procengine(procengine(ac_tpm)):invalid TPM handle 0 passed to the TPM_DISCONNECT extension

Problem

What does error below mean?
How to solve?



-- procengine(procengine(ac_tpm)):invalid TPM handle 0 passed to the TPM_DISCONNECT extension



(the whole error is:



ERROR:20110328 16.26.54.86:procengine(procengine(ac_tpm)):LOAD: failed to load object file "tpmMB.so": No such file or directory
ERROR:20110328 16.26.54.86:procengine(procengine(acEnv)):The MBC '${CORE_ROOT}/4edi/component/ac_tpm.x4' threw an exception in statement 'MBCE_APPCONN.Start'
.
ERROR:20110328 16.58.06.62:procengine(procengine(ac_tpm)):invalid TPM handle 0 passed to the TPM_DISCONNECT extension function
ERROR:20110328 16.58.06.62:procengine(procengine(ac_tpm)):invalid TPM handle 0 passed to the TPM_DISCONNECT extension function
ERROR:20110328 16.58.06.62:procengine(procengine(acEnv)):The MBC '${CORE_ROOT}/4edi/component/ac_tpm.x4' threw an exception in statement 'MBCE_APPCONN.Start' )


Resolution

* The shared object tpmMB.so for which we get the load error is placed in $CORE_ROOT/4edi/load. The library is not found by the system and it is the reason why the TA does not start. When it is loaded, it depends on the library file called libtpm.so, which should be is in the Passport installation(<Axway>/Synchrony_V4.0/PassPort_V3.4.4/PassPort_PM/libc/libtpm.so).



* check in the $LIBPATH and $PATH environment variables that the $CORE_ROOT/load and $CORE_ROOT/4edi/load paths are charged before the $CORE_LOCAL/load and $CORE_LOCAL/4edi/load ones?



* you can also modify the PATH variable to add the actual path/paths where these 2 libraries (tpmMB.so AND libtpm.so) are located. (This must be done for both of them, because if only the tpmMB.so is found and the libtpm.so is not, you will still get the same error of not being able to load tpmMB.so.)