Hi,

In message "Re: [ ruby-Bugs-5267 ] exception loss"
    on Thu, 3 Aug 2006 01:01:37 +0900, <noreply / rubyforge.org> writes:

|Initial Comment:
|Ruby processes intermitently fail to terminate when signalled. The trap declared in these ruby scripts simply raises an exception and the exception is somehow lost. A simple demonstration setup consists of a exception handler script (handleException.rb) that creates a thread whose job is to wake up every 10s and count to 1 million. The testcase is driven by another script (testException.rb) whose job is to fork handleException.rb, wait approximately ten seconds, then kill the subprocess. If the process dies with 2s the testcase passes. Otherwise the testcase fails and the teardown tries to kill the subprocess again.
|
|I have seen this testcase complete successfully once (success is deemed as 4000 repetitions), however it was just luck as subsequent runs of exactly the same code failed after a few hundred repetitions.
|
|Some of the things we have tried to fix this problem:
|- Change the exception raised to Interrupt instead of SystemExit.
|- Make the signal handler a critical section.
|- Move the signal handler declaration into a class.
|
|We have never observed the signal being lost.

I am not sure what caused a problem and what you have done to fix it.
Can you show us patches to fix?

							matz.