Build: #2932 was successful Manual run by Guus der Kinderen

Stages & jobs

  1. Build and Package

Code commits

Openfire (master)

  • Guus der Kinderen

    Guus der Kinderen c9f81318019ebc2837a274df6eec4817d16bcd85

    OF-3283: Wait for outgoing route teardown before re-establishing S2S routes
    Before establishing a new outgoing server session, wait for any existing route for the domain pair to finish tearing down.

    For local routes, continue to use the connection close future to wait until all close processing has completed, including route-removal listeners.

    For remote routes, this comitm adds a poll on the routing table until a closing route disappears or is replaced.

    While holding the cluster lock, reuse any route that was created in parallel. If that route is already closed or closing, fail fast instead of reusing it. This is likely an edge case that doesn't happen in production.

    This reduces the chance of colliding with stale routing state during route teardown while keeping the route reuse logic simple.

    • xmppserver/src/main/java/org/jivesoftware/openfire/server/OutgoingSessionPromise.java (version c9f81318019ebc2837a274df6eec4817d16bcd85)
  • Guus der Kinderen

    Guus der Kinderen 7b7ceda77f04a8addf91ac8256d94578a8bce900

    OF-3283: Reuse clustered outgoing server routes in OutgoingSessionPromise
    Re-check the routing table while holding the serversCache lock before authenticating a domain in OutgoingSessionPromise.

    This allows a node to reuse an outgoing server route that was created by another cluster node while waiting for the lock, instead of attempting a redundant authentication.

    • xmppserver/src/main/java/org/jivesoftware/openfire/server/OutgoingSessionPromise.java (version 7b7ceda77f04a8addf91ac8256d94578a8bce900)