Project

General

Profile

Actions

Bug #14713

closed

<internal:prelude>:132:in `__write_nonblock': Protocol wrong type for socket (Errno::EPROTOTYPE)

Added by ioquatix (Samuel Williams) almost 6 years ago. Updated almost 6 years ago.

Status:
Closed
Assignee:
-
Target version:
-
[ruby-core:86690]

Description

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.


Related issues 1 (0 open1 closed)

Related to Ruby master - Bug #12914: FTPTest#test_list_read_timeout_exceeded causes EPROTOTYPE on Mac OS X 10.10ClosedActions
Actions

Also available in: Atom PDF

Like0
Like0Like0Like0Like0Like0Like0Like0Like0Like0Like0Like0