Barry Oglesby created GEODE-2293:
------------------------------------

             Summary: The AckReaderThread incorrectly shuts down when an 
IllegalStateException is throw whiel releasing an off-heap object
                 Key: GEODE-2293
                 URL: https://issues.apache.org/jira/browse/GEODE-2293
             Project: Geode
          Issue Type: Bug
          Components: wan
            Reporter: Barry Oglesby


The regression test run showed the following severe message:
{noformat}
[severe 2017/01/07 09:14:40.789 UTC 
bridgegemfire_1_1_rs-QueuesBTTest-2017-01-06-14-07-15-client-12_3912 
<AckReaderThread for : Event Processor for 
GatewaySender_sender_bridgeds_1_to_bridgeds_2_0> tid=0x97] Stopping the 
processor because the following exception occurred while processing a batch:
java.lang.IllegalStateException: It looks like off heap memory @7f33a8000238 
was already freed. rawBits=0 history=null
        at 
org.apache.geode.internal.offheap.OffHeapStoredObject.release(OffHeapStoredObject.java:675)
        at 
org.apache.geode.internal.offheap.OffHeapStoredObject.release(OffHeapStoredObject.java:659)
        at 
org.apache.geode.internal.offheap.OffHeapStoredObject.release(OffHeapStoredObject.java:373)
        at 
org.apache.geode.internal.offheap.OffHeapHelper.releaseAndTrackOwner(OffHeapHelper.java:138)
        at 
org.apache.geode.internal.cache.wan.GatewaySenderEventImpl.release(GatewaySenderEventImpl.java:1213)
        at 
org.apache.geode.internal.cache.wan.parallel.ParallelGatewaySenderQueue.remove(ParallelGatewaySenderQueue.java:1096)
        at 
org.apache.geode.internal.cache.wan.parallel.ParallelGatewaySenderQueue.remove(ParallelGatewaySenderQueue.java:1531)
        at 
org.apache.geode.internal.cache.wan.AbstractGatewaySenderEventProcessor.eventQueueRemove(AbstractGatewaySenderEventProcessor.java:231)
        at 
org.apache.geode.internal.cache.wan.AbstractGatewaySenderEventProcessor.handleSuccessBatchAck(AbstractGatewaySenderEventProcessor.java:981)
        at 
org.apache.geode.internal.cache.wan.GatewaySenderEventRemoteDispatcher$AckReaderThread.run(GatewaySenderEventRemoteDispatcher.java:636)
{noformat}
This exception shows that the {{AckReaderThread}} was processing a successful 
batch acknowledgement, and an {{IllegalStateException}} was thrown while 
releasing a {{GatewaySenderEventImpl}} from off-heap memory. This caused the 
{{AckReaderThread}} to shut down. It looks like the {{GatewaySenderEventImpl}} 
had already been released and is being released again. I'm not sure how the 
{{GatewaySenderEventImpl}} got into this state, but the {{AckReaderThread}} 
should not shut down because of this {{IllegalStateException}}.

The code in question is in the finally block of 
{{ParallelGatewaySenderQueue.remove}}:
{noformat}
} finally {
  event.release();
}
{noformat}

The test run is here: 
/export/monaco1/users/lhughes/xfer/wanconflationPersist-0107-091328




--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to