A fix is available
APAR status
Closed as program error.
Error description
Error Description: Two threads could enter a deadlock and prevent process exit when: Thread A: Calls exit()-> which in turn calls DTOR of a static object-> which in turn notifies threadB that unloads yet another library. Then threadA waits for a semaphore notification from threadB. Two threads will be seen deadlocked with the following stack trace( these are actual stack traces from a test case that recreates the problem) First thread(B) ========== _global_lock_common(??, ??, ??) at 0x90000000053c83c _rec_mutex_lock(m = 0x09001000a0f32130), line 399 in "rec_mutex.c" terminateAndUnload(??) at 0x90000000168ad90 dlclose(handle = 0x0000000000000003), line 650 in "dlfcn.c" func(x_void_ptr = (nil)), line 34 in "CPlusPlusClass.C" Another thread ( A) ========== _event_sleep(??, ??, ??, ??, ??, ??) at 0x900000000550844 _event_wait(??, ??) at 0x900000000551344 _cond_wait_local(??, ??, ??) at 0x90000000055f81c _cond_wait(??, ??, ??) at 0x90000000055fe08 pthread_cond_wait(??, ??) at 0x900000000560a5c waitForResponse(), line 27 in "responder.c" CPlusPlusClass::~CPlusPlusClass()(this = 0x09001000a1099658, __dtorFlags = 2), line 62 in "CPlusPlusClass.C" __srterm__0()(), line 78 in "CPlusPlusClass.C" __sterm80000000_x_2fhome_2fanandd_2ftester_2fCPlusPlusCla ss_2eC()(), line 55 in "CPlusPlusClass.C" __catchThrownException() at 0x9000000005d5a80 terminate_one_library(??, ??) at 0x900000001689630 __run_final_dtors() at 0x90000000168722c __C_runtime_termination() at 0x10000064c exit(??) at 0x900000001582a80 CPlusPlusClass::foo()(this = 0x09001000a1099658), line 117 in "CPlusPlusClass.C" main(), line 5 in "Main.C"
Local fix
Problem summary
Customer may see deadlock if registration order of run_final_dtors()" as an atexit() function has changed.
Problem conclusion
Solution is to avoid deadlock even if the registration order of run_final_dtors()" as an atexit() function is changed by running real run_final_dtors only at the end.
Temporary fix
Comments
6100-08 - use AIX APAR IV64454 6100-09 - use AIX APAR IV63322 7100-02 - use AIX APAR IV64248 7100-03 - use AIX APAR IV63130
APAR Information
APAR number
IV63130
Reported component name
AIX V7.1
Reported component ID
5765H4000
Reported release
710
Status
CLOSED PER
PE
NoPE
HIPER
NoHIPER
Submitted date
2014-08-01
Closed date
2014-08-13
Last modified date
2016-05-11
APAR is sysrouted FROM one or more of the following:
APAR is sysrouted TO one or more of the following:
Fix information
Fixed component name
AIX V7.1
Fixed component ID
5765H4000
Applicable component levels
R710 PSY U868052
UP14/10/29 I 1000
[{"Business Unit":{"code":"BU054","label":"Systems w\/TPS"},"Product":{"code":"SSMV87","label":"AIX 6.1 Enterprise Edition"},"Component":"","ARM Category":[],"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"710","Edition":"","Line of Business":{"code":"LOB08","label":"Cognitive Systems"}},{"Business Unit":{"code":"BU058","label":"IBM Infrastructure w\/TPS"},"Product":{"code":"SSMVAX","label":"AIX Express Edition"},"Component":"","ARM Category":[],"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"710","Edition":"","Line of Business":{"code":"LOB08","label":"Cognitive Systems"}},{"Business Unit":{"code":"BU054","label":"Systems w\/TPS"},"Product":{"code":"SG11R","label":"AIX 7.1 HIPERS, APARs and Fixes"},"Component":"","ARM Category":[],"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"710","Edition":"","Line of Business":{"code":"","label":""}}]
Document Information
Modified date:
11 May 2016