Activity log for bug #2054943

Date Who What changed Old value New value Message
2024-02-25 21:45:46 Vladimir Petko bug added bug
2024-02-25 21:46:17 Vladimir Petko description The autopkgtests for jruby fail with the following errors: 1) Failure: TestOpen3#test_pipeline_start [/tmp/autopkgtest.Dz4xQk/autopkgtest_tmp/test/mri/test_open3.rb:303]: Failed assertion, no message given. 2) Failure: TestOpen3#test_pipeline_w [/tmp/autopkgtest.Dz4xQk/autopkgtest_tmp/test/mri/test_open3.rb:288]: <true> expected but was <false>. 3) Failure: TestOpen3#test_capture3_flip [/tmp/autopkgtest.Dz4xQk/autopkgtest_tmp/test/mri/test_open3.rb:190]: The minimal reproducer of those: ---- require 'open3' RUBY = 'jruby' Open3.pipeline_r([RUBY, '-e', 'print "1"'], [RUBY, '-e', 'print STDIN.read + "2"']) {|o,ts| print(o.read) } --- executing the above sample results in the following output: # jruby test.rb 12# jruby test.rb 12# jruby test.rb 12# jruby test.rb 12# jruby test.rb 2# jruby test.rb 12# jruby test.rb 2# jruby test.rb 12# jruby test.rb 2# jruby test.rb 2# jruby test.rb 2# jruby test.rb 2# jruby test.rb 12# jruby test.rb 12# jruby test.rb 2Errno::EPIPE: Broken pipe - <STDOUT> write at org/jruby/RubyIO.java:1569 write at org/jruby/RubyIO.java:1458 write at org/jruby/RubyIO.java:2829 print at org/jruby/RubyIO.java:1831 print at org/jruby/RubyKernel.java:649 <main> at -e:1 The autopkgtests for jruby fail `mri-extra` with the following errors:   1) Failure: TestOpen3#test_pipeline_start [/tmp/autopkgtest.Dz4xQk/autopkgtest_tmp/test/mri/test_open3.rb:303]: Failed assertion, no message given.   2) Failure: TestOpen3#test_pipeline_w [/tmp/autopkgtest.Dz4xQk/autopkgtest_tmp/test/mri/test_open3.rb:288]: <true> expected but was <false>.   3) Failure: TestOpen3#test_capture3_flip [/tmp/autopkgtest.Dz4xQk/autopkgtest_tmp/test/mri/test_open3.rb:190]: The minimal reproducer of those: ---- require 'open3' RUBY = 'jruby' Open3.pipeline_r([RUBY, '-e', 'print "1"'],                      [RUBY, '-e', 'print STDIN.read + "2"']) {|o,ts|       print(o.read)     } --- executing the above sample results in the following output: # jruby test.rb 12# jruby test.rb 12# jruby test.rb 12# jruby test.rb 12# jruby test.rb 2# jruby test.rb 12# jruby test.rb 2# jruby test.rb 12# jruby test.rb 2# jruby test.rb 2# jruby test.rb 2# jruby test.rb 2# jruby test.rb 12# jruby test.rb 12# jruby test.rb 2Errno::EPIPE: Broken pipe - <STDOUT>    write at org/jruby/RubyIO.java:1569    write at org/jruby/RubyIO.java:1458    write at org/jruby/RubyIO.java:2829    print at org/jruby/RubyIO.java:1831    print at org/jruby/RubyKernel.java:649   <main> at -e:1
2024-02-25 21:46:33 Vladimir Petko bug task added java-common (Ubuntu)
2024-02-25 21:46:51 Vladimir Petko summary flaky jruby TestOpen3 pipe tests jruby: mri-extra - flaky TestOpen3 pipe tests
2024-02-25 21:47:02 Vladimir Petko tags update-excusse
2024-02-25 21:47:06 Vladimir Petko tags update-excusse update-excuse
2024-02-25 21:48:02 Vladimir Petko description The autopkgtests for jruby fail `mri-extra` with the following errors:   1) Failure: TestOpen3#test_pipeline_start [/tmp/autopkgtest.Dz4xQk/autopkgtest_tmp/test/mri/test_open3.rb:303]: Failed assertion, no message given.   2) Failure: TestOpen3#test_pipeline_w [/tmp/autopkgtest.Dz4xQk/autopkgtest_tmp/test/mri/test_open3.rb:288]: <true> expected but was <false>.   3) Failure: TestOpen3#test_capture3_flip [/tmp/autopkgtest.Dz4xQk/autopkgtest_tmp/test/mri/test_open3.rb:190]: The minimal reproducer of those: ---- require 'open3' RUBY = 'jruby' Open3.pipeline_r([RUBY, '-e', 'print "1"'],                      [RUBY, '-e', 'print STDIN.read + "2"']) {|o,ts|       print(o.read)     } --- executing the above sample results in the following output: # jruby test.rb 12# jruby test.rb 12# jruby test.rb 12# jruby test.rb 12# jruby test.rb 2# jruby test.rb 12# jruby test.rb 2# jruby test.rb 12# jruby test.rb 2# jruby test.rb 2# jruby test.rb 2# jruby test.rb 2# jruby test.rb 12# jruby test.rb 12# jruby test.rb 2Errno::EPIPE: Broken pipe - <STDOUT>    write at org/jruby/RubyIO.java:1569    write at org/jruby/RubyIO.java:1458    write at org/jruby/RubyIO.java:2829    print at org/jruby/RubyIO.java:1831    print at org/jruby/RubyKernel.java:649   <main> at -e:1 The autopkgtests for jruby fail `mri-extra` with the following errors:   1) Failure: TestOpen3#test_pipeline_start [/tmp/autopkgtest.Dz4xQk/autopkgtest_tmp/test/mri/test_open3.rb:303]: Failed assertion, no message given.   2) Failure: TestOpen3#test_pipeline_w [/tmp/autopkgtest.Dz4xQk/autopkgtest_tmp/test/mri/test_open3.rb:288]: <true> expected but was <false>.   3) Failure: TestOpen3#test_capture3_flip [/tmp/autopkgtest.Dz4xQk/autopkgtest_tmp/test/mri/test_open3.rb:190]: The minimal reproducer of those: ---- require 'open3' RUBY = 'jruby' Open3.pipeline_r([RUBY, '-e', 'print "1"'],                      [RUBY, '-e', 'print STDIN.read + "2"']) {|o,ts|       print(o.read)     } --- executing the above sample results in the following output: # jruby test.rb 12# jruby test.rb 12# jruby test.rb 12# jruby test.rb 12# jruby test.rb 2# jruby test.rb 12# jruby test.rb 2# jruby test.rb 12# jruby test.rb 2# jruby test.rb 2# jruby test.rb 2# jruby test.rb 2# jruby test.rb 12# jruby test.rb 12# jruby test.rb 2Errno::EPIPE: Broken pipe - <STDOUT>    write at org/jruby/RubyIO.java:1569    write at org/jruby/RubyIO.java:1458    write at org/jruby/RubyIO.java:2829    print at org/jruby/RubyIO.java:1831    print at org/jruby/RubyKernel.java:649   <main> at -e:1 Note: the failure occurs both with Java 17 and Java 21
2024-02-25 22:58:25 Vladimir Petko merge proposal linked https://code.launchpad.net/~vpa1977/ubuntu/+source/jruby/+git/jruby/+merge/461172
2024-02-26 00:56:19 Vladimir Petko bug watch added https://github.com/jruby/jruby/issues/8069
2024-02-26 02:24:22 Vladimir Petko bug watch added https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1064786
2024-02-26 02:24:22 Vladimir Petko bug task added jruby (Debian)
2024-02-26 02:24:41 Vladimir Petko description The autopkgtests for jruby fail `mri-extra` with the following errors:   1) Failure: TestOpen3#test_pipeline_start [/tmp/autopkgtest.Dz4xQk/autopkgtest_tmp/test/mri/test_open3.rb:303]: Failed assertion, no message given.   2) Failure: TestOpen3#test_pipeline_w [/tmp/autopkgtest.Dz4xQk/autopkgtest_tmp/test/mri/test_open3.rb:288]: <true> expected but was <false>.   3) Failure: TestOpen3#test_capture3_flip [/tmp/autopkgtest.Dz4xQk/autopkgtest_tmp/test/mri/test_open3.rb:190]: The minimal reproducer of those: ---- require 'open3' RUBY = 'jruby' Open3.pipeline_r([RUBY, '-e', 'print "1"'],                      [RUBY, '-e', 'print STDIN.read + "2"']) {|o,ts|       print(o.read)     } --- executing the above sample results in the following output: # jruby test.rb 12# jruby test.rb 12# jruby test.rb 12# jruby test.rb 12# jruby test.rb 2# jruby test.rb 12# jruby test.rb 2# jruby test.rb 12# jruby test.rb 2# jruby test.rb 2# jruby test.rb 2# jruby test.rb 2# jruby test.rb 12# jruby test.rb 12# jruby test.rb 2Errno::EPIPE: Broken pipe - <STDOUT>    write at org/jruby/RubyIO.java:1569    write at org/jruby/RubyIO.java:1458    write at org/jruby/RubyIO.java:2829    print at org/jruby/RubyIO.java:1831    print at org/jruby/RubyKernel.java:649   <main> at -e:1 Note: the failure occurs both with Java 17 and Java 21 The autopkgtests for jruby fail `mri-extra` with the following errors:   1) Failure: TestOpen3#test_pipeline_start [/tmp/autopkgtest.Dz4xQk/autopkgtest_tmp/test/mri/test_open3.rb:303]: Failed assertion, no message given.   2) Failure: TestOpen3#test_pipeline_w [/tmp/autopkgtest.Dz4xQk/autopkgtest_tmp/test/mri/test_open3.rb:288]: <true> expected but was <false>.   3) Failure: TestOpen3#test_capture3_flip [/tmp/autopkgtest.Dz4xQk/autopkgtest_tmp/test/mri/test_open3.rb:190]: The minimal reproducer of those: ---- require 'open3' RUBY = 'jruby' Open3.pipeline_r([RUBY, '-e', 'print "1"'],                      [RUBY, '-e', 'print STDIN.read + "2"']) {|o,ts|       print(o.read)     } --- executing the above sample results in the following output: # jruby test.rb 12# jruby test.rb 12# jruby test.rb 12# jruby test.rb 12# jruby test.rb 2# jruby test.rb 12# jruby test.rb 2# jruby test.rb 12# jruby test.rb 2# jruby test.rb 2# jruby test.rb 2# jruby test.rb 2# jruby test.rb 12# jruby test.rb 12# jruby test.rb 2Errno::EPIPE: Broken pipe - <STDOUT>    write at org/jruby/RubyIO.java:1569    write at org/jruby/RubyIO.java:1458    write at org/jruby/RubyIO.java:2829    print at org/jruby/RubyIO.java:1831    print at org/jruby/RubyKernel.java:649   <main> at -e:1 Note: the failure occurs both with Java 21
2024-02-26 02:31:40 Vladimir Petko bug task added openjdk-21 (Ubuntu)
2024-02-26 02:52:04 Vladimir Petko description The autopkgtests for jruby fail `mri-extra` with the following errors:   1) Failure: TestOpen3#test_pipeline_start [/tmp/autopkgtest.Dz4xQk/autopkgtest_tmp/test/mri/test_open3.rb:303]: Failed assertion, no message given.   2) Failure: TestOpen3#test_pipeline_w [/tmp/autopkgtest.Dz4xQk/autopkgtest_tmp/test/mri/test_open3.rb:288]: <true> expected but was <false>.   3) Failure: TestOpen3#test_capture3_flip [/tmp/autopkgtest.Dz4xQk/autopkgtest_tmp/test/mri/test_open3.rb:190]: The minimal reproducer of those: ---- require 'open3' RUBY = 'jruby' Open3.pipeline_r([RUBY, '-e', 'print "1"'],                      [RUBY, '-e', 'print STDIN.read + "2"']) {|o,ts|       print(o.read)     } --- executing the above sample results in the following output: # jruby test.rb 12# jruby test.rb 12# jruby test.rb 12# jruby test.rb 12# jruby test.rb 2# jruby test.rb 12# jruby test.rb 2# jruby test.rb 12# jruby test.rb 2# jruby test.rb 2# jruby test.rb 2# jruby test.rb 2# jruby test.rb 12# jruby test.rb 12# jruby test.rb 2Errno::EPIPE: Broken pipe - <STDOUT>    write at org/jruby/RubyIO.java:1569    write at org/jruby/RubyIO.java:1458    write at org/jruby/RubyIO.java:2829    print at org/jruby/RubyIO.java:1831    print at org/jruby/RubyKernel.java:649   <main> at -e:1 Note: the failure occurs both with Java 21 The autopkgtests for jruby fail `mri-extra` with the following errors:   1) Failure: TestOpen3#test_pipeline_start [/tmp/autopkgtest.Dz4xQk/autopkgtest_tmp/test/mri/test_open3.rb:303]: Failed assertion, no message given.   2) Failure: TestOpen3#test_pipeline_w [/tmp/autopkgtest.Dz4xQk/autopkgtest_tmp/test/mri/test_open3.rb:288]: <true> expected but was <false>.   3) Failure: TestOpen3#test_capture3_flip [/tmp/autopkgtest.Dz4xQk/autopkgtest_tmp/test/mri/test_open3.rb:190]: The minimal reproducer of those: ---- require 'open3' RUBY = 'jruby' Open3.pipeline_r([RUBY, '-e', 'print "1"'],                      [RUBY, '-e', 'print STDIN.read + "2"']) {|o,ts|       print(o.read)     } --- executing the above sample results in the following output: # jruby test.rb 12# jruby test.rb 12# jruby test.rb 12# jruby test.rb 12# jruby test.rb 2# jruby test.rb 12# jruby test.rb 2# jruby test.rb 12# jruby test.rb 2# jruby test.rb 2# jruby test.rb 2# jruby test.rb 2# jruby test.rb 12# jruby test.rb 12# jruby test.rb 2Errno::EPIPE: Broken pipe - <STDOUT>    write at org/jruby/RubyIO.java:1569    write at org/jruby/RubyIO.java:1458    write at org/jruby/RubyIO.java:2829    print at org/jruby/RubyIO.java:1831    print at org/jruby/RubyKernel.java:649   <main> at -e:1 Note: the failure occurs both with Java 21 The root cause is that pipes are created non-blocking with Java 21.
2024-02-26 03:01:01 Vladimir Petko description The autopkgtests for jruby fail `mri-extra` with the following errors:   1) Failure: TestOpen3#test_pipeline_start [/tmp/autopkgtest.Dz4xQk/autopkgtest_tmp/test/mri/test_open3.rb:303]: Failed assertion, no message given.   2) Failure: TestOpen3#test_pipeline_w [/tmp/autopkgtest.Dz4xQk/autopkgtest_tmp/test/mri/test_open3.rb:288]: <true> expected but was <false>.   3) Failure: TestOpen3#test_capture3_flip [/tmp/autopkgtest.Dz4xQk/autopkgtest_tmp/test/mri/test_open3.rb:190]: The minimal reproducer of those: ---- require 'open3' RUBY = 'jruby' Open3.pipeline_r([RUBY, '-e', 'print "1"'],                      [RUBY, '-e', 'print STDIN.read + "2"']) {|o,ts|       print(o.read)     } --- executing the above sample results in the following output: # jruby test.rb 12# jruby test.rb 12# jruby test.rb 12# jruby test.rb 12# jruby test.rb 2# jruby test.rb 12# jruby test.rb 2# jruby test.rb 12# jruby test.rb 2# jruby test.rb 2# jruby test.rb 2# jruby test.rb 2# jruby test.rb 12# jruby test.rb 12# jruby test.rb 2Errno::EPIPE: Broken pipe - <STDOUT>    write at org/jruby/RubyIO.java:1569    write at org/jruby/RubyIO.java:1458    write at org/jruby/RubyIO.java:2829    print at org/jruby/RubyIO.java:1831    print at org/jruby/RubyKernel.java:649   <main> at -e:1 Note: the failure occurs both with Java 21 The root cause is that pipes are created non-blocking with Java 21. The autopkgtests for jruby fail `mri-extra` with the following errors:   1) Failure: TestOpen3#test_pipeline_start [/tmp/autopkgtest.Dz4xQk/autopkgtest_tmp/test/mri/test_open3.rb:303]: Failed assertion, no message given.   2) Failure: TestOpen3#test_pipeline_w [/tmp/autopkgtest.Dz4xQk/autopkgtest_tmp/test/mri/test_open3.rb:288]: <true> expected but was <false>.   3) Failure: TestOpen3#test_capture3_flip [/tmp/autopkgtest.Dz4xQk/autopkgtest_tmp/test/mri/test_open3.rb:190]: The minimal reproducer of those: ---- require 'open3' RUBY = 'jruby' Open3.pipeline_r([RUBY, '-e', 'print "1"'],                      [RUBY, '-e', 'print STDIN.read + "2"']) {|o,ts|       print(o.read)     } --- executing the above sample results in the following output: # jruby test.rb 12# jruby test.rb 12# jruby test.rb 12# jruby test.rb 12# jruby test.rb 2# jruby test.rb 12# jruby test.rb 2# jruby test.rb 12# jruby test.rb 2# jruby test.rb 2# jruby test.rb 2# jruby test.rb 2# jruby test.rb 12# jruby test.rb 12# jruby test.rb 2Errno::EPIPE: Broken pipe - <STDOUT>    write at org/jruby/RubyIO.java:1569    write at org/jruby/RubyIO.java:1458    write at org/jruby/RubyIO.java:2829    print at org/jruby/RubyIO.java:1831    print at org/jruby/RubyKernel.java:649   <main> at -e:1 Note: the failure occurs both with Java 21 The root cause is that pipes are created non-blocking with Java 21. The workaround for the stream issue is below: ---- require 'fcntl' flags = write.fcntl(Fcntl::F_GETFL) # We must first set nonblock because the Java and JRuby objects wrapping the stream do not know it is already non-blocking write.fcntl(Fcntl::F_SETFL, flags | (Fcntl::O_NONBLOCK)) write.fcntl(Fcntl::F_SETFL, flags & (~Fcntl::O_NONBLOCK)) ----
2024-02-26 08:02:17 Bug Watch Updater jruby (Debian): status Unknown New
2024-04-24 00:08:37 Vladimir Petko java-common (Ubuntu): status New Fix Released
2024-04-24 00:08:40 Vladimir Petko openjdk-21 (Ubuntu): status New Fix Released