• Bug
  • Status: Closed
  • 1 Critical
  • Resolution: Fixed
  • Byte Code Transform
  • hhuynh
  • Reporter: teck
  • August 06, 2008
  • 0
  • Watchers: 1
  • November 07, 2008
  • October 30, 2008



source: http://forums.terracotta.org/forums/posts/list/0/1282.page

Something about the local monitor acquires we introduce here seems busted. My guess is that we’re missing a monitorexit when an exception is being thrown. The sun java runtime detects imbalance in monitors when exiting methods and throws IllegalMonitorStateException if not enough releases happen. Another possibility is that we’re doing too many releases.

This was with 1.5.0_04 JDK and TC 2.6.1, but I believe this problem exists for any JDK version and all TC versions (or perhaps only since it was made partial in the L1)

Attached is the IllegalMonitorStateException that the user saw. Also attached is a ClassNotFoundException that I think is the precursor to the IllegalMonitorStateException (cnfe.txt) by the same user


Fiona OShea 2008-08-11

Can you give an LOE on fixing this?

Tim Eck 2008-09-15

This synch seems to be sprinkled about and coming up with someting less fragile might take a while. I think this a 2-3 day task to get right

Tim Eck 2008-10-30

checked in a fix to trunk to get some monkey time on it. Will merge to 2.7 at end of this week if everything okay

Tim Eck 2008-10-30

rewrote the lazy faulting to be in synchronized methods of CHM$HashEntry, as opposed to inlining the synchronization in all the other classes that do direct field access

Hung Huynh 2008-10-31

test existed