Build: #2932 was successful
Job: RPM Workflow was successful
Code commits
Openfire (master)
-
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 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)