Details
-
Type:
Bug
-
Status:
Open
-
Priority:
Major
-
Resolution: Unresolved
-
Affects Version/s: 3.0.1
-
Fix Version/s: 3.1.4
-
Component/s: None
-
Labels:None
-
Number of attachments :
Description
Since the reflection changes to use bytecode generation, we've been getting a low probability crash during GC stack scanning where the stackwalker thinks we should be in
org/jikesrvm/runtime/Reflection;.invoke, but the actual ip is somewhere else.
For one example, see:
This crash happens in a few tests per sanity run. No correlation to test or jikes rvm configuration, but the stack trace/error message is always from the stackwalker trying to map the cmid it has found in the stack frame, finding that the cmid is for Reflection.invoke, but that the actual ip is somewhere else.
This problem is still occurring even after r14934, for example:
http://jikesrvm.anu.edu.au/cattrack/results/piccolo.watson.ibm.com/sanity-ppc32/5055/BaseBaseMarkSweep/default/dacapo/eclipse/default/Output.txt
I believe the problem lies with the stack walking on PPC. We're getting the CMID for the frame below the current frame rather than the current frame. Maybe I can disprove this by finding the same failure on IA32. The fault could be that "this" for the reflective method call is null and the exception being generated at this point is legitimate.