IV27141: BAD JIT PROFILING LOGIC CAUSES CRASH
Closed as program error.
Error Message: There are a number of possible symptoms, but a common one is a an Unhandled Exception during garbage collection, with vmState=0x00020002 and Module=j9jit26.dll (or of course libj9jit26.so on Linux). . Stack Trace: ----------- Stack Backtrace ----------- walkTransitionFrame+0x293 (jswalk.c:471, 0x72FF4653 <OSB>j9jit26+0x374653<CSB>) jitWalkStackFrames+0x1b8 (jswalk.c:216, 0x72FF4858 <OSB>j9jit26+0x374858<CSB>) GC_VMThreadStackSlotIterator::scanSlots+0x7d (vmthreadstackslotiterator.cpp:106, 0x735F014D <OSB>j9gc26+0xe014d<CSB>) MM_RootScanner::scanOneThread+0xd8 (rootscanner.cpp:498, 0x73521A28 <OSB>j9gc26+0x11a28<CSB>) MM_RootScanner::scanThreads+0x8f (rootscanner.cpp:466, 0x7352189F <OSB>j9gc26+0x1189f<CSB>) MM_RootScanner::scanRoots+0x66 (rootscanner.cpp:1078, 0x73522636 <OSB>j9gc26+0x12636<CSB>) MM_MarkingScheme::markLiveObjectsRoots+0x50c (markingscheme.cpp:1428, 0x735624CC <OSB>j9gc26+0x524cc<CSB>) MM_ParallelMarkTask::run+0x33 (parallelmarktask.cpp:39, 0x73558DD3 <OSB>j9gc26+0x48dd3<CSB>) MM_ParallelDispatcher::slaveEntryPoint+0x77 (paralleldispatcher.cpp:167, 0x735F2B57 <OSB>j9gc26+0xe2b57<CSB>) dispatcher_thread_proc2+0x10d (paralleldispatcher.cpp:94, 0x735F29ED <OSB>j9gc26+0xe29ed<CSB>) j9sig_protect+0x44 (j9signal.c:150, 0x7422F054 <OSB>J9PRT26+0xf054<CSB>) dispatcher_thread_proc+0x2a (paralleldispatcher.cpp:128, 0x735F2ACA <OSB>j9gc26+0xe2aca<CSB>) thread_wrapper+0xda (j9thread.c:1234, 0x7446464A <OSB>J9THR26+0x464a<CSB>) _endthread+0x48 (0x73F9C55C <OSB>msvcr100+0x5c55c<CSB>) _endthread+0xe8 (0x73F9C5FC <OSB>msvcr100+0x5c5fc<CSB>) BaseThreadInitThunk+0xe (0x7568F13C <OSB>kernel32+0x8f13c<CSB>) RtlCreateUserProcess+0x8c (0x7778D819 <OSB>ntdll+0x7d819<CSB>) RtlCreateProcessParameters+0x4e (0x7778DA2B <OSB>ntdll+0x7da2b<CSB>) --------------------------------------- . Only observed to fail with -Xaggressive
The jit compiler creates incorrect code for value profiling. One common outcome is that jitted code ends up calling a Java method on the C stack. If a stack walk occurs in this state (as during garbage collection), the walker gets mighty confused and crashes in various ways.
This defect will be fixed in: 7.0.0 SR2 6.0.1 SR3 . The jit compiler was changed to check for problematic scenarios, and decline to perform value profiling if it could possibly cause this problem.
Reported component name
Reported component ID
Last modified date
APAR is sysrouted FROM one or more of the following:
APAR is sysrouted TO one or more of the following:
Fixed component name
Fixed component ID
Applicable component levels