JDK-4780782 : contmont001 test fails due to contended monitor reentry bug
  • Type: Bug
  • Component: vm-legacy
  • Sub-Component: jvmdi
  • Affected Version: 1.4.2,5.0u21
  • Priority: P3
  • Status: Closed
  • Resolution: Fixed
  • OS: generic
  • CPU: generic
  • Submitted: 2002-11-19
  • Updated: 2012-10-01
  • Resolved: 2002-11-26
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.

To download the current JDK release, click here.
Other
1.4.2 betaFixed
Related Reports
Relates :  
Description
--------------------------------------
Test            : nsk/jvmdi/GetCurrentContendedMonitor/contmon001
TestBase        : VM 
VM              : Server,client
Mode            : -Xmixed
Platform        : Windows2000, windows-64, intermittently on solsparc
----------------------------------------
Steps to reproduce 
================
1. cd /net/sqesvr.eng/export/vsn/GammaBase/Bugs/{BugID}
2. sh doit.sh $JAVA_HOME 

Java Version:
----------------------
Java HotSpot(TM) Server VM (build 20021115143907.jmasa.baseline, mixed mode)
----------------------
Failure Log:
----------------------
C:/mks/mksnt/perl.exe X:/VM/testbase/testbase_vm/src/nsk/jvmdi/share/run_jvmdi.pl Y:/VM/NIGHTLY/JDK/PIT/latest/win/bin/java -server -DHANGINGJAVA5428 -server -Xmixed -XX:-ShowMessageBoxOnError -Xdebug -Xnoagent -Xruncontmon001 contmon001
##Exit status of execution step=97
##!checkExitCode

#(GetCurrentContendedMonitor#3) unexpected error: JVMDI_ERROR_THREAD_NOT_SUSPENDED (13)
--------------------------------------

Comments
CONVERTED DATA BugTraq+ Release Management Values COMMIT TO FIX: mantis FIXED IN: mantis-beta INTEGRATED IN: mantis-beta VERIFIED IN: mantis-beta
14-06-2004

EVALUATION ###@###.### 2002-11-19 The target thread is in an Object.wait(0) call. While it is waiting it has a suspend-equivalent condition set. However, once it is notified, it clears the suspend-equivalent condition and tries to reenter the monitor. The raw_enter() code has a check for a pending suspend request, but if the target thread makes it past that point and blocks on the contended mutex, then the target thread is not in a place that wait_for_ext_suspend_completion() recognizes as a suspend-equivalent condition.
11-06-2004

PUBLIC COMMENTS .
10-06-2004

SUGGESTED FIX ###@###.### 2002-11-20 Please see the attached 4780782-webrev.tar file for the proposed (pre-code review) changes.
20-11-2002