JDK-4529296 : issuspended002 times out waiting for a bkpt with -Xcomp
Type:Bug
Component:core-svc
Sub-Component:debugger
Affected Version:1.4.0
Priority:P4
Status:Closed
Resolution:Fixed
OS:solaris_7
CPU:sparc
Submitted:2001-11-19
Updated:2004-05-17
Resolved:2002-09-06
The Version table provides details related to the release that this issue/RFE will be addressed.
Unresolved : Release in which this issue/RFE will be addressed. Resolved: Release in which this issue/RFE has been resolved. Fixed : Release in which this issue/RFE has been fixed. The release containing this fix may be available for download as an Early Access Release or a General Availability Release.
EVALUATION
Jim wrote:
> > I don't yet
> > understand how full speed works, but I noticed a compiler thread
> > so I changed the test to do a compilerThread.resume() next
> > to the 2nd thread2.resume() above. This makes the test pass.
Jim is right. The compiler thread is suspended and the thread2 is blocked
for compilation while debugger is waiting for breakpoint.
I think testcase should not suspend compiler thread and resume java thread
and expect for java thread to hit the breakpoint.
Thanks,
Swamy
###@###.### 2002-02-05
Finally we have decided not to allow suspend and resume of compiler threads.
So we will filter out the compiler thread information and disallow suspend
and resume of compiler thread.
Thanks,
Swamy
11-06-2004
PUBLIC COMMENTS
Fixed code in JVMDI to filter out the compilter thread and also
disallowing suspend and resume of compiler thread.
Thanks,
Swamy
10-06-2004
SUGGESTED FIX
See the attached webrev.
NOTE: The attached webrev is incomplete. The following diff is
also required in src/share/vm/prims/jvmdi.cpp (note that these
line numbers might be a little off)
src/share/vm/prims/jvmdi.cpp:
2816c2816
< for (int i=0; i<nthreads; i++) {
---
> for (int i=0, j=0; i<nthreads; i++) {
2818c2818
< assert(thread_obj != NULL, "thread_obj != NULL");
---
> assert(thread_obj != NULL, "thread_obj is NULL");
2825c2825
< thread_objs[i] = thread_obj;
---
> thread_objs[j++] = thread_obj;
See also bug 4688375.
###@###.### 2002-06-03