You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@geode.apache.org by "Eric Shu (JIRA)" <ji...@apache.org> on 2016/10/13 17:56:20 UTC
[jira] [Resolved] (GEODE-1999) offheap memory leak could occur in
GatewaySenderQueue
[ https://issues.apache.org/jira/browse/GEODE-1999?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Eric Shu resolved GEODE-1999.
-----------------------------
Resolution: Fixed
Fix Version/s: 1.0.0-incubating
> offheap memory leak could occur in GatewaySenderQueue
> -----------------------------------------------------
>
> Key: GEODE-1999
> URL: https://issues.apache.org/jira/browse/GEODE-1999
> Project: Geode
> Issue Type: Bug
> Components: offheap
> Reporter: Eric Shu
> Assignee: Eric Shu
> Fix For: 1.0.0-incubating
>
>
> When GatewaySenderEventImpl is removing from the sender queue, it is put into an EntryEventImpl. The offheap reference will be removed late once the basicDestory call is done.
> protected void basicDestroy(final EntryEventImpl event,
> final boolean cacheWrite, Object expectedOldValue)
> throws EntryNotFoundException, CacheWriterException, TimeoutException {
> super.basicDestroy(event, cacheWrite, expectedOldValue);
> GatewaySenderEventImpl.release(event.getRawOldValue());
> }
> The following exception is thrown during the basicDestroy call, and the GatewaySenderEventImpl removed from the queue in the basicDestroy failed to remove offheap reference.
> [info 2016/10/11 11:07:38.312 PDT bridgegemfire_1_1_elmax_2881 <ServerConnection on port 29381 Thread 1> tid=0x76] org.apache.geode.distributed.DistributedSystemDisconnectedException: DistributedSystem is shutting down, caused by org.apache.geode.ForcedDisconnectException: Member isn't responding to heartbeat requests
> at org.apache.geode.distributed.internal.membership.gms.mgr.GMSMembershipManager.directChannelSend(GMSMembershipManager.java:1701)
> at org.apache.geode.distributed.internal.membership.gms.mgr.GMSMembershipManager.send(GMSMembershipManager.java:1861)
> at org.apache.geode.distributed.internal.DistributionChannel.send(DistributionChannel.java:88)
> at org.apache.geode.distributed.internal.DistributionManager.sendOutgoing(DistributionManager.java:3402)
> at org.apache.geode.distributed.internal.DistributionManager.sendMessage(DistributionManager.java:3443)
> at org.apache.geode.distributed.internal.DistributionManager.putOutgoing(DistributionManager.java:1806)
> at org.apache.geode.internal.cache.DistributedCacheOperation.distribute(DistributedCacheOperation.java:509)
> at org.apache.geode.internal.cache.DistributedRegion.distributeDestroy(DistributedRegion.java:1779)
> at org.apache.geode.internal.cache.DistributedRegion.basicDestroyPart3(DistributedRegion.java:1770)
> at org.apache.geode.internal.cache.AbstractRegionMap.destroy(AbstractRegionMap.java:1527)
> at org.apache.geode.internal.cache.LocalRegion.mapDestroy(LocalRegion.java:7019)
> at org.apache.geode.internal.cache.LocalRegion.mapDestroy(LocalRegion.java:6991)
> at org.apache.geode.internal.cache.LocalRegionDataView.destroyExistingEntry(LocalRegionDataView.java:55)
> at org.apache.geode.internal.cache.LocalRegion.basicDestroy(LocalRegion.java:6956)
> at org.apache.geode.internal.cache.DistributedRegion.basicDestroy(DistributedRegion.java:1738)
> at org.apache.geode.internal.cache.wan.serial.SerialGatewaySenderQueue$SerialGatewaySenderQueueMetaRegion.basicDestroy(SerialGatewaySenderQueue.java:1298)
> at org.apache.geode.internal.cache.LocalRegion.validatedDestroy(LocalRegion.java:1150)
> at org.apache.geode.internal.cache.DistributedRegion.validatedDestroy(DistributedRegion.java:1024)
> at org.apache.geode.internal.cache.LocalRegion.destroy(LocalRegion.java:1134)
> at org.apache.geode.internal.cache.AbstractRegion.destroy(AbstractRegion.java:276)
> at org.apache.geode.internal.cache.LocalRegion.remove(LocalRegion.java:9587)
> at org.apache.geode.internal.cache.wan.serial.SerialGatewaySenderQueue.removeOldEntry(SerialGatewaySenderQueue.java:657)
> at org.apache.geode.internal.cache.wan.serial.SerialGatewaySenderQueue.putAndGetKey(SerialGatewaySenderQueue.java:279)
> at org.apache.geode.internal.cache.wan.serial.SerialGatewaySenderQueue.put(SerialGatewaySenderQueue.java:252)
> at org.apache.geode.internal.cache.wan.serial.SerialGatewaySenderEventProcessor.queuePrimaryEvent(SerialGatewaySenderEventProcessor.java:467)
> at org.apache.geode.internal.cache.wan.serial.SerialGatewaySenderEventProcessor.enqueueEvent(SerialGatewaySenderEventProcessor.java:436)
> at org.apache.geode.internal.cache.wan.AbstractGatewaySender.distribute(AbstractGatewaySender.java:959)
> at org.apache.geode.internal.cache.LocalRegion.notifyGatewaySender(LocalRegion.java:6599)
> at org.apache.geode.internal.cache.BucketRegion.notifyGatewaySender(BucketRegion.java:673)
> at org.apache.geode.internal.cache.LocalRegion.basicPutPart2(LocalRegion.java:6136)
> at org.apache.geode.internal.cache.BucketRegion.basicPutPart2(BucketRegion.java:663)
> at org.apache.geode.internal.cache.AbstractRegionMap.basicPut(AbstractRegionMap.java:2807)
> at org.apache.geode.internal.cache.BucketRegion.virtualPut(BucketRegion.java:504)
> at org.apache.geode.internal.cache.PartitionedRegionDataStore.putLocally(PartitionedRegionDataStore.java:1275)
> at org.apache.geode.internal.cache.PartitionedRegion.putInBucket(PartitionedRegion.java:2809)
> at org.apache.geode.internal.cache.PartitionedRegion.virtualPut(PartitionedRegion.java:1973)
> at org.apache.geode.internal.cache.LocalRegionDataView.putEntry(LocalRegionDataView.java:132)
> at org.apache.geode.internal.cache.LocalRegion.basicUpdate(LocalRegion.java:5930)
> at org.apache.geode.internal.cache.LocalRegion.basicBridgePut(LocalRegion.java:5548)
> at org.apache.geode.internal.cache.tier.sockets.command.Put65.cmdExecute(Put65.java:367)
> at org.apache.geode.internal.cache.tier.sockets.BaseCommand.execute(BaseCommand.java:147)
> at org.apache.geode.internal.cache.tier.sockets.ServerConnection.doNormalMsg(ServerConnection.java:783)
> at org.apache.geode.internal.cache.tier.sockets.ServerConnection.doOneMessage(ServerConnection.java:913)
> at org.apache.geode.internal.cache.tier.sockets.ServerConnection.run(ServerConnection.java:1143)
> at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
> at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
> at org.apache.geode.internal.cache.tier.sockets.AcceptorImpl$1$1.run(AcceptorImpl.java:546)
> at java.lang.Thread.run(Thread.java:745)
> Caused by: org.apache.geode.ForcedDisconnectException: Member isn't responding to heartbeat requests
> at org.apache.geode.distributed.internal.membership.gms.mgr.GMSMembershipManager.forceDisconnect(GMSMembershipManager.java:2502)
> at org.apache.geode.distributed.internal.membership.gms.membership.GMSJoinLeave.forceDisconnect(GMSJoinLeave.java:971)
> at org.apache.geode.distributed.internal.membership.gms.membership.GMSJoinLeave.processRemoveRequest(GMSJoinLeave.java:618)
> at org.apache.geode.distributed.internal.membership.gms.membership.GMSJoinLeave.processMessage(GMSJoinLeave.java:1654)
> at org.apache.geode.distributed.internal.membership.gms.messenger.JGroupsMessenger$JGroupsReceiver.receive(JGroupsMessenger.java:1269)
> at org.jgroups.JChannel.invokeCallback(JChannel.java:816)
> at org.jgroups.JChannel.up(JChannel.java:741)
> at org.jgroups.stack.ProtocolStack.up(ProtocolStack.java:1030)
> at org.jgroups.protocols.FRAG2.up(FRAG2.java:165)
> at org.jgroups.protocols.FlowControl.up(FlowControl.java:390)
> at org.jgroups.protocols.UNICAST3.deliverMessage(UNICAST3.java:1070)
> at org.jgroups.protocols.UNICAST3.handleDataReceived(UNICAST3.java:785)
> at org.jgroups.protocols.UNICAST3.up(UNICAST3.java:426)
> at org.apache.geode.distributed.internal.membership.gms.messenger.StatRecorder.up(StatRecorder.java:75)
> at org.apache.geode.distributed.internal.membership.gms.messenger.AddressManager.up(AddressManager.java:75)
> at org.jgroups.protocols.TP.passMessageUp(TP.java:1601)
> at org.jgroups.protocols.TP$SingleMessageHandler.run(TP.java:1817)
> at org.jgroups.util.DirectExecutor.execute(DirectExecutor.java:10)
> at org.jgroups.protocols.TP.handleSingleMessage(TP.java:1729)
> at org.jgroups.protocols.TP.receive(TP.java:1654)
> at org.apache.geode.distributed.internal.membership.gms.messenger.Transport.receive(Transport.java:162)
> at org.jgroups.protocols.UDP$PacketReceiver.run(UDP.java:701)
> ... 1 more
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)