From: jaruga@... Date: 2021-05-21T14:25:42+00:00 Subject: [ruby-core:103950] [Ruby master Bug#17878] test_ractor.rb: a random failing test with "The outgoing-port is already closed (Ractor::ClosedError)" Issue #17878 has been reported by jaruga (Jun Aruga). ---------------------------------------- Bug #17878: test_ractor.rb: a random failing test with "The outgoing-port is already closed (Ractor::ClosedError)" https://bugs.ruby-lang.org/issues/17878 * Author: jaruga (Jun Aruga) * Status: Open * Priority: Normal * Backport: 2.6: UNKNOWN, 2.7: UNKNOWN, 3.0: UNKNOWN ---------------------------------------- I was running Travis several times I am trying to revive based on the master commit: `50a534a1526e2b9f4ea41e44b802bd73f9cebbeb`. Then I got the following failure on Travis arm64 Ubuntu focal environment. The failure happened for the first time in around 5 times. Here is the Travis log. https://travis-ci.com/github/junaruga/ruby/jobs/506885939#L2227 ``` $ $SETARCH make -s test -o showflags TESTOPTS="${TESTOPTS=-j33 -q --tty=no}" ... test_ractor.rb ....................Fstderr output is not empty :345:in `select': The outgoing-port is already closed (Ractor::ClosedError) from bootstraptest.tmp.rb:12:in `block in test' from bootstraptest.tmp.rb:11:in `times' from bootstraptest.tmp.rb:11:in `test' from bootstraptest.tmp.rb:26:in `block in
' from bootstraptest.tmp.rb:25:in `times' from bootstraptest.tmp.rb:25:in `each' from bootstraptest.tmp.rb:25:in `map' from bootstraptest.tmp.rb:25:in `
' ``` ``` Fiber count: 10000 (skipping) #1213 test_ractor.rb:224:in `': def test n rs = (1..n).map do |i| Ractor.new(i) do |i| "r#{i}" end end as = [] all_rs = rs.dup n.times{ r, obj = Ractor.select(*rs) as << [r, obj] rs.delete(r) } if as.map{|r, o| r.object_id}.sort == all_rs.map{|r| r.object_id}.sort && as.map{|r, o| o}.sort == (1..n).map{|i| "r#{i}"}.sort 'ok' else 'ng' end end 30.times.map{|i| test i } #=> "" (expected "[\"ok\", \"ok\", \"ok\", \"ok\", \"ok\", \"ok\", \"ok\", \"ok\", \"ok\", \"ok\", \"ok\", \"ok\", \"ok\", \"ok\", \"ok\", \"ok\", \"ok\", \"ok\", \"ok\", \"ok\", \"ok\", \"ok\", \"ok\", \"ok\", \"ok\", \"ok\", \"ok\", \"ok\", \"ok\", \"ok\"]") FAIL 1/1488 tests failed make: *** [uncommon.mk:768: yes-btest-ruby] Error 1 The command "$SETARCH make -s test -o showflags TESTOPTS="${TESTOPTS=$JOBS -q --tty=no}"" exited with 2. ``` -- https://bugs.ruby-lang.org/ Unsubscribe: