Actions
Bug #19145
closedTestException#test_exception_in_message timeouts
Description
Testing with 66e5200ba4, I observe following error:
$ make -C redhat-linux-build test-all 'TESTS=-v -n /TestException#test_exception_in_message/' 'MSPECOPT=-fs '
make: Entering directory '/builddir/build/BUILD/ruby-3.2.0-66e5200ba4/redhat-linux-build'
Run options:
--seed=50244
"--ruby=./miniruby -I/builddir/build/BUILD/ruby-3.2.0-66e5200ba4/lib -I. -I.ext/common /builddir/build/BUILD/ruby-3.2.0-66e5200ba4/tool/runruby.rb --extout=.ext -- --disable-gems"
--excludes-dir=/builddir/build/BUILD/ruby-3.2.0-66e5200ba4/test/excludes
--name=!/memory_leak/
-v
-n
/TestException#test_exception_in_message/
# Running tests:
[1/0] TestException#test_exception_in_message = 3.10 sT
1) Timeout:
TestException#test_exception_in_message
Finished tests in 6.405179s, 0.1561 tests/s, 0.3122 assertions/s.
1 tests, 2 assertions, 0 failures, 1 errors, 0 skips
ruby -v: ruby 3.2.0dev (2022-11-24 master 66e5200ba4) [x86_64-linux]
make: *** [uncommon.mk:855: yes-test-all] Error 1
make: Leaving directory '/builddir/build/BUILD/ruby-3.2.0-66e5200ba4/redhat-linux-build'
Last time I was testing with 4b1504ae0a beginning of November and there was not issue
Updated by mame (Yusuke Endoh) about 2 years ago
- Assignee set to nobu (Nobuyoshi Nakada)
I think it has been happening since @nobu (Nobuyoshi Nakada) tweaked the exit process for https://bugs.ruby-lang.org/issues/19016.
Updated by nobu (Nobuyoshi Nakada) about 2 years ago
Does this work?
diff --git a/eval_error.c b/eval_error.c
index 0112dece0d1..7f184691e50 100644
--- a/eval_error.c
+++ b/eval_error.c
@@ -443,6 +443,15 @@ exiting_split(VALUE errinfo, volatile int *exitcode, volatile int *sigstatus)
if (NIL_P(errinfo)) return 0;
+ VALUE eclass = CLASS_OF(errinfo);
+ const VALUE *special_exceptions = GET_VM()->special_exceptions;
+ for (enum ruby_special_exceptions i = 0; i < ruby_special_error_count; ++i) {
+ if (eclass == special_exceptions[i]) {
+ if (exitcode) *exitcode = EXIT_FAILURE;
+ return EXITING_WITH_STATUS;
+ }
+ }
+
if (rb_obj_is_kind_of(errinfo, rb_eSystemExit)) {
ex = sysexit_status(errinfo);
result |= EXITING_WITH_STATUS;
Updated by nobu (Nobuyoshi Nakada) about 2 years ago
- Status changed from Open to Closed
Applied in changeset git|67d0f4821ff9ae550425a66202710d82de886384.
[Bug #19145] volatile
on an argument may not be effective
Updated by vo.x (Vit Ondruch) about 2 years ago
Thx for the fix. With git|0436f1e15a, I don't observe the timeout anymore.
Actions
Like0
Like0Like0Like0Like0