Loading
Commits on Source 38
-
Tiago authored
Co-authored-by:Will Cosgrove <will@cosgrove.email>
-
Tiago authored
increasing the number of workers in httpbin and nghttp2 significantly.
-
Tiago authored
the proxy has been terminating sockets before the test can succeed when ran in parallel and sharing connections.
-
Tiago authored
-
Tiago authored
-
When a streaming request fails and is retried, the request transitions back to :idle state. Previously, @headers_sent was not reset during this transition, causing the :body callback to fire prematurely on retry. This resulted in nested handle() calls that crashed with HTTP2::Error::InternalError because the stream was already in half_closed_local state. This fix resets @headers_sent to false when transitioning to :idle, ensuring a clean slate for retry attempts. Fixes #124
🤖 Generated with [Claude Code](https://claude.com/claude-code ) Co-Authored-By:Claude Opus 4.5 <noreply@anthropic.com> test(stream_bidi): add integration test for retry after headers sent Replace unit tests with proper integration test that verifies the actual behavior: streaming requests succeed on retry after connection failure (GOAWAY). Adds BidiFailOnce servlet that: - First stream: sends response headers, then GOAWAY (simulating failure) - Second stream: works normally like Bidi The test verifies that without the fix, HTTP2::Error::InternalError occurs due to @headers_sent not being reset on retry. Related to #124
🤖 Generated with [Claude Code](https://claude.com/claude-code ) Co-Authored-By:Claude Opus 4.5 <noreply@anthropic.com>
-
Tiago authored
as it's difficult to support anything else ATM, and there's no real use case
-
Tiago authored
-
Tiago authored
the loop to drop timers was running two times in a row for #fire calls, which could inadvertedly drop timers which didn't elapsed at that point (potentially an issue when observing multiple connections at once).
-
Tiago authored
-
Tiago authored
if there is nothing to select and all selectables were popped, treat it as a sign to sleep
-
Tiago authored
-
Tiago authored
-
Tiago authored
-
Tiago authored
-
Tiago authored
-
Tiago authored
-
Tiago authored
-
Tiago authored
-
Tiago authored
this refactors the god-object approach relying on HTTPX::Resolver and its helpers managing state, into an adapter layer on the HTTPX::Resolver::Cache namespace, for which a memory adapter, which implements the current default behaviour of in-memory LRU cache, was added. Other future adapters will have to implement the same API. The cache is accessible via the options object `resolver_cache` method, which accepts `:memory` by default, but can also be given a custom cache object which implements the cache API. This also fixes an issue whereby resolver cache access within a non main ractor was not thread-safe. Closes #368
-
Tiago authored
-
Earlopain authored
``` irb(main):001> require "httpx" /home/user/code/httpx/lib/httpx/options.rb:461: warning: method redefined; discarding old option_resolver_class /home/user/code/httpx/lib/httpx/options.rb:407: warning: previous definition of option_resolver_class was here ```
-
HoneyryderChuck authored
Fix duplicate method warning when requiring httpx See merge request !429
-
Tiago authored
-
Tiago authored
-
Tiago authored
also renamed repeatable_request? to retryable_request?
-
Tiago authored
this bypasses the change_requests check, as it's assumed that the next request with a refreshed token will succeed git add lib -p
-
Tiago authored
the new helper method allows fixing a long standing issue, as the change_requests set to true was a hack that could be dangerous, and the tretry_on callback could be overridden by the end user
-
Tiago authored
-
Tiago authored
this prevents a busy loop on connection
-
HoneyryderChuck authored
Auth plugin: Retry on 401 errors See merge request !430
-
Tiago authored
-
Tiago authored
-
the callback which flushes the bidi write buffer needs to be reset if requests are retried, as it may have been moved to a different connection/stream.
-
Tiago authored
while the token was being popped only on auth errors, the logic to add the token to the request was still running, the current token ending up concatenated with itself the token is now memoized in the request and only discarded on auth errors, ensuring that connection resets won't reset the token either
-
Tiago authored
received chunks it's not guaranteed in the test that any other tests will have time to send back some chunks, so better not rely on that.
-
HoneyryderChuck authored
auth: do not concatenate same token when a request is retried for a non-authorization error See merge request !431
-
Tiago authored