diff options
author | Yusuke Endoh <[email protected]> | 2023-10-25 20:37:21 +0900 |
---|---|---|
committer | Yusuke Endoh <[email protected]> | 2023-10-25 20:37:21 +0900 |
commit | f26d53e90533232ac35ca0eae2ca7766c2af5ebb (patch) | |
tree | 01b2881ef3f774a2dd0621a33f2c16490fa7f9ea /test/socket/test_unix.rb | |
parent | de82439215dd2770ef9a3a2cf5798bdadb788533 (diff) |
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.
https://rubyci.s3.amazonaws.com/arm64-neoverse-n1/ruby-master/log/20231025T090004Z.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.
Diffstat (limited to 'test/socket/test_unix.rb')
-rw-r--r-- | test/socket/test_unix.rb | 9 |
1 files changed, 2 insertions, 7 deletions
diff --git a/test/socket/test_unix.rb b/test/socket/test_unix.rb index 135d32739d..3e7d85befc 100644 --- a/test/socket/test_unix.rb +++ b/test/socket/test_unix.rb @@ -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 |