United StatesChange Country, Oracle Worldwide Web Sites Communities I am a... I want to...
Bug ID: 6936709 AsyncGetCallTrace doesn't handle inexact stack walking properly
6936709 : AsyncGetCallTrace doesn't handle inexact stack walking properly

Details
Type:
Bug
Submit Date:
2010-03-19
Status:
Resolved
Updated Date:
2010-09-24
Project Name:
JDK
Resolved Date:
2010-04-21
Component:
hotspot
OS:
solaris_9
Sub-Component:
svc
CPU:
sparc
Priority:
P3
Resolution:
Fixed
Affected Versions:
hs17
Fixed Versions:
hs18

Related Reports
Backport:
Backport:
Backport:
Backport:
Relates:

Sub Tasks

Description
AsyncGetCallTrace often returns traces that report a 0 bci.  The problem is that the logic in is_decipherable_compiled_frame has two tests that look like this:

  if (pc_desc != NULL &&
      pc_desc->scope_decode_offset() == DebugInformationRecorder::serialized_null) {

that should be:

  if (pc_desc == NULL ||
      pc_desc->scope_decode_offset() == DebugInformationRecorder::serialized_null) {

The existing logic keeps us from doing searching nearby for valid PcDescs and selecting them as the start of the stack walk.  I would have expected vframeStream to assert about this but it apparently does not.

                                    

Comments
EVALUATION

http://hg.openjdk.java.net/jdk7/hotspot-rt/hotspot/rev/547cbe6dacc5
                                     
2010-04-08
EVALUATION

http://hg.openjdk.java.net/jdk7/hotspot-comp/hotspot/rev/547cbe6dacc5
                                     
2010-04-02
EVALUATION

The tests should be recoded as suggested and we may want to revisit the logic for picking a nearest pcdesc since it will search forward instead of backward.
                                     
2010-03-19



Hardware and Software, Engineered to Work Together