United StatesChange Country, Oracle Worldwide Web Sites Communities I am a... I want to...
JDK-4762958 : occasional crashes/deadlocks from AsyncGetCallTrace()

Details
Type:
Bug
Submit Date:
2002-10-15
Status:
Resolved
Updated Date:
2003-07-18
Project Name:
JDK
Resolved Date:
2003-06-05
Component:
vm-legacy
OS:
solaris_9,generic
Sub-Component:
jvmpi
CPU:
generic
Priority:
P3
Resolution:
Fixed
Affected Versions:
1.4.2,1.4.2_02
Fixed Versions:
1.4.2_02 (02)

Related Reports
Backport:
Duplicate:
Relates:

Sub Tasks

Description
This bug is recorded to collect all available information on AsyncGetCallTrace()
failures. See Comments for more details.

###@###.### 2003-03-14

I believe all of the original crashes and deadlocks are now covered by
other bugs. I'm hijacking this bug to cover a specific deadlock case
between the safepoint mechanism and AsyncGetCallTrace().

                                    

Comments
CONVERTED DATA

BugTraq+ Release Management Values

COMMIT TO FIX:
1.4.2_02
tiger

FIXED IN:
1.4.2_02
tiger

INTEGRATED IN:
1.4.2_02
tiger
tiger-b08
tiger-b10


                                     
2004-06-14
EVALUATION


###@###.### 2002-10-24

The first crash has been fixed by 4759962.

The second and third stack traces look like there are other corner cases 
that the stack is not in a good state to do stack walking.

###@###.### 2003-01-24
The second case in this bug (crash while thread is doing deoptimization)
has been ocurring quite a bit in our testing, and we've just opened a new
bug, 4808151, to cover that case specifically.

###@###.### 2003-03-13

Just to review the bidding:

- first stack trace (12 Sep 2002): a deadlock fixed by 4759962.

- second stack trace (27 Sep 2002): SIGSEGV crash tracked by 4808151

- third stack trace (15 Oct 2002, Volano): SIGSEGV in vframeStream()
  I believe my fix for the following bug will address the third stack
  trace:
  4820592 4/4 AsyncGetCallTrace: assert(pc_desc != 0, "scopeDesc must exist")

- fourth stack trace (Feb 6 2003): SIGBUS in is_walkable_frame()
- fifth stack trace (Feb 27 2003): SIGBUS in is_walkable_frame()
  I believe my fix for the following bug will address the fourth and
  fifth stack traces:

  4757672 3/3 AsyncGetCallTrace() on Solaris/Intel core dumps with assertion
              failure

  One of my tasks was to apply changes that Karen made during the
  Solaris X86 port to the Solaris SPARC port. This included making
  is_walkable_frame() code match more robust code from 
  frame::profile_find_Java_sender_frame.

I believe that all the issues identified in this bug are addressed, but
I'm leaving it open until the Forte folks have a chance to take the new
code out for a spin.

###@###.### 2003-03-14

I'm hijacking this bug to cover a deadlock between the safepoint
mechanism and AsyncGetCallTrace().

###@###.### 2003-03-17

I'm also adding a rare race condition that can occur during initial
class loading. A for-loop assumes the initial frame always has a
sender which isn't true with AsyncGetCallTrace().

###@###.### 2003-03-27

I'm adding two assertion failures that I saw with Server VM testing.
We incorrectly assume that the initial frame derived from the JavaThread's
JavaFrameAnchor is safe for sender walking. We also incorrectly assume
than an i2c adapter frame is always well formed. These last two assumptions
are fine for the regular system, but not with AsyncGetCallTrace().


###@###.### 2003-04-08

I'm adding two more failures that I observed with Java2Demo testing with
the Server VM on X86. We incorrectly assume that the sender of a frame
verified as walkable via forte_is_walkable_frame() is also walkable.
We also incorrectly assume that a compiled frame is well formed. These
last two assumptions are just fine for the regular system. Just not
with AsyncGetCallTrace().
                                     
2004-06-11
PUBLIC COMMENTS

.
                                     
2004-06-10



Hardware and Software, Engineered to Work Together