My concern isn't in the acquire, it is after the acquire.  The current code will open up two sockets to ZK.  One is used for the mutex.  The other is used for interaction with ZK.  If the active nimbus, that has passed the mutex.acquire() already, now has a networking glitch that causes just the mutex connection to be dropped.  I don't see how this will cause the currently active nimbus to get an IOException and shutdown.