[
https://issues.apache.org/jira/browse/GEODE-2293?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Jason Huynh resolved GEODE-2293.
--------------------------------
Resolution: Fixed
Fix Version/s: 1.1.0
> The AckReaderThread incorrectly shuts down when an IllegalStateException is
> thrown while 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
> Assignee: Jason Huynh
> Labels: regression
> Fix For: 1.1.0
>
>
> 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}
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)