Yes, this is plausible.  But I'm not sure what the solution is.  If a
zookeeper session disappears, according to the documentation everything
associated with that session should also disappear.

So I guess we could catch this error and just ignore it, assuming that the
session must be gone anyway?

Karl


On Tue, Dec 7, 2021 at 8:21 AM Julien Massiera <
julien.massi...@francelabs.com> wrote:

> Hi,
>
> the Zookeeper lock error mentioned in the before last comment of this
> issue https://issues.apache.org/jira/browse/CONNECTORS-1447:
>
> FATAL 2017-08-04 09:28:25,855 (Agents idle cleanup thread) - Error tossed:
> Can't release lock we don't hold
> java.lang.IllegalStateException: Can't release lock we don't hold
> at
> org.apache.manifoldcf.core.lockmanager.ZooKeeperConnection.releaseLock(ZooKeeperConnection.java:815)
> at
> org.apache.manifoldcf.core.lockmanager.ZooKeeperLockObject.clearLock(ZooKeeperLockObject.java:218)
> at
> org.apache.manifoldcf.core.lockmanager.ZooKeeperLockObject.clearGlobalWriteLockNoWait(ZooKeeperLockObject.java:100)
> at
> org.apache.manifoldcf.core.lockmanager.LockObject.clearGlobalWriteLock(LockObject.java:160)
> at
> org.apache.manifoldcf.core.lockmanager.LockObject.leaveWriteLock(LockObject.java:141)
> at
> org.apache.manifoldcf.core.lockmanager.LockGate.leaveWriteLock(LockGate.java:205)
> at
> org.apache.manifoldcf.core.lockmanager.BaseLockManager.leaveWrite(BaseLockManager.java:1224)
> at
> org.apache.manifoldcf.core.lockmanager.BaseLockManager.leaveWriteLock(BaseLockManager.java:771)
> at
> org.apache.manifoldcf.core.connectorpool.ConnectorPool$Pool.pollAll(ConnectorPool.java:670)
> at
> org.apache.manifoldcf.core.connectorpool.ConnectorPool.pollAllConnectors(ConnectorPool.java:338)
> at
> org.apache.manifoldcf.agents.transformationconnectorpool.TransformationConnectorPool.pollAllConnectors(TransformationConnectorPool.java:121)
> at
> org.apache.manifoldcf.agents.system.IdleCleanupThread.run(IdleCleanupThread.java:91)
>
> is still happening in 2021 with the 2.20 version of MCF.
>
> Karl, you hypothesized that it could be related to Zookeeper being
> restarted while the MCF agent is still running, but after some
> investigations, my theory is that it is related to re-established
> sessions. Locks are not associated to a process but to a session, and it
> could happen that when a session is closed accidentally (interrupted by
> exceptions etc), it does not correctly release the locks it sets. When a
> new session is created by Zookeeper for the same client, the locks
> cannot be released because they belong to an old session and the
> exception is thrown !
>
> Is it something plausible for you ? I have no knowledge on Zookeeper but
> if it is something plausible, then it is worth investigating into the
> code to see if everything is correctly done to be sure that all locks
> are released when a session is closed/interrupted by a problem.
>
> Julien
>
> --
> L'absence de virus dans ce courrier électronique a été vérifiée par le
> logiciel antivirus Avast.
> https://www.avast.com/antivirus
>

Reply via email to