I’ve been looking at the deadlock that is documented in LOG4J-982.  It seems to 
me that the problem is that get/setConfigLocation and reconfigure are locking 
the whole LoggerContext.  First, the history shows that I added get & 
setConfigLocation as part of LOG4J2-207. I think Remko actually wrote the code. 
 I am not sure why these methods need to be synchronized. Wouldn’t it be enough 
for configLocation to be volatile?

Second, I don’t think locking the LoggerContext for the entirety a reconfigure 
is a good idea. reconfigure calls setConfiguration, which is also synchronized. 
It seems to me that while setConfiguration does need to be locked, it should be 
using a lock that specifically only prevents setConfiguration from being 
executed simultaneously from more than one thread.

Thoughts?

Ralph
---------------------------------------------------------------------
To unsubscribe, e-mail: log4j-dev-unsubscr...@logging.apache.org
For additional commands, e-mail: log4j-dev-h...@logging.apache.org

Reply via email to