Skip to content

Wrapper#accept might be crashing in production. #9

@ioquatix

Description

@ioquatix

socket, address = server.accept

    1m     warn: Async::Task [oid=0xdfc] [ec=0xde8] [pid=56009] [2024-05-08 20:40:28 +1200]
               | Task may have ended with unhandled exception.
               |   OpenSSL::SSL::SSLError: SSL_accept returned=1 errno=0 peeraddr=[::1]:50598 state=error: ssl/tls alert certificate unknown
               |   → /home/samuel/.rubies/ruby-3.3.1/lib/ruby/3.3.0/openssl/ssl.rb:527 in `accept'
               |     /home/samuel/.rubies/ruby-3.3.1/lib/ruby/3.3.0/openssl/ssl.rb:527 in `accept'
               |     /home/samuel/.gem/ruby/3.3.1/gems/io-endpoint-0.10.2/lib/io/endpoint/wrapper.rb:157 in `accept'
               |     /home/samuel/.gem/ruby/3.3.1/gems/io-endpoint-0.10.2/lib/io/endpoint/generic.rb:83 in `block in accept'
               |     /home/samuel/.gem/ruby/3.3.1/gems/io-endpoint-0.10.2/lib/io/endpoint/bound_endpoint.rb:65 in `block (2 levels) in bind'
               |     /home/samuel/.gem/ruby/3.3.1/gems/async-2.11.0/lib/async/task.rb:164 in `block in run'
               |     /home/samuel/.gem/ruby/3.3.1/gems/async-2.11.0/lib/async/task.rb:377 in `block in schedule'
  1. Need to investigate whether SSLSocket#accept is performing additional TLS negotiation (is it causing latency in the accept loop?)
  2. Need to figure out the best way to rescue errors to avoid killing the accept loop.

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions