You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@geode.apache.org by "Dave Barnes (Jira)" <ji...@apache.org> on 2020/09/10 15:52:13 UTC

[jira] [Closed] (GEODE-7920) Geode UDP INT thread found processing cache operations

     [ https://issues.apache.org/jira/browse/GEODE-7920?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Dave Barnes closed GEODE-7920.
------------------------------

> Geode UDP INT thread found processing cache operations
> ------------------------------------------------------
>
>                 Key: GEODE-7920
>                 URL: https://issues.apache.org/jira/browse/GEODE-7920
>             Project: Geode
>          Issue Type: Bug
>          Components: membership, messaging
>            Reporter: Bruce J Schuchardt
>            Assignee: Bruce J Schuchardt
>            Priority: Major
>             Fix For: 1.13.0
>
>          Time Spent: 1h 10m
>  Remaining Estimate: 0h
>
> While looking into another problem in a test run with disable-tcp=true I found this JGroups thread processing a cache operation in-line.  These threads should never process cache ops.  They exist just to read messages and hand them off to an Executor.
> Fixing this should improve UDP messaging performance somewhat.
> {noformat}
> "Geode UDP INT-2,rs-Awesome-781-1145-1a0i32xlarge-hydra-client-4-27004" #54 daemon prio=5 os_prio=0 tid=0x00007f202c05b800 nid=0x778d runnable [0x00007f20b0bb6000]
>    java.lang.Thread.State: RUNNABLE
> 	at java.net.SocketInputStream.socketRead0(Native Method)
> 	at java.net.SocketInputStream.socketRead(SocketInputStream.java:116)
> 	at java.net.SocketInputStream.read(SocketInputStream.java:171)
> 	at java.net.SocketInputStream.read(SocketInputStream.java:141)
> 	at java.io.BufferedInputStream.fill(BufferedInputStream.java:246)
> 	at java.io.BufferedInputStream.read(BufferedInputStream.java:265)
> 	- locked <0x00000000c292f560> (a java.io.BufferedInputStream)
> 	at java.io.DataInputStream.readByte(DataInputStream.java:265)
> 	at sun.rmi.transport.StreamRemoteCall.executeCall(StreamRemoteCall.java:240)
> 	at sun.rmi.server.UnicastRef.invoke(UnicastRef.java:163)
> 	at java.rmi.server.RemoteObjectInvocationHandler.invokeRemoteMethod(RemoteObjectInvocationHandler.java:235)
> 	at java.rmi.server.RemoteObjectInvocationHandler.invoke(RemoteObjectInvocationHandler.java:180)
> 	at com.sun.proxy.$Proxy53.increment(Unknown Source)
> 	at hydra.blackboard.AnySharedCountersImpl.increment(AnySharedCountersImpl.java:159)
> 	at util.AbstractListener.incrementAfterDestroyCounters(AbstractListener.java:450)
> 	at event.ETListener.afterDestroy(ETListener.java:88)
> 	at org.apache.geode.internal.cache.EnumListenerEvent$AFTER_DESTROY.dispatchEvent(EnumListenerEvent.java:178)
> 	at org.apache.geode.internal.cache.LocalRegion.dispatchEvent(LocalRegion.java:8242)
> 	at org.apache.geode.internal.cache.LocalRegion.dispatchListenerEvent(LocalRegion.java:6952)
> 	at org.apache.geode.internal.cache.LocalRegion.invokeDestroyCallbacks(LocalRegion.java:6760)
> 	at org.apache.geode.internal.cache.EntryEventImpl.invokeCallbacks(EntryEventImpl.java:2443)
> 	at org.apache.geode.internal.cache.entries.AbstractRegionEntry.dispatchListenerEvents(AbstractRegionEntry.java:164)
> 	at org.apache.geode.internal.cache.LocalRegion.basicDestroyPart2(LocalRegion.java:6701)
> 	at org.apache.geode.internal.cache.map.RegionMapDestroy.removeEntryOrLeaveTombstone(RegionMapDestroy.java:509)
> 	at org.apache.geode.internal.cache.map.RegionMapDestroy.retryRemoveWithTombstone(RegionMapDestroy.java:373)
> 	- locked <0x00000000fe71d6e0> (a org.apache.geode.internal.cache.entries.VersionedStatsRegionEntryOffHeapStringKey2)
> 	at org.apache.geode.internal.cache.map.RegionMapDestroy.checkTombstoneAndConcurrency(RegionMapDestroy.java:202)
> 	at org.apache.geode.internal.cache.map.RegionMapDestroy.destroy(RegionMapDestroy.java:147)
> 	at org.apache.geode.internal.cache.AbstractRegionMap.destroy(AbstractRegionMap.java:980)
> 	at org.apache.geode.internal.cache.LocalRegion.mapDestroy(LocalRegion.java:6490)
> 	at org.apache.geode.internal.cache.LocalRegion.mapDestroy(LocalRegion.java:6464)
> 	at org.apache.geode.internal.cache.LocalRegionDataView.destroyExistingEntry(LocalRegionDataView.java:58)
> 	at org.apache.geode.internal.cache.LocalRegion.basicDestroy(LocalRegion.java:6415)
> 	at org.apache.geode.internal.cache.DistributedRegion.basicDestroy(DistributedRegion.java:1720)
> 	at org.apache.geode.internal.cache.DestroyOperation$DestroyMessage.operateOnRegion(DestroyOperation.java:88)
> 	at org.apache.geode.internal.cache.DistributedCacheOperation$CacheOperationMessage.basicProcess(DistributedCacheOperation.java:1208)
> 	at org.apache.geode.internal.cache.DistributedCacheOperation$CacheOperationMessage.process(DistributedCacheOperation.java:1110)
> 	at org.apache.geode.distributed.internal.DistributionMessage.scheduleAction(DistributionMessage.java:376)
> 	at org.apache.geode.distributed.internal.DistributionMessage.schedule(DistributionMessage.java:431)
> 	at org.apache.geode.distributed.internal.ClusterDistributionManager.scheduleIncomingMessage(ClusterDistributionManager.java:2072)
> 	at org.apache.geode.distributed.internal.ClusterDistributionManager.handleIncomingDMsg(ClusterDistributionManager.java:1847)
> 	at org.apache.geode.distributed.internal.ClusterDistributionManager$$Lambda$74/1548842157.messageReceived(Unknown Source)
> 	at org.apache.geode.distributed.internal.membership.gms.GMSMembership.dispatchMessage(GMSMembership.java:931)
> {noformat}
> This can be fixed by re-enabling the commented out code in DistributionMessage.isPreciousThread().  There are two thread-name checks already in that method that need to be retained as well, for the unicast-reader thread and the multicast-reader thread.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)