You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@geode.apache.org by Kirk Lund <kl...@apache.org> on 2018/10/23 20:50:18 UTC

ManagementListener$handleEvent warning being logged

I noticed the following warning log statement while digging through the
ouput in a dunit.

It's caused by a bug in
org.apache.geode.management.internal.beans.ManagementListener$handleEvent
-- the readLock is acquired under a condition (event !=
ResourceEvent.SYSTEM_ALERT) but released without condition. It's easy to
fix so I'll file a bug and submit a PR.

I'm not sure why this wasn't noticed before unless maybe recent LoggingThread
changes allowed it to be revealed? I'm also not sure why dunit grep for
suspect strings isn't finding this and causing dunit failures.

Does anyone know why this doesn't get picked by
DUnitLauncher.closeAndCheckForSuspects()?
I'm not sure that we have any tests to prevent us from breaking the check
for suspect strings.

[vm0] [warn 2018/10/23 12:51:35.339 PDT <Pooled Message Processor 2>
tid=0x58] attempt to unlock read lock, not locked by current thread
[vm0] java.lang.IllegalMonitorStateException: attempt to unlock read lock,
not locked by current thread
[vm0] at
java.util.concurrent.locks.ReentrantReadWriteLock$Sync.unmatchedUnlockException(ReentrantReadWriteLock.java:444)
[vm0] at
java.util.concurrent.locks.ReentrantReadWriteLock$Sync.tryReleaseShared(ReentrantReadWriteLock.java:428)
[vm0] at
java.util.concurrent.locks.AbstractQueuedSynchronizer.releaseShared(AbstractQueuedSynchronizer.java:1341)
[vm0] at
java.util.concurrent.locks.ReentrantReadWriteLock$ReadLock.unlock(ReentrantReadWriteLock.java:881)
[vm0] at
org.apache.geode.management.internal.beans.ManagementListener.handleEvent(ManagementListener.java:232)
[vm0] at
org.apache.geode.distributed.internal.InternalDistributedSystem.notifyResourceEventListeners(InternalDistributedSystem.java:2219)
[vm0] at
org.apache.geode.distributed.internal.InternalDistributedSystem.handleResourceEvent(InternalDistributedSystem.java:595)
[vm0] at
org.apache.geode.internal.admin.remote.AlertListenerMessage.process(AlertListenerMessage.java:106)
[vm0] at
org.apache.geode.distributed.internal.DistributionMessage.scheduleAction(DistributionMessage.java:367)
[vm0] at
org.apache.geode.distributed.internal.DistributionMessage$1.run(DistributionMessage.java:432)
[vm0] at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
[vm0] at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
[vm0] at
org.apache.geode.distributed.internal.ClusterDistributionManager.runUntilShutdown(ClusterDistributionManager.java:954)
[vm0] at
org.apache.geode.distributed.internal.ClusterDistributionManager.doProcessingThread(ClusterDistributionManager.java:820)
[vm0] at
org.apache.geode.internal.logging.LoggingThreadFactory.lambda$newThread$0(LoggingThreadFactory.java:121)
[vm0] at java.lang.Thread.run(Thread.java:748)