[ 
https://issues.apache.org/jira/browse/GEODE-8862?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17291328#comment-17291328
 ] 

ASF GitHub Bot commented on GEODE-8862:
---------------------------------------

jchen21 commented on a change in pull request #6051:
URL: https://github.com/apache/geode/pull/6051#discussion_r583317242



##########
File path: 
geode-core/src/main/java/org/apache/geode/internal/cache/DistributedCacheOperation.java
##########
@@ -1107,6 +1107,10 @@ protected void process(final ClusterDistributionManager 
dm) {
 
         final LocalRegion lclRgn = getLocalRegionForProcessing(dm);
         sendReply = false;
+        if (lclRgn != null && lclRgn.getScope().isDistributedNoAck()) {
+          dm.getExecutors().getWaitingThreadPool().execute(() -> 
basicProcess(dm, lclRgn));

Review comment:
       Good point. For `basicProcess()`, if debug is not enabled, some 
exceptions are caught, but not logged, although some flags are set, when the 
exceptions are caught. Will the new thread fail silently with such exceptions, 
if debug is not enabled?
   And even for `process()`, logging the exceptions also depends on whether 
debug is enabled. I am not sure whether this is by design. If debug is not 
enabled, without the log message, it is hard to analyze the failures. 




----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
[email protected]


> DLockRecoverGrantorProcessor.recoverLockGrantor sometimes hangs
> ---------------------------------------------------------------
>
>                 Key: GEODE-8862
>                 URL: https://issues.apache.org/jira/browse/GEODE-8862
>             Project: Geode
>          Issue Type: Bug
>          Components: distributed lock service
>    Affects Versions: 1.14.0
>            Reporter: Eric Shu
>            Priority: Major
>              Labels: blocks-1.14.0​, pull-request-available
>
> "vm_9_thr_27_persist8_host1_29953" #1448 daemon prio=5 os_prio=0 cpu=45.99ms 
> elapsed=698.42s tid=0x00007f8d0c052800 nid=0x2ee8 waiting on condition  
> [0x00007f8c354f6000]
>    java.lang.Thread.State: TIMED_WAITING (parking)
>         at jdk.internal.misc.Unsafe.park([email protected]/Native Method)
>         - parking to wait for  <0x00000000fb7bb488> (a 
> java.util.concurrent.CountDownLatch$Sync)
>         at 
> java.util.concurrent.locks.LockSupport.parkNanos([email protected]/LockSupport.java:234)
>         at 
> java.util.concurrent.locks.AbstractQueuedSynchronizer.doAcquireSharedNanos([email protected]/AbstractQueuedSynchronizer.java:1079)
>         at 
> java.util.concurrent.locks.AbstractQueuedSynchronizer.tryAcquireSharedNanos([email protected]/AbstractQueuedSynchronizer.java:1369)
>         at 
> java.util.concurrent.CountDownLatch.await([email protected]/CountDownLatch.java:278)
>         at 
> org.apache.geode.internal.util.concurrent.StoppableCountDownLatch.await(StoppableCountDownLatch.java:72)
>         at 
> org.apache.geode.distributed.internal.ReplyProcessor21.basicWait(ReplyProcessor21.java:723)
>         at 
> org.apache.geode.distributed.internal.ReplyProcessor21.waitForRepliesUninterruptibly(ReplyProcessor21.java:794)
>         at 
> org.apache.geode.distributed.internal.ReplyProcessor21.waitForRepliesUninterruptibly(ReplyProcessor21.java:771)
>         at 
> org.apache.geode.distributed.internal.ReplyProcessor21.waitForRepliesUninterruptibly(ReplyProcessor21.java:857)
>         at 
> org.apache.geode.distributed.internal.locks.DLockRecoverGrantorProcessor.recoverLockGrantor(DLockRecoverGrantorProcessor.java:100)
>         at 
> org.apache.geode.distributed.internal.locks.DLockService.makeLocalGrantor(DLockService.java:447)
>         at 
> org.apache.geode.distributed.internal.locks.DLockService.createLocalGrantor(DLockService.java:392)
>         at 
> org.apache.geode.distributed.internal.locks.DLockService.getLockGrantorId(DLockService.java:337)
>         at 
> org.apache.geode.distributed.internal.locks.DLockService.lockInterruptibly(DLockService.java:1445)
>         at 
> org.apache.geode.distributed.internal.locks.DLockService.lock(DLockService.java:1241)
>         at 
> org.apache.geode.distributed.internal.locks.DLockService.lock(DLockService.java:1232)
>         at 
> org.apache.geode.distributed.internal.locks.DLockService.lock(DLockService.java:1227)
>         at 
> org.apache.geode.distributed.internal.locks.DLockService.lock(DLockService.java:1223)
>         at 
> org.apache.geode.pdx.internal.PeerTypeRegistration.lock(PeerTypeRegistration.java:314)
>         at 
> org.apache.geode.pdx.internal.PeerTypeRegistration.defineEnum(PeerTypeRegistration.java:646)
>         at 
> org.apache.geode.pdx.internal.PeerTypeRegistration.getEnumId(PeerTypeRegistration.java:601)
>         at 
> org.apache.geode.pdx.internal.TypeRegistry.getEnumId(TypeRegistry.java:363)
>         at 
> org.apache.geode.internal.InternalDataSerializer.writePdxEnum(InternalDataSerializer.java:2071)
>         at 
> org.apache.geode.internal.InternalDataSerializer.writeUserObject(InternalDataSerializer.java:1610)
>         at 
> org.apache.geode.internal.InternalDataSerializer.writeWellKnownObject(InternalDataSerializer.java:1517)
>         at 
> org.apache.geode.internal.InternalDataSerializer.basicWriteObject(InternalDataSerializer.java:2034)
>         at 
> org.apache.geode.pdx.internal.PdxOutputStream.writeObject(PdxOutputStream.java:72)
>         at 
> org.apache.geode.pdx.internal.PdxWriterImpl.writeObject(PdxWriterImpl.java:341)
>         at 
> org.apache.geode.pdx.internal.PdxWriterImpl.writeObject(PdxWriterImpl.java:330)
>         at util.VersionedValueHolder.myToData(VersionedValueHolder.java:227)
>         at 
> util.PdxVersionedValueHolder.toData(PdxVersionedValueHolder.java:84)
>         at 
> org.apache.geode.internal.InternalDataSerializer.writePdx(InternalDataSerializer.java:2794)
>         at 
> org.apache.geode.internal.InternalDataSerializer.basicWriteObject(InternalDataSerializer.java:2011)
>         at 
> org.apache.geode.DataSerializer.writeObject(DataSerializer.java:2839)
>         at 
> org.apache.geode.internal.util.BlobHelper.serializeToBlob(BlobHelper.java:54)
>         at 
> org.apache.geode.internal.cache.EntryEventImpl.serialize(EntryEventImpl.java:2092)
>         at 
> org.apache.geode.internal.cache.EntryEventImpl.serialize(EntryEventImpl.java:2078)
>         at 
> org.apache.geode.internal.cache.entries.DiskEntry$Helper.createValueWrapper(DiskEntry.java:768)
>         at 
> org.apache.geode.internal.cache.entries.DiskEntry$Helper.basicUpdate(DiskEntry.java:955)
>         at 
> org.apache.geode.internal.cache.entries.DiskEntry$Helper.update(DiskEntry.java:867)
>         - locked <0x00000000faaeb3d0> (a 
> org.apache.geode.internal.cache.DiskId$PersistenceWithIntOffset)
>         at 
> org.apache.geode.internal.cache.entries.AbstractDiskRegionEntry.setValue(AbstractDiskRegionEntry.java:40)
>         at 
> org.apache.geode.internal.cache.entries.AbstractRegionEntry.setValueWithTombstoneCheck(AbstractRegionEntry.java:290)
>         at 
> org.apache.geode.internal.cache.EntryEventImpl.setNewValueInRegion(EntryEventImpl.java:1767)
>         at 
> org.apache.geode.internal.cache.EntryEventImpl.putExistingEntry(EntryEventImpl.java:1640)
>         at 
> org.apache.geode.internal.cache.map.RegionMapPut.updateEntry(RegionMapPut.java:485)
>         at 
> org.apache.geode.internal.cache.map.RegionMapPut.createOrUpdateEntry(RegionMapPut.java:256)
>         at 
> org.apache.geode.internal.cache.map.AbstractRegionMapPut.doPutAndDeliverEvent(AbstractRegionMapPut.java:300)
>         at 
> org.apache.geode.internal.cache.map.AbstractRegionMapPut$$Lambda$420/0x0000000100a2b440.run(Unknown
>  Source)
>         at 
> org.apache.geode.internal.cache.map.AbstractRegionMapPut.runWithIndexUpdatingInProgress(AbstractRegionMapPut.java:308)
>         at 
> org.apache.geode.internal.cache.map.AbstractRegionMapPut.doPutIfPreconditionsSatisified(AbstractRegionMapPut.java:296)
>         at 
> org.apache.geode.internal.cache.map.AbstractRegionMapPut.doPutOnSynchronizedRegionEntry(AbstractRegionMapPut.java:282)
>         at 
> org.apache.geode.internal.cache.map.AbstractRegionMapPut.doPutOnRegionEntryInMap(AbstractRegionMapPut.java:273)
>         - locked <0x00000000faaeb388> (a 
> org.apache.geode.internal.cache.entries.VersionedThinDiskRegionEntryHeapStringKey2)
>         at 
> org.apache.geode.internal.cache.map.AbstractRegionMapPut.addRegionEntryToMapAndDoPut(AbstractRegionMapPut.java:251)
>         - locked <0x00000000faaeb388> (a 
> org.apache.geode.internal.cache.entries.VersionedThinDiskRegionEntryHeapStringKey2)
>         at 
> org.apache.geode.internal.cache.map.AbstractRegionMapPut.doPutRetryingIfNeeded(AbstractRegionMapPut.java:216)
>         at 
> org.apache.geode.internal.cache.map.AbstractRegionMapPut$$Lambda$419/0x0000000100a2b040.run(Unknown
>  Source)
>         at 
> org.apache.geode.internal.cache.map.AbstractRegionMapPut.doWithIndexInUpdateMode(AbstractRegionMapPut.java:198)
>         at 
> org.apache.geode.internal.cache.map.AbstractRegionMapPut.doPut(AbstractRegionMapPut.java:180)
>         at 
> org.apache.geode.internal.cache.map.AbstractRegionMapPut$$Lambda$418/0x0000000100a2ac40.run(Unknown
>  Source)
>         at 
> org.apache.geode.internal.cache.map.AbstractRegionMapPut.runWhileLockedForCacheModification(AbstractRegionMapPut.java:119)
>         at 
> org.apache.geode.internal.cache.map.RegionMapPut.runWhileLockedForCacheModification(RegionMapPut.java:161)
>         at 
> org.apache.geode.internal.cache.map.AbstractRegionMapPut.put(AbstractRegionMapPut.java:169)
>         at 
> org.apache.geode.internal.cache.AbstractRegionMap.basicPut(AbstractRegionMap.java:2036)
>         at 
> org.apache.geode.internal.cache.LocalRegion.virtualPut(LocalRegion.java:5600)
>         at 
> org.apache.geode.internal.cache.DistributedRegion.virtualPut(DistributedRegion.java:393)
>         at 
> org.apache.geode.internal.cache.LocalRegion.virtualPut(LocalRegion.java:5578)
>         at 
> org.apache.geode.internal.cache.LocalRegionDataView.putEntry(LocalRegionDataView.java:157)
>         at 
> org.apache.geode.internal.cache.LocalRegion.basicPut(LocalRegion.java:5036)
>         at 
> org.apache.geode.internal.cache.LocalRegion.validatedPut(LocalRegion.java:1635)
>         at 
> org.apache.geode.internal.cache.LocalRegion.put(LocalRegion.java:1622)
>         at diskRecovery.RecoveryTest.updateEntry(RecoveryTest.java:3341)
>         at diskRecovery.RecoveryTest.updateEntry(RecoveryTest.java:3318)
>         at diskRecovery.RecoveryTest.doOperations(RecoveryTest.java:2929)
>         at 
> diskRecovery.RecoveryTest.concRecoverLatestResponder(RecoveryTest.java:2640)
>         at 
> diskRecovery.RecoveryTest.HydraTask_concRecoverLatestResponder(RecoveryTest.java:500)
>         at 
> jdk.internal.reflect.NativeMethodAccessorImpl.invoke0([email protected]/Native 
> Method)
>         at 
> jdk.internal.reflect.NativeMethodAccessorImpl.invoke([email protected]/NativeMethodAccessorImpl.java:62)
>         at 
> jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke([email protected]/DelegatingMethodAccessorImpl.java:43)
>         at java.lang.reflect.Method.invoke([email protected]/Method.java:566)
>         at hydra.MethExecutor.execute(MethExecutor.java:173)
>         at hydra.MethExecutor.execute(MethExecutor.java:141)
>         at hydra.TestTask.execute(TestTask.java:197)
>         at hydra.RemoteTestModule$1.run(RemoteTestModule.java:213)



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

Reply via email to