You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@geode.apache.org by "Kirk Lund (JIRA)" <ji...@apache.org> on 2018/10/23 21:04:00 UTC

[jira] [Created] (GEODE-5915) ManagementListener.handleEvent logs a warning anytime a system Alert occurs

Kirk Lund created GEODE-5915:
--------------------------------

             Summary: ManagementListener.handleEvent logs a warning anytime a system Alert occurs
                 Key: GEODE-5915
                 URL: https://issues.apache.org/jira/browse/GEODE-5915
             Project: Geode
          Issue Type: Test
            Reporter: Kirk Lund


The IllegalMonitorStateException is being thrown because the read lock is acquired only if the ResourceEvent type is not SYSTEM_ALERT, but the code tries to unlock it unconditionally:

Lock:
{noformat}
    if (event == ResourceEvent.CACHE_CREATE || event == ResourceEvent.CACHE_REMOVE) {
      readWriteLock.writeLock().lock();
    } else if (event != ResourceEvent.SYSTEM_ALERT) {
      readWriteLock.readLock().lock();
    }
{noformat}

Unlock:
{noformat}
      if (event == ResourceEvent.CACHE_CREATE || event == ResourceEvent.CACHE_REMOVE) {
        readWriteLock.writeLock().unlock();
      } else {
        readWriteLock.readLock().unlock();
      }
{noformat}

{noformat}
[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)
{noformat}



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)