Actions
Bug #15992
closedAn exception breaks monitor state and cause deadlock
Bug #15992:
An exception breaks monitor state and cause deadlock
Description
lib/monitor.rb provides Monitor.
But its state handling is weak for interrupts caused by Thread.kill for example timeout libraries.
Timeout exception may happen everywhere. If it raised when the thread is executing
def mon_exit
mon_check_owner
@mon_count -=1
if @mon_count == 0
@mon_owner = nil
# HERE!!!
@mon_mutex.unlock
end
end
It breaks the state of the monitor and it causes deadlock.
Actions