Issue #7917 has been updated by kosaki (Motohiro KOSAKI).

Status changed from Assigned to Rejected

Closed. because it's not a bug.
----------------------------------------
Bug #7917: Can't write to a Logger in a signal handler
https://bugs.ruby-lang.org/issues/7917#change-37565

Author: mperham (Mike Perham)
Status: Rejected
Priority: Normal
Assignee: kosaki (Motohiro KOSAKI)
Category: 
Target version: current: 2.1.0
ruby -v: 2.0.0-rc2


Looks like Ruby 2.0 does not allow Mutex#lock within a signal handler.  This prevents Logger from working since it uses an underlying mutex.

log writing failed. can't be called from trap context
log writing failed. can't be called from trap context
log writing failed. can't be called from trap context
log writing failed. can't be called from trap context

Here's Ruby code which reproduces the problem:

require 'logger'

LOG = Logger.new(STDOUT)
LOG.info "Now logging!"

trap 'INT' do
  LOG.info "Hello"
end

sleep
LOG.info "Done"

Run it and hit Ctrl-C.


-- 
http://bugs.ruby-lang.org/