Build: #1280 was successful Manual run by daryl herzmann

Code commits

Openfire (master)

  • daryl herzmann <akrherz@iastate.edu>

    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

    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)