Issue #16492 has been updated by vo.x (Vit Ondruch).

File Time.png added
File 0001-Timeout-the-test_bug_reporter_add-witout-raising-err.patch added

After a lot of testing, I think that the test should not fail with the timeout, because the input for the asserts is collected quite early and the system just does not have time to finish the threads and the child process. Since we don't want to test the system, but only the Ruby, I think the timeout should be just ignored. Please see the attached patch.

And just for illustration, even though the threads are timeouted, it still can take long seconds to finish the test case, because the test waits for the process exit status `status ||= Process.wait2(pid)[1]` and it might take a while. Attaching graph of the 10000 iterations of the test and the time it takes to finish the test despite the timeout is ignored.

----------------------------------------
Bug #16492: TestBugReporter#test_bug_reporter_add test failures
https://bugs.ruby-lang.org/issues/16492#change-86746

* Author: vo.x (Vit Ondruch)
* Status: Open
* Priority: Normal
* ruby -v: ruby 2.7.0p0 (2019-12-25 revision 647ee6f091) [s390x-linux]
* Backport: 2.5: UNKNOWN, 2.6: UNKNOWN, 2.7: UNKNOWN
----------------------------------------
Building Ruby packages on Fedora, in 90% of cases, I observe the following error on s390:

~~~
  1) Error:
