Project

General

Profile

Actions

Bug #17878

open

bootstraptest/test_ractor.rb:224 a random failing test with "The outgoing-port is already closed (Ractor::ClosedError)"

Added by jaruga (Jun Aruga) 5 months ago. Updated about 1 month ago.

Status:
Open
Priority:
Normal
Assignee:
-
Target version:
-
[ruby-core:103950]

Description

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
   <internal:ractor>: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 <main>'
           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 `<main>'
Fiber count: 10000 (skipping)
#1213 test_ractor.rb:224:in `<top (required)>': 
     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.

Updated by jaruga (Jun Aruga) 5 months ago

I am trying to skip the assertion on Travis CI arm64 cases by https://github.com/ruby/ruby/pull/4518 6th commit.

Actions #2

Updated by jaruga (Jun Aruga) 5 months ago

  • Subject changed from test_ractor.rb: a random failing test with "The outgoing-port is already closed (Ractor::ClosedError)" to bootstraptest/test_ractor.rb:224 a random failing test with "The outgoing-port is already closed (Ractor::ClosedError)"
Actions

Also available in: Atom PDF