Project

General

Profile

Actions

Backport #5218

closed

at_exit bug with exception handling

Added by ebeigarts (Edgars Beigarts) almost 10 years ago. Updated over 8 years ago.

Status:
Closed
Priority:
Normal
[ruby-core:39063]

Description

It seems that ruby 1.9.2 and later doesn't like exception handling in at_exit blocks and resets the exit code to 0.

Here is an example:

#!/usr/bin/ruby

at_exit do
  raise "X" rescue nil
end

at_exit do
  nil
end

at_exit do
  exit 1
end

at_exit do
  exit 2
end

Results:

### ruby 1.9.4dev (2011-08-23 trunk 33027) [x86_64-darwin10.8.0]

$ ruby at_exit.rb ; echo $?
0

### ruby 1.9.3dev (2011-07-31 revision 32789) [x86_64-darwin10.8.0]

$ ruby at_exit.rb ; echo $?
0

### ruby 1.9.2p290 (2011-07-09 revision 32553) [x86_64-darwin10.8.0]

$ ruby at_exit.rb ; echo $?
0

### ruby 1.8.7 (2011-06-30 patchlevel 352) [i686-darwin10.8.0]

$ ruby at_exit.rb ; echo $?
1

### jruby 1.6.3 (ruby-1.8.7-p330) (2011-07-07 965162f) (Java HotSpot(TM) 64-Bit Server VM 1.6.0_26) [darwin-x86_64-java]

$ jruby at_exit.rb ; echo $?
1

### jruby 1.6.3 (ruby-1.9.2-p136) (2011-07-07 965162f) (Java HotSpot(TM) 64-Bit Server VM 1.6.0_26) [darwin-x86_64-java]

$ jruby --1.9 at_exit.rb ; echo $?
1

Related issues:

https://github.com/jnicklas/capybara/pull/463
https://github.com/jnicklas/capybara/issues/178
https://github.com/rspec/rspec-core/pull/410

Actions

Also available in: Atom PDF