[ruby-trunk - Bug #6882][Assigned] parallel test crashes when unknown exception is occured in a test

Issue #6882 has been reported by usa (Usaku NAKAMURA).


Bug #6882: parallel test crashes when unknown exception is occured in a
test

Author: usa (Usaku NAKAMURA)
Status: Assigned
Priority: Normal
Assignee: sorah (Shota F.)
Category: lib
Target version: 2.0.0
ruby -v: ruby 2.0.0dev (2012-08-16 trunk 36711)

test-allを-j付きで実行していると、例えばrdocあたりがバグっていて
RDoc::Errorあたりでテストに失敗した場合、masterはRDoc::Errorという
例外を知らないわけですが、にもかかわらずMarshal.loadしようとするので
master自体がクラッシュしてしまいます。

worker側からは、masterが知ってる例外が何かを知る方法はおそらくないので、
全てのエラー時の例外を適当にラップして渡すか、そもそも例外をMashal.dump
するのをやめるか、のいずれかの方法しかないような気がします。

後者は大変めんどくさいのですが、前者はやってみたらできたのでパッチを
添付します。
実際のレポート表示に使われるメッセージは例外オブジェクトから組み立ててる
わけじゃなくてworker側のメッセージを利用してるようなので、この程度で問題
なさそうに見えます。

Issue #6882 has been updated by usa (Usaku NAKAMURA).

Status changed from Closed to Assigned

これっぽっちも直ってないのでreopen

Bug #6882: parallel test crashes when unknown exception is occured in a
test

Author: usa (Usaku NAKAMURA)
Status: Assigned
Priority: Normal
Assignee: sorah (Shota F.)
Category: lib
Target version: 2.0.0
ruby -v: ruby 2.0.0dev (2012-08-16 trunk 36711)

test-allを-j付きで実行していると、例えばrdocあたりがバグっていて
RDoc::Errorあたりでテストに失敗した場合、masterはRDoc::Errorという
例外を知らないわけですが、にもかかわらずMarshal.loadしようとするので
master自体がクラッシュしてしまいます。

worker側からは、masterが知ってる例外が何かを知る方法はおそらくないので、
全てのエラー時の例外を適当にラップして渡すか、そもそも例外をMashal.dump
するのをやめるか、のいずれかの方法しかないような気がします。

後者は大変めんどくさいのですが、前者はやってみたらできたのでパッチを
添付します。
実際のレポート表示に使われるメッセージは例外オブジェクトから組み立ててる
わけじゃなくてworker側のメッセージを利用してるようなので、この程度で問題
なさそうに見えます。

Issue #6882 has been updated by sorah (Shota F.).

Status changed from Closed to Assigned
Assignee changed from sorah (Shota F.) to usa (Usaku NAKAMURA)

sorry for late reply, go ahead.

Bug #6882: parallel test crashes when unknown exception is occured in a
test

Author: usa (Usaku NAKAMURA)
Status: Assigned
Priority: Normal
Assignee: usa (Usaku NAKAMURA)
Category: lib
Target version: 2.0.0
ruby -v: ruby 2.0.0dev (2012-08-16 trunk 36711)

test-allを-j付きで実行していると、例えばrdocあたりがバグっていて
RDoc::Errorあたりでテストに失敗した場合、masterはRDoc::Errorという
例外を知らないわけですが、にもかかわらずMarshal.loadしようとするので
master自体がクラッシュしてしまいます。

worker側からは、masterが知ってる例外が何かを知る方法はおそらくないので、
全てのエラー時の例外を適当にラップして渡すか、そもそも例外をMashal.dump
するのをやめるか、のいずれかの方法しかないような気がします。

後者は大変めんどくさいのですが、前者はやってみたらできたのでパッチを
添付します。
実際のレポート表示に使われるメッセージは例外オブジェクトから組み立ててる
わけじゃなくてworker側のメッセージを利用してるようなので、この程度で問題
なさそうに見えます。

Issue #6882 has been updated by usa (Usaku NAKAMURA).

Status changed from Assigned to Closed

順序前後。もう入れました。


Bug #6882: parallel test crashes when unknown exception is occured in a
test

Author: usa (Usaku NAKAMURA)
Status: Closed
Priority: Normal
Assignee: usa (Usaku NAKAMURA)
Category: lib
Target version: 2.0.0
ruby -v: ruby 2.0.0dev (2012-08-16 trunk 36711)

test-allを-j付きで実行していると、例えばrdocあたりがバグっていて
RDoc::Errorあたりでテストに失敗した場合、masterはRDoc::Errorという
例外を知らないわけですが、にもかかわらずMarshal.loadしようとするので
master自体がクラッシュしてしまいます。

worker側からは、masterが知ってる例外が何かを知る方法はおそらくないので、
全てのエラー時の例外を適当にラップして渡すか、そもそも例外をMashal.dump
するのをやめるか、のいずれかの方法しかないような気がします。

後者は大変めんどくさいのですが、前者はやってみたらできたのでパッチを
添付します。
実際のレポート表示に使われるメッセージは例外オブジェクトから組み立ててる
わけじゃなくてworker側のメッセージを利用してるようなので、この程度で問題
なさそうに見えます。