APAR status
Closed as program error.
Error description
Abend occurred when libzNativeServices.so::onThreadEnd called threadTerminating() due to a invalid J9Object pointer. This abend occurred because there is a path where the global ref can be deleted on one thread while it is being used to call into java on another thread. . This problem is similar to PH23817. . The stack is as follows. . runCallInMethod +0000042C Exception gpProtectedRunCallInMethod(void*) +000000BC Call gpCheckCallin +0000004C Call callVirtualVoidMethod +00000046 Call onThreadEnd +00000040 Call jvmtiHookThreadEnd +0000011E Call
Local fix
Problem summary
**************************************************************** * USERS AFFECTED: All users of IBM WebSphere Application * * Server Liberty for z/OS * **************************************************************** * PROBLEM DESCRIPTION: ABEND0C4/ABENDS0C4 during server stop * * when native routine onThreadEnd calls * * Java routine threadTerminating() * **************************************************************** * RECOMMENDATION: * **************************************************************** ABEND0C4/ABENDSOC4 during server stop when native routine libzNativeServices.so:onThreadEnd calls Java routine ThreadTracker.threadTerminating(). Following is the flow that leads to the abend. Thread 1 in onThreadEnd gets suspended after checking if the global reference is valid. While suspended threadTrackerDeregistration runs on another thread and deletes the global reference. Thread 1 resumes and abends when calling ThreadTracker.threadTerminating() because the global reference in no longer valid. traceback for abending thread is: DSA Entry E Offset Statement Load Mod Program 1 _TDUMP +000000C2 *PATHNAM _TDUMP ... 19 CEEOSIGG +00000000 CELQLIB CEEOSIGG 20 CELQHROD +00000266 CELQLIB CELQHROD 21 runCallInMethod +0000042C *PATHNAM EXCEPTION 22 gpProtectedRunCallInMethod(void*) +000000BC *PATHNAM 23 gpCheckCallin +0000004C *PATHNAM 24 callVirtualVoidMethod +00000046 *PATHNAM 25 onThreadEnd +00000040 *PATHNAM 26 jvmtiHookThreadEnd +0000011E *PATHNAM 27 J9HookDispatch(J9HookInterface**,unsigned long,void*) +0000029C *PATHNAM 28 javaProtectedThreadProc +000002BC *PATHNAM 29 omrsig_protect +000008CA *PATHNAM 30 javaThreadProc +0000008C *PATHNAM 31 thread_wrapper +000009BA *PATHNAM 32 CELQPCMM +00000F80 CELQLIB CELQPCMM
Problem conclusion
Updated the code so the global reference used to call ThreadTracker.threadTerminating() or ThreadTracker.threadStarted() will still be valid when used by onThreadEnd or onThreadStart. The fix for this APAR is currently targeted for inclusion in fix pack 21.0.0.3. Please refer to the Recommended Updates page for delivery information: http://www.ibm.com/support/docview.wss?rs=180&uid=swg27004980
Temporary fix
Comments
APAR Information
APAR number
PH34338
Reported component name
LIBERTY PROF -
Reported component ID
5655W6514
Reported release
CD0
Status
CLOSED PER
PE
NoPE
HIPER
NoHIPER
Special Attention
NoSpecatt / Xsystem
Submitted date
2021-02-09
Closed date
2021-02-23
Last modified date
2021-02-23
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
LIBERTY PROF -
Fixed component ID
5655W6514
Applicable component levels
[{"Business Unit":{"code":"BU054","label":"Systems w\/TPS"},"Product":{"code":"SG19M","label":"APARs - z\/OS environment"},"Platform":[{"code":"PF054","label":"z\/OS"}],"Version":"CD0"}]
Document Information
Modified date:
27 February 2021