Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: ahoppen/async-http-client
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: main
Choose a base ref
...
head repository: swift-server/async-http-client
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: main
Choose a head ref
Checking mergeability… Don’t worry, you can still create the pull request.
  • 14 commits
  • 41 files changed
  • 9 contributors

Commits on Aug 24, 2025

  1. Fix trailing space in ConnectionPool.Key string (swift-server#855)

    Motivation:
    
    The trailing space is visible in log message metadata, and depending
    upon the log handler in use, will sometimes be visible due to quoting.
    
    Modifications:
    
    Just remove the trailing space.
    
    Result:
    
    There won't be a trailing space in the key anymore. This has no
    functional impact whatsoever as far as I was able to determine.
    gwynne authored Aug 24, 2025
    Configuration menu
    Copy the full SHA
    254d340 View commit details
    Browse the repository at this point in the history

Commits on Sep 9, 2025

  1. Add support for HTTP/1 connection pre-warming (swift-server#856)

    Motivation
    
    This patch adds support for HTTP/1 connection pre-warming. This allows
    the user to request that the HTTP/1 connection pool create and maintain
    extra connections, above-and-beyond those strictly needed to run the
    pool. This pool can be used to absorb small spikes in request traffic
    without increasing latency to account for connection creation.
    
    Modifications
    
    - Added new configuration properties for pre-warmed connections.
    - Amended the HTTP/1 state machine to create new connections where
    necessary.
    - Added state machine tests.
    
    Results
    
    Pre-warmed connections are available.
    Lukasa authored Sep 9, 2025
    Configuration menu
    Copy the full SHA
    7dc119c View commit details
    Browse the repository at this point in the history

Commits on Sep 22, 2025

  1. Enable Swift 6.2 jobs in CI (swift-server#859)

    Motivation:
    
    Swift 6.2 has been released, we should add it to our CI coverage.
    
    Modifications:
    
    Add additional Swift 6.2 jobs where appropriate in main.yml,
    pull_request.yml
    
    Result:
    
    Improved test coverage.
    rnro authored Sep 22, 2025
    Configuration menu
    Copy the full SHA
    31c8b04 View commit details
    Browse the repository at this point in the history

Commits on Oct 7, 2025

  1. Introduce built-in swift-distributed-tracing support (swift-server#857)

    Co-authored-by: Moritz Lang <16192401+slashmo@users.noreply.github.com>
    Co-authored-by: George Barnett <gbarnett@apple.com>
    3 people authored Oct 7, 2025
    Configuration menu
    Copy the full SHA
    8430dd4 View commit details
    Browse the repository at this point in the history

Commits on Oct 9, 2025

  1. Configuration menu
    Copy the full SHA
    c2a3a2c View commit details
    Browse the repository at this point in the history

Commits on Oct 10, 2025

  1. Configuration menu
    Copy the full SHA
    353bbc8 View commit details
    Browse the repository at this point in the history

Commits on Oct 14, 2025

  1. Avoid delays when inserting HTTP/2 handlers. (swift-server#864)

    Motivation
    
    Right now, we insert HTTP/2 handlers in a callback on a future that is
    done very late. The result of this is that an entire ALPN negotiaton
    _can_ complete before this callback is attached. That can in rare cases
    cause the HTTP/2 handler to miss the server preamble, because it gets
    added too late.
    
    Modifications
    
    This patch refactors the existing code to close that window. It does so
    by passing a promise into the connection path and completing that
    promise _on_ the event loop where we add the ALPN handlers, which should
    ensure this will execute immediately when the ALPN negotiation
    completes. Immportantly, we attach our promise callbacks to that promise
    _before_ we hand it off, making sure the timing windows go away.
    
    Results
    
    Timing window is closed
    Lukasa authored Oct 14, 2025
    Configuration menu
    Copy the full SHA
    0ce87cb View commit details
    Browse the repository at this point in the history

Commits on Oct 15, 2025

  1. Resolve SendableMetatype issues (swift-server#865)

    This resolves warnings around SendableMetatype in the AHC codebase, and
    gets our 6.2 builds working again.
    Lukasa authored Oct 15, 2025
    Configuration menu
    Copy the full SHA
    efb14fe View commit details
    Browse the repository at this point in the history

Commits on Oct 30, 2025

  1. Add explicit read permissions to workflows (swift-server#867)

    Motivation:
    
    * More secure GitHub Actions workflows
    
    Modifications:
    
    Add explicit 'contents: read' permissions to workflows that did not have
    explicit permissions defined. This follows GitHub Actions security best
    practices by limiting the default GITHUB_TOKEN permissions.
    
    Result:
    
    An extra layer of security.
    rnro authored Oct 30, 2025
    Configuration menu
    Copy the full SHA
    b2ae845 View commit details
    Browse the repository at this point in the history

Commits on Nov 7, 2025

  1. Configuration menu
    Copy the full SHA
    b2faff9 View commit details
    Browse the repository at this point in the history

Commits on Nov 26, 2025

  1. Don't hold a lock over a continuation in Transaction (swift-server#871)

    Motivation:
    
    The various 'withMumbleContinuation' APIs are supposed to be invoked
    synchronously with the caller. This assumption allows a lock to be
    acquired before the call and released from the body of the
    'withMumbleContinuation' after e.g. storing the continuation. However
    this isn't the case and the job may be re-enqueued on the executor
    meaning that this is pattern is vulnerable to deadlocks.
    
    Modifications:
    
    - Drop and reacquire the lock in Transaction
    
    Result:
    
    Lower chance of deadlock
    glbrntt authored Nov 26, 2025
    Configuration menu
    Copy the full SHA
    ce04df0 View commit details
    Browse the repository at this point in the history

Commits on Dec 1, 2025

  1. Fix Connection Creation Crash (swift-server#873)

    ### Motivation
    
    When creating a connection, we wrongfully assumed that
    `failedToCreateNewConnection` will always be called before
    `http*ConnectionClosed` in the `HTTPConnectionPoolStateMachine`. However
    this is far from correct. In NIO Futures are fulfilled before
    `ChannelHandler` callbacks. Ordering in futures should not be assumed in
    such a complex project.
    
    ### Change
    
    We change the `http*ConnectionClosed` methods to be noops, if the
    connection is in the starting state. We instead wait for the
    `failedToCreateNewConnection` to create backoff timers and friends.
    
    rdar://164674912
    
    ---------
    
    Co-authored-by: George Barnett <gbarnett@apple.com>
    fabianfett and glbrntt authored Dec 1, 2025
    Configuration menu
    Copy the full SHA
    3c45dbd View commit details
    Browse the repository at this point in the history
  2. Don't hold a lock over a continuation in test helpers (swift-server#872)

    Motivation:
    
    The various 'withMumbleContinuation' APIs are supposed to be invoked
    synchronously with the caller. This assumption allows a lock to be
    acquired before the call and released from the body of the
    'withMumbleContinuation' after e.g. storing the continuation. However
    this isn't the case and the job may be re-enqueued on the executor
    meaning that this is pattern is vulnerable to deadlocks.
    
    Modifications:
    
    - Rework the test helpers to avoid holding a lock when a continuation is
    created.
    - Switch to using NIOLockedValue box
    
    Result:
    
    Lower chance of deadlock
    glbrntt authored Dec 1, 2025
    Configuration menu
    Copy the full SHA
    c464bf9 View commit details
    Browse the repository at this point in the history

Commits on Dec 4, 2025

  1. Remove CollectEverythingLogHandler implementation in favour of InMemo…

    …ryLogHandler from swift-log (swift-server#874)
    
    Swift log now has an InMemoryLogHandler. Lets depend on that instead of
    having our own `CollectEverythingLogHandler`.
    
    I've added an extension on top, to make it easier to create the logger
    too
    
    Result: less code
    hamzahrmalik authored Dec 4, 2025
    Configuration menu
    Copy the full SHA
    5dd84c7 View commit details
    Browse the repository at this point in the history
Loading