BZ #131: Lock records are removed too early

Status fields:

creation_ts:2009-06-23 16:13
component:locks
version:default branch
rep_platform:All
op_sys:All
bug_status:RESOLVED
resolution:FIXED
reporter:stefan@complang.tuwien.ac.at
LOG: [0x00002aaabc020910] Mutex::lock(): pthread_mutex_lock failed: Invalid argument
LOG: [0x00002aaabc020910] Backtrace (8 stack frames):
LOG: [0x00002aaabc020910] /huge/it-build/jdk7/icedtea/openjdk/build/linux-
amd64/lib/amd64/server/libjvm.so [0x2aaaaad40178]
LOG: [0x00002aaabc020910] /huge/it-build/jdk7/icedtea/openjdk/build/linux-
amd64/lib/amd64/server/libjvm.so [0x2aaaaad3fd9b]
LOG: [0x00002aaabc020910] /huge/it-build/jdk7/icedtea/openjdk/build/linux-
amd64/lib/amd64/server/libjvm.so [0x2aaaaad3fb6a]
LOG: [0x00002aaabc020910] /huge/it-build/jdk7/icedtea/openjdk/build/linux-
amd64/lib/amd64/server/libjvm.so [0x2aaaaad3fc3b]
LOG: [0x00002aaabc020910] /huge/it-build/jdk7/icedtea/openjdk/build/linux-
amd64/lib/amd64/server/libjvm.so [0x2aaaaad1062d]
LOG: [0x00002aaabc020910] /huge/it-build/jdk7/icedtea/openjdk/build/linux-
amd64/lib/amd64/server/libjvm.so [0x2aaaaad224a1]
LOG: [0x00002aaabc020910] /huge/it-build/jdk7/icedtea/openjdk/build/linux-
amd64/lib/amd64/server/libjvm.so [0x2aaaaad2297e]
LOG: [0x00002aaabc020910] [0x2aaaab37344e]

When a finalizer synchronizes on another finalizable object, it sometimes happens that
the other object's lock record has already been removed, leading to a nasty program
abort like shown above.

This happens for me when I run Eclipse with OpenJDK/CACAO. The problematic finalizer is
in java.util.Timer.threadReaper.

Comment #1 by stefan@complang.tuwien.ac.at on 2009-06-23 16:17:04

http://mips.complang.tuwien.ac.at/hg/cacao/rev/37c6563f8401