[ruby-dev:49577] [Ruby trunk Bug#12183] require "win32ole" すると終了ステータスが必ず 0 になる

From: masaki.suketa@...
Date: 2016-04-15 23:36:01 UTC
List: ruby-dev #49577
Issue #12183 has been updated by Masaki Suketa.


Cygwin パッケージ同梱のRubyでは再現しました。
自分でビルドしたruby 2.2.4p230 では再現しました。
自分でビルドしたruby 2.3.0 では再現しませんでした。
trunk でも再現しませんでした。

$ /usr/bin/ruby -ve 'require "win32ole"; abort'; echo $?
ruby 2.2.4p230 (2015-12-16 revision 53155) [x86_64-cygwin]
0
$ /usr/local/ruby_2_2_4/bin/ruby -ve 'require "win32ole"; abort'; echo $?
ruby 2.2.4p230 (2015-12-16 revision 53155) [x86_64-cygwin]
0
$ /usr/local/ruby_2_3_0/bin/ruby -ve 'require "win32ole"; abort'; echo $?
ruby 2.3.0p0 (2015-12-25 revision 53290) [x86_64-cygwin]
1
$ /usr/local/bin/ruby -ve 'require "win32ole"; abort'; echo $?
ruby 2.4.0dev (2016-04-16 trunk 54610) [x86_64-cygwin]
1


----------------------------------------
Bug #12183: require "win32ole" すると終了ステータスが必ず 0 になる
https://bugs.ruby-lang.org/issues/12183#change-58102

* Author: Kazutoshi SATODA
* Status: Assigned
* Priority: Normal
* Assignee: Masaki Suketa
* ruby -v: ruby 2.2.4p230 (2015-12-16 revision 53155) [x86_64-cygwin]
* Backport: 2.1: UNKNOWN, 2.2: UNKNOWN, 2.3: UNKNOWN
----------------------------------------
プログラム中で `require "win32ole"` するとそのプログラムが途中でエラーに
なっても終了ステータスが必ず 0 (正常終了)になり、呼び出し側で正しく
エラー判別できません。

~~~
$ ruby -e 'require "win32ole"; abort'; echo $?
0
~~~

`require "win32ole"` しない場合は問題なく、終了ステータスが異常終了を
示します。

~~~
$ ruby -e 'abort'; echo $?
1
~~~

win32ole 以外でも問題ありません。

~~~
$ ruby -e 'require "csv"; abort'; echo $?
1
~~~

Cygwin ruby 2.0.x では問題ありませんでしたが、 2.2.4 にバージョンを
上げたところで問題が起こりました。複数の環境で再現できています。




-- 
https://bugs.ruby-lang.org/

In This Thread

Prev Next