There was an issue with Weld 1 possibly causing a deadlock on WFLY when one thread attempts to replicate a session a another thread does the conversation context cleanup since both need a lock on a session (via getAttribute() and on a session parameter (map of all conversations over which we synchronize). I am not sure this issue exists on newer versions of Weld (2/3) - a lot has changed in regards to underlying structure; undertow wasn't used before, session replication options changed. Weld has very similar code in these bits throughout all its versions though. This is known to affect Weld 1.1.34.Final on WFLY for sure. We should apply a fix to Weld branches that doesn't require us to obtain two locks to clear up conversations. Draft of that is available on my branch - https://github.com/manovotn/core/tree/convRaceConditionFix_master |