Build: #1280 was successful Manual run by daryl herzmann
Code commits
Openfire (master)
-
daryl herzmann <akrherz@iastate.edu> 423c3afeae050e33e98bccd4dcebb9f868ee5e12
Merge pull request #1932 from guusdk/OF-2341_OF-2342_deadlock-prevention-s2s-bounces
OF-2341 / OF-2342: Process S2S 'bounces' async to prevent deadlocks -
Guus der Kinderen 2c48a7d8a817315c4e93798eac3458f3a3bff1ae
OF-2341 / OF-2342: Process S2S 'bounces' async to prevent deadlocks
When a stanza addressed to a remote domain cannot be processed, it is 'bounced'. Processing of these bounces has been a factor in at least two recent deadlocks on the Ignite domain.
This commit attempts to alleviate the problem by making the processing of the 'bounce' be asynchronous to the process that leads up to sending to original stanza (that was bounced). This decoupling allows locks/mutexes kept by the 'supplying' code flow to be released, before the 'bounce' is being processed (which arguably is a completely new stanza which needs not be processed under the original locks/mutexes anyway).- xmppserver/src/main/java/org/jivesoftware/openfire/muc/spi/MultiUserChatServiceImpl.java (version 2c48a7d8a817315c4e93798eac3458f3a3bff1ae)
- xmppserver/src/main/java/org/jivesoftware/openfire/server/OutgoingSessionPromise.java (version 2c48a7d8a817315c4e93798eac3458f3a3bff1ae)
- xmppserver/src/main/java/org/jivesoftware/openfire/session/LocalOutgoingServerSession.java (version 2c48a7d8a817315c4e93798eac3458f3a3bff1ae)