[#86520] [Ruby trunk Bug#14681] `syswrite': stream closed in another thread (IOError) — samuel@...
Issue #14681 has been reported by ioquatix (Samuel Williams).
3 messages
2018/04/12
[#86755] [Ruby trunk Feature#14723] [WIP] sleepy GC — normalperson@...
Issue #14723 has been reported by normalperson (Eric Wong).
6 messages
2018/04/29
[ruby-core:86697] [Ruby trunk Bug#14713] <internal:prelude>:132:in `__write_nonblock': Protocol wrong type for socket (Errno::EPROTOTYPE)
From:
nobu@...
Date:
2018-04-26 09:32:36 UTC
List:
ruby-core #86697
Issue #14713 has been updated by nobu (Nobuyoshi Nakada). ioquatix (Samuel Williams) wrote: > Very occasionally on macOS, using Ruby 2.5.0, I get the above error. It happens often on macOS. > I'm not even sure how it's possible to receive this message in `write_nonblock` since by that point the socket is well and truely setup. Maybe a bug in the OS? Probably, but not sure. ---------------------------------------- Bug #14713: <internal:prelude>:132:in `__write_nonblock': Protocol wrong type for socket (Errno::EPROTOTYPE) https://bugs.ruby-lang.org/issues/14713#change-71656 * Author: ioquatix (Samuel Williams) * Status: Open * Priority: Normal * Assignee: * Target version: * ruby -v: * Backport: 2.3: UNKNOWN, 2.4: UNKNOWN, 2.5: UNKNOWN ---------------------------------------- Very occasionally on macOS, using Ruby 2.5.0, I get the above error. ``` Traceback (most recent call last): 23: from /Users/samuel/.rvm/gems/ruby-2.5.0/gems/async-1.6.0/lib/async/task.rb:74:in `block in initialize' 22: from /Users/samuel/.rvm/gems/ruby-2.5.0/gems/async-io-1.7.0/lib/async/io/socket.rb:79:in `block in accept' 21: from /Users/samuel/.rvm/gems/ruby-2.5.0/gems/async-io-1.7.0/lib/async/io/socket.rb:46:in `block in accept_each' 20: from /Users/samuel/.rvm/gems/ruby-2.5.0/gems/async-http-0.20.0/lib/async/http/server.rb:51:in `accept' 19: from /Users/samuel/.rvm/gems/ruby-2.5.0/gems/async-http-0.20.0/lib/async/http/server.rb:51:in `catch' 18: from /Users/samuel/.rvm/gems/ruby-2.5.0/gems/async-http-0.20.0/lib/async/http/server.rb:52:in `block in accept' 17: from /Users/samuel/.rvm/gems/ruby-2.5.0/gems/async-http-0.20.0/lib/async/http/protocol/http1.rb:59:in `receive_requests' 16: from /Users/samuel/.rvm/gems/ruby-2.5.0/gems/async-http-0.20.0/lib/async/http/protocol/http11.rb:75:in `receive_requests' 15: from /Users/samuel/.rvm/gems/ruby-2.5.0/gems/async-http-0.20.0/lib/async/http/server.rb:54:in `block (2 levels) in accept' 14: from /Users/samuel/Documents/socketry/falcon/lib/falcon/server.rb:33:in `handle_request' 13: from /Users/samuel/Documents/socketry/falcon/lib/falcon/verbose.rb:46:in `call' 12: from /Users/samuel/.rvm/gems/ruby-2.5.0/gems/async-http-0.20.0/lib/async/http/middleware.rb:45:in `call' 11: from /Users/samuel/Documents/socketry/falcon/lib/falcon/proxy.rb:71:in `call' 10: from /Users/samuel/.rvm/gems/ruby-2.5.0/gems/async-http-0.20.0/lib/async/http/client.rb:65:in `call' 9: from /Users/samuel/.rvm/gems/ruby-2.5.0/gems/async-http-0.20.0/lib/async/http/protocol/http11.rb:98:in `call' 8: from /Users/samuel/.rvm/gems/ruby-2.5.0/gems/async-http-0.20.0/lib/async/http/protocol/http11.rb:112:in `write_request' 7: from /Users/samuel/.rvm/gems/ruby-2.5.0/gems/async-io-1.7.0/lib/async/io/stream.rb:76:in `flush' 6: from /Users/samuel/.rvm/gems/ruby-2.5.0/gems/async-io-1.7.0/lib/async/io/stream.rb:175:in `syswrite' 5: from /Users/samuel/.rvm/gems/ruby-2.5.0/gems/async-io-1.7.0/lib/async/io/generic.rb:47:in `block in wrap_blocking_method' 4: from /Users/samuel/.rvm/gems/ruby-2.5.0/gems/async-io-1.7.0/lib/async/io/generic.rb:124:in `async_send' 3: from /Users/samuel/.rvm/gems/ruby-2.5.0/gems/async-io-1.7.0/lib/async/io/generic.rb:131:in `async' 2: from /Users/samuel/.rvm/gems/ruby-2.5.0/gems/async-io-1.7.0/lib/async/io/generic.rb:125:in `block in async_send' 1: from <internal:prelude>:132:in `write_nonblock' ``` I'm not even sure how it's possible to receive this message in `write_nonblock` since by that point the socket is well and truely setup. Maybe a bug in the OS? I'm not sure how to reproduce, I've only seen it once a month and I don't have any strategy to reproduce yet. I could try a busy loop. -- https://bugs.ruby-lang.org/ Unsubscribe: <mailto:ruby-core-request@ruby-lang.org?subject=unsubscribe> <http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-core>