Ruby Forum Ruby > Signal handling behaviour change after ruby upgrade

Posted by unknown (Guest)
on 21.10.2006 14:19
(Received via mailing list)
I use an init system written in ruby for my Gnu/linux distro, and it
makes heavy use of signal handling.

After upgrading (stable snapshots)
from
	ruby 1.8.3 (2005-10-26)
to
	ruby 1.8.5 (2006-10-18)

nothing much works any more. It seems that signals are no longer
delivered until _after_ a blocking system call returns. For example:

	#!/bin/ruby -w

	trap("USR1") { puts("USR1") }
	fork { sleep 60 }
	pid = Process::wait()


If you run this up under a recent snapshot and fire some signals at
the process with

	kill -USR1 <pid>

you will get no "USR1" output until AFTER the 60seconds have elapsed and
Process::wait() returns.

The old behaviour was to handle signals immediately, with presumably
SA_RESTART (or whatever it is called) set such that the wait system call
just carries on unaffected after the signal handler has been run.


So, is the change intentional? If so, whats the rationale?

Andrew Walrond
Posted by Yukihiro Matsumoto (Guest)
on 22.10.2006 09:55
(Received via mailing list)
Hi,

In message "Re: Signal handling behaviour change after ruby upgrade"
    on Sat, 21 Oct 2006 21:17:46 +0900, andrew@walrond.org writes:

|I use an init system written in ruby for my Gnu/linux distro, and it
|makes heavy use of signal handling.
|
|After upgrading (stable snapshots)
|from
|	ruby 1.8.3 (2005-10-26) 
|to
|	ruby 1.8.5 (2006-10-18)

It was caused by a partial backport from the HEAD.  The problem was
reported more than year ago in [ruby-talk:147220] by Guillaume
Marcais, but somehow I missed it.  I am sorry.  It will be fixed in
the snapshot soon.

							matz.
Posted by unknown (Guest)
on 22.10.2006 10:34
(Received via mailing list)
On Sun, Oct 22, 2006 at 04:54:21PM +0900, Yukihiro Matsumoto wrote:
> 
> It was caused by a partial backport from the HEAD.  The problem was
> reported more than year ago in [ruby-talk:147220] by Guillaume
> Marcais, but somehow I missed it.  I am sorry.  It will be fixed in
> the snapshot soon.
> 
> 							matz.
> 

Well ok, but don't let it happen again ;)

(I don't think you need make apologies; especially here!)

Andrew Walrond
Posted by David Vallner (Guest)
on 23.10.2006 03:09
(Received via mailing list)
Yukihiro Matsumoto wrote:
> It will be fixed in the snapshot soon.
> 

Time machine batteries dead?

David Vallner
Running for the hills
Posted by Yukihiro Matsumoto (Guest)
on 23.10.2006 07:02
(Received via mailing list)
Hi,

In message "Re: Signal handling behaviour change after ruby upgrade"
    on Mon, 23 Oct 2006 10:09:17 +0900, David Vallner 
<david@vallner.net> writes:

|> It will be fixed in the snapshot soon.
|
|Time machine batteries dead?

Usually I am living in the future.  But I am in the States now. ;-)

							matz.
Posted by M. Edward (Ed) Borasky (Guest)
on 23.10.2006 07:16
(Received via mailing list)
Yukihiro Matsumoto wrote:
>
> 							matz.
>
>
>   
Yeah ... it's tomorrow where you live. :)
Posted by unknown (Guest)
on 07.11.2006 10:45
(Received via mailing list)
On Sun, Oct 22, 2006 at 04:54:21PM +0900, Yukihiro Matsumoto wrote:
> 
> It was caused by a partial backport from the HEAD.  The problem was
> reported more than year ago in [ruby-talk:147220] by Guillaume
> Marcais, but somehow I missed it.  I am sorry.  It will be fixed in
> the snapshot soon.
> 

Fixed - thanks!

Andrew Walrond