We're updating the issue view to help you get more done. 

Racetrack Problem in info.aduna.concurrent.locks.LockManager

Description

When a thread is blocked, waiting for a lock, this class loops around Object.wait(timeout) and runs System.gc(), to detected if the lock was abandoned (collected by the garbage collector). However, Object.wait can also wake up from a so-called spurious wakeup. Usually this rarely happens, but the call to System.gc() causes spurious wakeups. This causes System.gc() to be called in a loop without a delay eating up all available resources preventing the lock owner thread from completing and releasing the lock.

Environment

None

Status

Assignee

James Leigh

Reporter

James Leigh

Labels

Fix versions

Affects versions

2.6.10
2.7.0-beta1
2.7.0-beta2

Priority

Critical