From: "mame (Yusuke Endoh)" Date: 2013-02-23T15:22:38+09:00 Subject: [ruby-core:52730] [ruby-trunk - Bug #7917][Assigned] Can't write to a Logger in a signal handler Issue #7917 has been updated by mame (Yusuke Endoh). Status changed from Open to Assigned Assignee set to kosaki (Motohiro KOSAKI) Target version set to 2.1.0 This issue is arguable, but anyway I don't consider it a showstopper. I postpone it to 2.1.0. It is very arguable if the fault is in the code, or in the design of Ruby core. -- Yusuke Endoh ---------------------------------------- Bug #7917: Can't write to a Logger in a signal handler https://bugs.ruby-lang.org/issues/7917#change-36824 Author: mperham (Mike Perham) Status: Assigned Priority: Normal Assignee: kosaki (Motohiro KOSAKI) Category: Target version: 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/