Request hangs after disconnecting network, after a first succesful request

So HTTPX seems to hang after making a request, disconnecting the network, and then making a second request.

This is what happens:

irb(main):001:0> require 'httpx'
=> true

irb(main):002:0> HTTPX.get('https://httpstat.us/200')
resolver: query AAAA for httpstat.us
resolver: query A for httpstat.us
resolver: server: udp://127.0.0.53:53...
resolver: server: udp://127.0.0.53:53...
WRITE: 29 bytes...
WRITE: 29 bytes...
resolver: query AAAA for httpstat.us.local.risen.be
WRITE: 44 bytes...
resolver: answer httpstat.us: [#<IPAddr: IPv4:20.40.202.3/255.255.255.255>]
resolver: A response, applying resolution delay...
 idle -> idle
Connected to 20.40.202.3 (#6)
20.40.202.3 connected -> negotiated

SSL connection using TLSv1.2 / ECDHE-RSA-AES256-GCM-SHA384
ALPN, server accepted to use http/1.1
Server certificate:
 subject: /CN=httpstat.us
 start date: 2022-05-03 00:00:00 UTC
 expire date: 2022-11-03 23:59:59 UTC
 issuer: /C=US/O=DigiCert Inc/CN=GeoTrust TLS DV RSA Mixed SHA256 2020 CA-1
 SSL certificate verify ok.
<- HEADLINE: "GET /200 HTTP/1.1"
<- HEADER: User-Agent: httpx.rb/0.21.0
<- HEADER: Accept: */*
<- HEADER: Connection: close
<- HEADER: Host: httpstat.us
<- 
WRITE: 101 bytes...
READ: 541 bytes...
-> HEADLINE: 200 HTTP/1.1
-> HEADER: content-length: 6
-> HEADER: connection: close
-> HEADER: content-type: text/plain
-> HEADER: date: Fri, 02 Sep 2022 13:58:05 GMT
-> HEADER: server: Kestrel
-> HEADER: set-cookie: ARRAffinity=b0584c6b81b6674baf0ae2dac3735cecd88fbf5e4ff1f058233dc3f34142c0a4;Path=/;HttpOnly;Secure;Domain=httpstat.us, ARRAffinitySameSite=b0584c6b81b6674baf0ae2dac3735cecd88fbf5e4ff1f058233dc3f34142c0a4;Path=/;HttpOnly;SameSite=None;Secure;Domain=httpstat.us
-> HEADER: request-context: appId=cid-v1:1e93d241-20e4-4513-bbd7-f452a16a5d69
-> HEADER: strict-transport-security: max-age=2592000
-> DATA: 6 bytes...
20.40.202.3 negotiated -> closed
=> #<Response:740 HTTP/1.1 @status=200 @headers={"content-length"=>["6"], "connection"=>["close"], "content-type"=>["text/plain"], "date"=>["Fri, 02 Sep 2022 13:58:05 GMT"], "server"=>["Kestrel"], "set-cookie"=>["ARRAffinity=b0584c6b81b6674baf0ae2dac3735cecd88fbf5e4ff1f058233dc3f34142c0a4;Path=/;HttpOnly;Secure;Domain=httpstat.us", "ARRAffinitySameSite=b0584c6b81b6674baf0ae2dac3735cecd88fbf5e4ff1f058233dc3f34142c0a4;Path=/;HttpOnly;SameSite=None;Secure;Domain=httpstat.us"], "request-context"=>["appId=cid-v1:1e93d241-20e4-4513-bbd7-f452a16a5d69"], "strict-transport-security"=>["max-age=2592000"]} @body=6>

irb(main):003:0> 'Here I disconnect the network'
=> "Here I disconnect the network"

irb(main):004:0> HTTPX.get('https://httpstat.us/200')
resolver: answer httpstat.us: [#<IPAddr: IPv4:20.40.202.3/255.255.255.255>]
 idle -> idle

… and then it hangs forever.

On the other hand, when I disconnect before the first request I make, this is the (correct) result:

irb(main):001:0> require 'httpx'
=> true
irb(main):002:0> HTTPX.get('https://httpstat.us/200')
resolver: query A for httpstat.us
resolver: server: udp://127.0.0.53:53...
WRITE: 29 bytes...
Traceback (most recent call last):
	39: from /home/mourad/.local/share/rbenv/versions/2.7.6/bin/irb:23:in `<main>'
	38: from /home/mourad/.local/share/rbenv/versions/2.7.6/bin/irb:23:in `load'
	37: from /home/mourad/.local/share/rbenv/versions/2.7.6/lib/ruby/gems/2.7.0/gems/irb-1.2.6/exe/irb:11:in `<top (required)>'
	36: from /home/mourad/.local/share/rbenv/versions/2.7.6/lib/ruby/2.7.0/irb.rb:400:in `start'
	35: from /home/mourad/.local/share/rbenv/versions/2.7.6/lib/ruby/2.7.0/irb.rb:471:in `run'
	34: from /home/mourad/.local/share/rbenv/versions/2.7.6/lib/ruby/2.7.0/irb.rb:471:in `catch'
	33: from /home/mourad/.local/share/rbenv/versions/2.7.6/lib/ruby/2.7.0/irb.rb:472:in `block in run'
	32: from /home/mourad/.local/share/rbenv/versions/2.7.6/lib/ruby/2.7.0/irb.rb:537:in `eval_input'
	31: from /home/mourad/.local/share/rbenv/versions/2.7.6/lib/ruby/2.7.0/irb/ruby-lex.rb:150:in `each_top_level_statement'
	30: from /home/mourad/.local/share/rbenv/versions/2.7.6/lib/ruby/2.7.0/irb/ruby-lex.rb:150:in `catch'
	29: from /home/mourad/.local/share/rbenv/versions/2.7.6/lib/ruby/2.7.0/irb/ruby-lex.rb:151:in `block in each_top_level_statement'
	28: from /home/mourad/.local/share/rbenv/versions/2.7.6/lib/ruby/2.7.0/irb/ruby-lex.rb:151:in `loop'
	27: from /home/mourad/.local/share/rbenv/versions/2.7.6/lib/ruby/2.7.0/irb/ruby-lex.rb:166:in `block (2 levels) in each_top_level_statement'
	26: from /home/mourad/.local/share/rbenv/versions/2.7.6/lib/ruby/2.7.0/irb.rb:538:in `block in eval_input'
	25: from /home/mourad/.local/share/rbenv/versions/2.7.6/lib/ruby/2.7.0/irb.rb:704:in `signal_status'
	24: from /home/mourad/.local/share/rbenv/versions/2.7.6/lib/ruby/2.7.0/irb.rb:541:in `block (2 levels) in eval_input'
	23: from /home/mourad/.local/share/rbenv/versions/2.7.6/lib/ruby/2.7.0/irb/context.rb:459:in `evaluate'
	22: from /home/mourad/.local/share/rbenv/versions/2.7.6/lib/ruby/2.7.0/irb/workspace.rb:114:in `evaluate'
	21: from /home/mourad/.local/share/rbenv/versions/2.7.6/lib/ruby/2.7.0/irb/workspace.rb:114:in `eval'
	20: from (irb):2:in `irb_binding'
	19: from /home/mourad/.local/share/rbenv/versions/2.7.6/lib/ruby/gems/2.7.0/gems/httpx-0.21.0/lib/httpx/chainable.rb:8:in `get'
	18: from /home/mourad/.local/share/rbenv/versions/2.7.6/lib/ruby/gems/2.7.0/gems/httpx-0.21.0/lib/httpx/chainable.rb:14:in `request'
	17: from /home/mourad/.local/share/rbenv/versions/2.7.6/lib/ruby/gems/2.7.0/gems/httpx-0.21.0/lib/httpx/session.rb:36:in `request'
	16: from /home/mourad/.local/share/rbenv/versions/2.7.6/lib/ruby/gems/2.7.0/gems/httpx-0.21.0/lib/httpx/session.rb:186:in `send_requests'
	15: from /home/mourad/.local/share/rbenv/versions/2.7.6/lib/ruby/gems/2.7.0/gems/httpx-0.21.0/lib/httpx/session.rb:210:in `receive_requests'
	14: from /home/mourad/.local/share/rbenv/versions/2.7.6/lib/ruby/gems/2.7.0/gems/httpx-0.21.0/lib/httpx/session.rb:210:in `loop'
	13: from /home/mourad/.local/share/rbenv/versions/2.7.6/lib/ruby/gems/2.7.0/gems/httpx-0.21.0/lib/httpx/session.rb:215:in `block in receive_requests'
	12: from /home/mourad/.local/share/rbenv/versions/2.7.6/lib/ruby/gems/2.7.0/gems/httpx-0.21.0/lib/httpx/session.rb:215:in `catch'
	11: from /home/mourad/.local/share/rbenv/versions/2.7.6/lib/ruby/gems/2.7.0/gems/httpx-0.21.0/lib/httpx/session.rb:215:in `block (2 levels) in receive_requests'
	10: from /home/mourad/.local/share/rbenv/versions/2.7.6/lib/ruby/gems/2.7.0/gems/httpx-0.21.0/lib/httpx/pool.rb:28:in `next_tick'
	 9: from /home/mourad/.local/share/rbenv/versions/2.7.6/lib/ruby/gems/2.7.0/gems/httpx-0.21.0/lib/httpx/pool.rb:28:in `catch'
	 8: from /home/mourad/.local/share/rbenv/versions/2.7.6/lib/ruby/gems/2.7.0/gems/httpx-0.21.0/lib/httpx/pool.rb:36:in `block in next_tick'
	 7: from /home/mourad/.local/share/rbenv/versions/2.7.6/lib/ruby/gems/2.7.0/gems/httpx-0.21.0/lib/httpx/selector.rb:134:in `select'
	 6: from /home/mourad/.local/share/rbenv/versions/2.7.6/lib/ruby/gems/2.7.0/gems/httpx-0.21.0/lib/httpx/selector.rb:120:in `select_one'
	 5: from /home/mourad/.local/share/rbenv/versions/2.7.6/lib/ruby/gems/2.7.0/gems/httpx-0.21.0/lib/httpx/resolver/native.rb:75:in `call'
	 4: from /home/mourad/.local/share/rbenv/versions/2.7.6/lib/ruby/gems/2.7.0/gems/httpx-0.21.0/lib/httpx/resolver/native.rb:137:in `consume'
	 3: from /home/mourad/.local/share/rbenv/versions/2.7.6/lib/ruby/gems/2.7.0/gems/httpx-0.21.0/lib/httpx/resolver/native.rb:175:in `dread'
	 2: from /home/mourad/.local/share/rbenv/versions/2.7.6/lib/ruby/gems/2.7.0/gems/httpx-0.21.0/lib/httpx/resolver/native.rb:175:in `loop'
	 1: from /home/mourad/.local/share/rbenv/versions/2.7.6/lib/ruby/gems/2.7.0/gems/httpx-0.21.0/lib/httpx/resolver/native.rb:179:in `block in dread'
/home/mourad/.local/share/rbenv/versions/2.7.6/lib/ruby/gems/2.7.0/gems/httpx-0.21.0/lib/httpx/resolver/native.rb:215:in `parse': Can't resolve httpstat.us (HTTPX::NativeResolveError)

=> #<HTTPX::ErrorResponse:0x000055ebe3045590 @request=#<HTTPX::Request:700 GET https://httpstat.us/200 @headers={"user-agent"=>["httpx.rb/0.21.0"], "accept"=>["*/*"]} @body=#<#<Class:0x000055ebe3013248>:0x000055ebe30686d0>>, @error=#<HTTPX::NativeResolveError: Can't resolve httpstat.us>, @options=#<HTTPX::Options:0x000055ebe2fc7618 @debug=#<IO:<STDERR>>, @debug_level=1, @ssl={}, @http2_settings={:settings_enable_push=>0}, @fallback_protocol="http/1.1", @timeout={:connect_timeout=>60, :settings_timeout=>10, :operation_timeout=>60, :keep_alive_timeout=>20, :read_timeout=>Infinity, :write_timeout=>Infinity, :request_timeout=>Infinity}, @headers={}, @window_size=16384, @body_threshold_size=114688, @request_class=#<Class:0x000055ebe30134a0>, @response_class=#<Class:0x000055ebe3013400>, @headers_class=#<Class:0x000055ebe30132e8>, @request_body_class=#<Class:0x000055ebe3013248>, @response_body_class=#<Class:0x000055ebe30131a8>, @connection_class=#<Class:0x000055ebe3013158>, @options_class=#<Class:0x000055ebe3013040>, @persistent=false, @resolver_class=:native, @resolver_options={:cache=>true}, @ip_families=[2]>>