TestBugReporter#test_bug_reporter_add:
Timeout::Error: execution of assert_in_out_err expired timeout (10 sec)
pid 2061293 killed by SIGKILL (signal 9)
| 
| -:1: [BUG] Segmentation fault at 0x001f73ed000003e8
| ruby 2.7.0p0 (2019-12-25 revision 647ee6f091) [s390x-linux]
| 
| -- Control frame information -----------------------------------------------
| c:0003 p:---- s:0012 e:000011 CFUNC  :kill
| c:0002 p:0021 s:0006 e:000005 EVAL   -:1 [FINISH]
| c:0001 p:0000 s:0003 E:000430 (none) [FINISH]
| 
| -- Ruby level backtrace information ----------------------------------------
| -:1:in `<main>'
| -:1:in `kill'
| 
| -- Other runtime information -----------------------------------------------
| 
| * Loaded script: -
| 
| * Loaded features:
| 
|     0 enumerator.so
|     1 thread.rb
|     2 rational.so
|     3 complex.so
|     4 ruby2_keywords.rb
|     5 /builddir/build/BUILD/ruby-2.7.0/.ext/s390x-linux/enc/encdb.so
|     6 /builddir/build/BUILD/ruby-2.7.0/.ext/s390x-linux/enc/trans/transdb.so
|     7 /builddir/build/BUILD/ruby-2.7.0/abrt.rb
|     8 /builddir/build/BUILD/ruby-2.7.0/.ext/s390x-linux/-test-/bug_reporter.so
| 
| * Process memory map:
| 
| 2aa27a00000-2aa27a01000 r-xp 00000000 fc:03 1845127                      /builddir/build/BUILD/ruby-2.7.0/ruby
| 2aa27a01000-2aa27a02000 r--p 00000000 fc:03 1845127                      /builddir/build/BUILD/ruby-2.7.0/ruby
| 2aa27a02000-2aa27a03000 rw-p 00001000 fc:03 1845127                      /builddir/build/BUILD/ruby-2.7.0/ruby
| 2aa28a7e000-2aa28bfe000 rw-p 00000000 00:00 0                            [heap]
| 3ff9ff80000-3ff9ff81000 r-xp 00000000 fc:03 1844756                      /builddir/build/BUILD/ruby-2.7.0/.ext/s390x-linux/-test-/bug_reporter.so
| 3ff9ff81000-3ff9ff82000 r--p 00000000 fc:03 1844756                      /builddir/build/BUILD/ruby-2.7.0/.ext/s390x-linux/-test-/bug_reporter.so
| 3ff9ff82000-3ff9ff83000 rw-p 00000000 00:00 0 
| 3ffa0000000-3ffa0002000 r-xp 00000000 fc:03 1844387                      /builddir/build/BUILD/ruby-2.7.0/.ext/s390x-linux/enc/trans/transdb.so
| 3ffa0002000-3ffa0003000 r--p 00001000 fc:03 1844387                      /builddir/build/BUILD/ruby-2.7.0/.ext/s390x-linux/enc/trans/transdb.so
| 3ffa0003000-3ffa0004000 rw-p 00000000 00:00 0 
| 3ffa0036000-3ffa0037000 ---p 00000000 00:00 0 
| 3ffa0037000-3ffa0078000 rw-p 00000000 00:00 0 
| 3ffa0078000-3ffa0079000 ---p 00000000 00:00 0 
| 3ffa0079000-3ffa00ba000 rw-p 00000000 00:00 0 
| 3ffa00ba000-3ffa00bb000 ---p 00000000 00:00 0 
| 3ffa00bb000-3ffa00fc000 rw-p 00000000 00:00 0 
| 3ffa00fc000-3ffa00fd000 ---p 00000000 00:00 0 
| 3ffa00fd000-3ffa013e000 rw-p 00000000 00:00 0 
| 3ffa013e000-3ffa013f000 ---p 00000000 00:00 0 
| 3ffa013f000-3ffa0180000 rw-p 00000000 00:00 0 
| 3ffa0180000-3ffa0181000 ---p 00000000 00:00 0 
| 3ffa0181000-3ffa01c2000 rw-p 00000000 00:00 0 
| 3ffa01c2000-3ffa01c3000 ---p 00000000 00:00 0 
| 3ffa01c3000-3ffa0204000 rw-p 00000000 00:00 0 
| 3ffa0204000-3ffa0205000 ---p 00000000 00:00 0 
| 3ffa0205000-3ffa0246000 rw-p 00000000 00:00 0 
| 3ffa0246000-3ffa0247000 ---p 00000000 00:00 0 
| 3ffa0247000-3ffa0288000 rw-p 00000000 00:00 0 
| 3ffa0288000-3ffa0289000 ---p 00000000 00:00 0 
| 3ffa0289000-3ffa02ca000 rw-p 00000000 00:00 0 
| 3ffa02ca000-3ffa02cb000 ---p 00000000 00:00 0 
| 3ffa02cb000-3ffa030c000 rw-p 00000000 00:00 0 
| 3ffa030c000-3ffa030d000 ---p 00000000 00:00 0 
| 3ffa030d000-3ffa034e000 rw-p 00000000 00:00 0 
| 3ffa034e000-3ffa034f000 ---p 00000000 00:00 0 
| 3ffa034f000-3ffa0390000 rw-p 00000000 00:00 0 
| 3ffa0390000-3ffa0391000 ---p 00000000 00:00 0 
| 3ffa0391000-3ffa03d2000 rw-p 00000000 00:00 0 
| 3ffa03d2000-3ffa03d3000 ---p 00000000 00:00 0 
| 3ffa03d3000-3ffa0414000 rw-p 00000000 00:00 0 
| 3ffa0414000-3ffa0415000 ---p 00000000 00:00 0 
| 3ffa0415000-3ffa0456000 rw-p 00000000 00:00 0 
| 3ffa0456000-3ffa0457000 ---p 00000000 00:00 0 
| 3ffa0457000-3ffa0498000 rw-p 00000000 00:00 0 
| 3ffa0498000-3ffa0499000 ---p 00000000 00:00 0 
| 3ffa0499000-3ffa04da000 rw-p 00000000 00:00 0 
| 3ffa04da000-3ffa04db000 ---p 00000000 00:00 0 
| 3ffa04db000-3ffa051c000 rw-p 00000000 00:00 0 
| 3ffa051c000-3ffa051d000 ---p 00000000 00:00 0 
| 3ffa051d000-3ffa055e000 rw-p 00000000 00:00 0 
| 3ffa055e000-3ffa055f000 ---p 00000000 00:00 0 
| 3ffa055f000-3ffa05a0000 rw-p 00000000 00:00 0 
| 3ffa05a0000-3ffa05a1000 ---p 00000000 00:00 0 
| 3ffa05a1000-3ffa05e2000 rw-p 00000000 00:00 0 
| 3ffa05e2000-3ffa05e3000 ---p 00000000 00:00 0 
| 3ffa05e3000-3ffa0624000 rw-p 00000000 00:00 0 
| 3ffa0624000-3ffa0625000 ---p 00000000 00:00 0 
| 3ffa0625000-3ffa0666000 rw-p 00000000 00:00 0 
| 3ffa0666000-3ffa0667000 ---p 00000000 00:00 0 
| 3ffa0667000-3ffa06a8000 rw-p 00000000 00:00 0 
| 3ffa06a8000-3ffa06a9000 ---p 00000000 00:00 0 
| 3ffa06a9000-3ffa06ea000 rw-p 00000000 00:00 0 
| 3ffa06ea000-3ffa06eb000 ---p 00000000 00:00 0 
| 3ffa06eb000-3ffa072c000 rw-p 00000000 00:00 0 
| 3ffa072c000-3ffa072d000 ---p 00000000 00:00 0 
| 3ffa072d000-3ffa076e000 rw-p 00000000 00:00 0 
| 3ffa076e000-3ffa076f000 ---p 00000000 00:00 0 
| 3ffa076f000-3ffa07b0000 rw-p 00000000 00:00 0 
| 3ffa07b0000-3ffa07b1000 ---p 00000000 00:00 0 
| 3ffa07b1000-3ffa07f2000 rw-p 00000000 00:00 0 
| 3ffa07f2000-3ffa07f3000 ---p 00000000 00:00 0 
| 3ffa07f3000-3ffa0834000 rw-p 00000000 00:00 0 
| 3ffa0834000-3ffa0835000 ---p 00000000 00:00 0 
| 3ffa0835000-3ffa2980000 rw-p 00000000 00:00 0 
| 3ffa2980000-3ffa2a17000 r-xp 00000000 fc:03 1813828                      /usr/lib64/libm-2.30.9000.so
| 3ffa2a17000-3ffa2a18000 r--p 00096000 fc:03 1813828                      /usr/lib64/libm-2.30.9000.so
| 3ffa2a18000-3ffa2a19000 rw-p 00097000 fc:03 1813828                      /usr/lib64/libm-2.30.9000.so
| 3ffa2a80000-3ffa2ab2000 r-xp 00000000 fc:03 1814596                      /usr/lib64/libcrypt.so.2.0.0
| 3ffa2ab2000-3ffa2ab3000 ---p 00032000 fc:03 1814596                      /usr/lib64/libcrypt.so.2.0.0
| 3ffa2ab3000-3ffa2ab4000 r--p 00032000 fc:03 1814596                      /usr/lib64/libcrypt.so.2.0.0
| 3ffa2ab4000-3ffa2abd000 rw-p 00000000 00:00 0 
| 3ffa2b00000-3ffa2b03000 r-xp 00000000 fc:03 1813826                      /usr/lib64/libdl-2.30.9000.so
| 3ffa2b03000-3ffa2b04000 r--p 00002000 fc:03 1813826                      /usr/lib64/libdl-2.30.9000.so
| 3ffa2b04000-3ffa2b05000 rw-p 00000000 00:00 0 
| 3ffa2b80000-3ffa2c05000 r-xp 00000000 fc:03 1814658                      /usr/lib64/libgmp.so.10.3.2
| 3ffa2c05000-3ffa2c07000 r--p 00084000 fc:03 1814658                      /usr/lib64/libgmp.so.10.3.2
| 3ffa2c07000-3ffa2c08000 rw-p 00086000 fc:03 1814658                      /usr/lib64/libgmp.so.10.3.2
| 3ffa2c80000-3ffa2c88000 r-xp 00000000 fc:03 1813840                      /usr/lib64/librt-2.30.9000.so
| 3ffa2c88000-3ffa2c89000 r--p 00007000 fc:03 1813840                      /usr/lib64/librt-2.30.9000.so
| 3ffa2c89000-3ffa2c8a000 rw-p 00008000 fc:03 1813840                      /usr/lib64/librt-2.30.9000.so
| 3ffa2d00000-3ffa2d1e000 r-xp 00000000 fc:03 1813836                      /usr/lib64/libpthread-2.30.9000.so
| 3ffa2d1e000-3ffa2d1f000 r--p 0001d000 fc:03 1813836                      /usr/lib64/libpthread-2.30.9000.so
| 3ffa2d1f000-3ffa2d20000 rw-p 0001e000 fc:03 1813836                      /usr/lib64/libpthread-2.30.9000.so
| 3ffa2d20000-3ffa2d24000 rw-p 00000000 00:00 0 
| 3ffa2d80000-3ffa2f1e000 r-xp 00000000 fc:03 1813824                      /usr/lib64/libc-2.30.9000.so
| 3ffa2f1e000-3ffa2f22000 r--p 0019d000 fc:03 1813824                      /usr/lib64/libc-2.30.9000.so
| 3ffa2f22000-3ffa2f25000 rw-p 001a1000 fc:03 1813824                      /usr/lib64/libc-2.30.9000.so
| 3ffa2f25000-3ffa2f28000 rw-p 00000000 00:00 0 
| 3ffa2f80000-3ffa2f82000 r-xp 00000000 fc:03 1844333                      /builddir/build/BUILD/ruby-2.7.0/.ext/s390x-linux/enc/encdb.so
| 3ffa2f82000-3ffa2f83000 r--p 00001000 fc:03 1844333                      /builddir/build/BUILD/ruby-2.7.0/.ext/s390x-linux/enc/encdb.so
| 3ffa2f83000-3ffa2f84000 rw-p 00000000 00:00 0 
| 3ffa3000000-3ffa336e000 r-xp 00000000 fc:03 1844256                      /builddir/build/BUILD/ruby-2.7.0/libruby.so.2.7.0
| 3ffa336e000-3ffa3377000 r--p 0036d000 fc:03 1844256                      /builddir/build/BUILD/ruby-2.7.0/libruby.so.2.7.0
| 3ffa3377000-3ffa3378000 rw-p 00376000 fc:03 1844256                      /builddir/build/BUILD/ruby-2.7.0/libruby.so.2.7.0
| 3ffa3378000-3ffa338f000 rw-p 00000000 00:00 0 
| 3ffa3400000-3ffa3426000 r-xp 00000000 fc:03 1813817                      /usr/lib64/ld-2.30.9000.so
| 3ffa3426000-3ffa3427000 r--p 00025000 fc:03 1813817                      /usr/lib64/ld-2.30.9000.so
| 3ffa3427000-3ffa3428000 rw-p 00026000 fc:03 1813817                      /usr/lib64/ld-2.30.9000.so
| 3ffa3428000-3ffa3429000 rw-p 00000000 00:00 0 
| 3ffa3476000-3ffa347e000 rw-p 00000000 00:00 0 
| 3ffa347e000-3ffa3480000 r-xp 00000000 00:00 0                            [vdso]
| 3ffc5301000-3ffc5b00000 rw-p 00000000 00:00 0                            [stack]
| 
| 
| Sample bug reporter: 12345
    /builddir/build/BUILD/ruby-2.7.0/test/-ext-/bug_reporter/test_bug_reporter.rb:22:in `test_bug_reporter_add'
Finished tests in 544.051367s, 38.5515 tests/s, 4998.1953 assertions/s.
20974 tests, 2719275 assertions, 0 failures, 1 errors, 68 skips
ruby -v: ruby 2.7.0p0 (2019-12-25 revision 647ee6f091) [s390x-linux]
~~~

Since the default timeout is 10s, I tried to increase the timeout to 30s via simple `sed -i '/assert_in_out_err/ s/)/, timeout: 30)/' test/-ext-/bug_reporter/test_bug_reporter.rb` and this seems to help to avoid this issue.

However, I am not really sure why s390x is so slow handling this test case :/

---Files--------------------------------
0001-Timeout-the-test_bug_reporter_add-witout-raising-err.patch (1.45 KB)
Time.png (56 KB)


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

Unsubscribe: <mailto:ruby-core-request / ruby-lang.org?subject=unsubscribe>
<http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-core>