mirror of
https://github.com/ruby/ruby.git
synced 2025-08-15 13:39:04 +02:00
Reduce the number of times IO is passed in send_io/recv_io test
Since Linux 4.5, sendmsg(2) fails with ETOOMANYREFS if the number of
"in-flight" IOs, which has been sent by sendmsg(2) but has not yet
accepted by recvmsg(2), exceeds the RLIMIT_NOFILE resource limit.
20231025
T090004Z.fail.html.gz
```
1) Error:
TestSocket_UNIXSocket#test_fd_passing_race_condition:
Errno::ETOOMANYREFS: Too many references: cannot splice - sendmsg(2)
```
This change reduces the number of times of IO passing under 1024,
which is a default limit in many environments.
This commit is contained in:
parent
de82439215
commit
f26d53e905
1 changed files with 2 additions and 7 deletions
|
@ -152,7 +152,7 @@ class TestSocket_UNIXSocket < Test::Unit::TestCase
|
|||
lock = Thread::Mutex.new
|
||||
nr = 0
|
||||
x = 2
|
||||
y = 1000
|
||||
y = 400
|
||||
begin
|
||||
s1.send_io(nil)
|
||||
rescue NotImplementedError
|
||||
|
@ -167,12 +167,7 @@ class TestSocket_UNIXSocket < Test::Unit::TestCase
|
|||
true
|
||||
end
|
||||
end
|
||||
begin
|
||||
(x * y).times { s1.send_io r1 }
|
||||
rescue Errno::ETOOMANYREFS => e
|
||||
# for arm64-neoverse-n1
|
||||
omit e.message
|
||||
end
|
||||
(x * y).times { s1.send_io r1 }
|
||||
assert_equal([true]*x, thrs.map { |t| t.value })
|
||||
assert_equal x * y, nr
|
||||
ensure
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue