net-http2: socket loop thread abort_on_exception (was: Thread Safety)
It appears that NetHttp2 might not be thread-safe.
To try it out, run this concurrent test multiple times, you will probably encounter the error HTTP2::Error::HandshakeError
raised inside of the dummy server.
Full failure looks like:
Failures:
1) Sending sync requests sends multiple GET requests concurrently
Got 0 failures and 2 other errors:
1.1) Failure/Error: conn << data
HTTP2::Error::HandshakeError:
HTTP2::Error::HandshakeError
# /Users/roberto/.rvm/gems/ruby-2.3.0@net-http2/gems/http-2-0.8.1/lib/http/2/connection.rb:175:in `receive'
# ./spec/support/dummy_server.rb:107:in `handle'
# ./spec/support/dummy_server.rb:48:in `block (3 levels) in listen'
1.2) Failure/Error: conn << data
HTTP2::Error::HandshakeError:
HTTP2::Error::HandshakeError
# /Users/roberto/.rvm/gems/ruby-2.3.0@net-http2/gems/http-2-0.8.1/lib/http/2/connection.rb:175:in `receive'
# ./spec/support/dummy_server.rb:107:in `handle'
# ./spec/support/dummy_server.rb:48:in `block (3 levels) in listen'
Finished in 0.00471 seconds (files took 0.09018 seconds to load)
1 example, 1 failure
Investigation is needed, to see if this is an issue on the dummy server (who cares then) or on the client.
About this issue
- Original URL
- State: closed
- Created 8 years ago
- Comments: 27 (13 by maintainers)
Merged and published
0.15.0
. Tonight I will add the Apnotic part of it. Thank you for your help.All looked good in development. I’m now running this live and will report back in a few hours 👍
I understand your concern, that’s why I’ve reopened this issue. If you have suggestions please let me know.