# Workaround for 1.8.6 with CommandLine

**URL:** <https://www.ruby-forum.com/t/workaround-for-1-8-6-with-commandline/90631>\
**Category:** Ruby\
**Created:** [March 30, 2007, 3:52pm UTC](https://www.ruby-forum.com/t/workaround-for-1-8-6-with-commandline/90631 "2007-03-30T15:52:37Z")\
**Posts on this page:** 8\
**Page:** 1

<div class="post-metadata">

**Author:** ![sauy7](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/ecc23a/32.png) [@sauy7](https://www.ruby-forum.com/u/sauy7)\
**Post date:** [March 30, 2007, 3:52pm UTC](https://www.ruby-forum.com/t/workaround-for-1-8-6-with-commandline/90631/1 "2007-03-30T15:52:37Z")

</div>

Hello

If you are using ruby-1.8.6, you may have noticed a bug where exit  
always  
returns 0 when called from within an at\_exit block. You can test this  
on your  
machine with the following little snippet:

ruby -e ‘at\_exit { exit(1) }’ ; echo $?

The result should be ‘1’, but ruby-1.8.6 will return ‘0’.

To workaround this when using commandline, you can change an application  
that reads like:

require ‘rubygems’  
require ‘commandline’  
class App \< CommandLine::Application  
end

to

require ‘rubygems’  
require ‘commandline’  
class App \< CommandLine::Application\_wo\_AutoRun  
end  
App.run

This will not use the at\_exit technique of self launching the app and  
give the correct  
exit code.

Jim

---

<div class="post-metadata">

**Author:** ![sauy7](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/ecc23a/32.png) [@sauy7](https://www.ruby-forum.com/u/sauy7)\
**Post date:** [March 30, 2007, 4:51pm UTC](https://www.ruby-forum.com/t/workaround-for-1-8-6-with-commandline/90631/2 "2007-03-30T16:51:48Z")

</div>

On Fri, 30 Mar 2007, Jim F. wrote:

> Hello
> 
> If you are using ruby-1.8.6, you may have noticed a bug where exit always  
> returns 0 when called from within an at\_exit block. You can test this on your  
> machine with the following little snippet:
> 
> ruby -e ‘at\_exit { exit(1) }’ ; echo $?
> 
> The result should be ‘1’, but ruby-1.8.6 will return ‘0’.

wow. i rely on that combination in a few places, in particular i  
dis-inherit  
exit  
handlers in child processes by doing this as the first line

at\_exit{ exit! status }

do you know if it’s a bug or new behaviour?

-a

---

<div class="post-metadata">

**Author:** ![sauy7](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/ecc23a/32.png) [@sauy7](https://www.ruby-forum.com/u/sauy7)\
**Post date:** [March 30, 2007, 5:33pm UTC](https://www.ruby-forum.com/t/workaround-for-1-8-6-with-commandline/90631/3 "2007-03-30T17:33:55Z")

</div>

On 3/30/07, removed\_email\_address@domain.invalid [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:

> On Fri, 30 Mar 2007, Jim F. wrote:
> 
> wow. i rely on that combination in a few places, in particular i dis-inherit  
> exit  
> handlers in child processes by doing this as the first line
> 
> at\_exit{ exit! status }
> 
> do you know if it’s a bug or new behaviour?

As I understand it (and according to Nathaniel Talbot), it is a bug  
and breaks testunit.  
See bug 9300 at:

[http://rubyforge.org/tracker/?func=detail&atid=1698&aid=9300&group\_id=426](http://rubyforge.org/tracker/?func=detail&atid=1698&aid=9300&group_id=426)

---

<div class="post-metadata">

**Author:** ![sauy7](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/ecc23a/32.png) [@sauy7](https://www.ruby-forum.com/u/sauy7)\
**Post date:** [March 30, 2007, 6:17pm UTC](https://www.ruby-forum.com/t/workaround-for-1-8-6-with-commandline/90631/4 "2007-03-30T18:17:16Z")

</div>

On Sat, 31 Mar 2007, Jim F. wrote:

> > do you know if it’s a bug or new behaviour?
> 
> As I understand it (and according to Nathaniel Talbot), it is a bug  
> and breaks testunit.  
> See bug 9300 at:
> 
> [http://rubyforge.org/tracker/?func=detail&atid=1698&aid=9300&group\_id=426](http://rubyforge.org/tracker/?func=detail&atid=1698&aid=9300&group_id=426)

good to know. i’m preparing and installer for a classified system that  
was  
going to use 1.8.6 as we speak! i’ve revert to 1.8.5. thanks a bunch.

-a

---

<div class="post-metadata">

**Author:** ![sauy7](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/ecc23a/32.png) [@sauy7](https://www.ruby-forum.com/u/sauy7)\
**Post date:** [March 30, 2007, 7:03pm UTC](https://www.ruby-forum.com/t/workaround-for-1-8-6-with-commandline/90631/5 "2007-03-30T19:03:24Z")

</div>

On 3/30/07, removed\_email\_address@domain.invalid [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) rote:

> > > do you know if it’s a bug or new behaviour?

It’s a bug. Already fixed in 1.9, but I haven’t heard anything about  
applying the fix to 1.8 branch yet. Which is unfortunate, as it breaks  
quite  
a few things.

---

<div class="post-metadata">

**Author:** ![sauy7](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/ecc23a/32.png) [@sauy7](https://www.ruby-forum.com/u/sauy7)\
**Post date:** [March 30, 2007, 7:33pm UTC](https://www.ruby-forum.com/t/workaround-for-1-8-6-with-commandline/90631/6 "2007-03-30T19:33:31Z")

</div>

On Sat, 31 Mar 2007, Alexey V. wrote:

> On 3/30/07, removed\_email\_address@domain.invalid [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) rote:
> 
> > > > do you know if it’s a bug or new behaviour?
> 
> It’s a bug. Already fixed in 1.9, but I haven’t heard anything about  
> applying the fix to 1.8 branch yet. Which is unfortunate, as it breaks quite  
> a few things.

thank you!

-a

---

<div class="post-metadata">

**Author:** ![sauy7](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/ecc23a/32.png) [@sauy7](https://www.ruby-forum.com/u/sauy7)\
**Post date:** [April 3, 2007, 7:42am UTC](https://www.ruby-forum.com/t/workaround-for-1-8-6-with-commandline/90631/7 "2007-04-03T07:42:22Z")

</div>

On 4/2/07, Nobuyoshi N. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:

> It was fixed in 1.8, and doesn’t exist in 1.9.

Ah, that is correct. Sorry for the confusion.

Is there any prospect of patch release soon? I just had to write  
something  
like: “Prerequisites: Ruby 1.8.4 or 1.8.5 (but there is a known bug in  
1.8.6)”  
in CruiseControl.rb 1.1 release documentation. This just doesn’t look  
good… ☹

---

<div class="post-metadata">

**Author:** ![sauy7](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/ecc23a/32.png) [@sauy7](https://www.ruby-forum.com/u/sauy7)\
**Post date:** [April 2, 2007, 3:11pm UTC](https://www.ruby-forum.com/t/workaround-for-1-8-6-with-commandline/90631/8 "2007-04-02T15:11:23Z")

</div>

Hi,

At Sat, 31 Mar 2007 02:02:11 +0900,  
Alexey V. wrote in [ruby-talk:246032]:

> It’s a bug. Already fixed in 1.9, but I haven’t heard anything about  
> applying the fix to 1.8 branch yet. Which is unfortunate, as it breaks quite  
> a few things.

It was fixed in 1.8, and doesn’t exist in 1.9.
