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