Uploaded image for project: 'Geode'
  1. Geode
  2. GEODE-6955

Client transaction commits failed with NPE in detectReadConflicts

    XMLWordPrintableJSON

    Details

    • Type: Bug
    • Status: Resolved
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: 1.1.0
    • Fix Version/s: 1.10.0
    • Component/s: transactions
    • Labels:

      Description

      This is shown when I add a dunit test for changes in detectReadConflicts implementation.
      It occurs when client registers interest and a key is read locked. The issue is that a read locked key op in transaction is null.

      [vm0] [info 2019/07/10 14:21:05.412 PDT <ServerConnection on port 54479 Thread 1> tid=0x51] event is TXEntryState$TxEntryEventImpl[op=null;region=/TempdunitTest_readTransactionCanBlockWriteTransaction_region;key=1;callbackArg=null;originRemote=true;originMember=10.118.20.78(7291)<v1>:41001]

      [vm0] [info 2019/07/10 14:21:05.412 PDT <ServerConnection on port 54479 Thread 1> tid=0x51] event.getOperation is null

      [vm2] [info 2019/07/10 14:21:05.428 PDT <RMI TCP Connection(1)-127.0.0.1> tid=0x13] Got result: EXCEPTION_OCCURRED
      [vm2] org.apache.geode.cache.client.ServerOperationException: remote server on 10.118.20.78(7293:loner):54498:f4dcc2dd: While performing a remote commit
      [vm2] at org.apache.geode.cache.client.internal.AbstractOp.processObjResponse(AbstractOp.java:286)
      [vm2] at org.apache.geode.cache.client.internal.CommitOp$CommitOpImpl.processResponse(CommitOp.java:68)
      [vm2] at org.apache.geode.cache.client.internal.AbstractOp.processResponse(AbstractOp.java:222)
      [vm2] at org.apache.geode.cache.client.internal.AbstractOp.attemptReadResponse(AbstractOp.java:207)
      [vm2] at org.apache.geode.cache.client.internal.AbstractOp.attempt(AbstractOp.java:382)
      [vm2] at org.apache.geode.cache.client.internal.ConnectionImpl.execute(ConnectionImpl.java:263)
      [vm2] at org.apache.geode.cache.client.internal.pooling.PooledConnection.execute(PooledConnection.java:353)
      [vm2] at org.apache.geode.cache.client.internal.OpExecutorImpl.executeWithPossibleReAuthentication(OpExecutorImpl.java:750)
      [vm2] at org.apache.geode.cache.client.internal.OpExecutorImpl.executeOnServer(OpExecutorImpl.java:329)
      [vm2] at org.apache.geode.cache.client.internal.OpExecutorImpl.executeWithServerAffinity(OpExecutorImpl.java:183)
      [vm2] at org.apache.geode.cache.client.internal.OpExecutorImpl.execute(OpExecutorImpl.java:122)
      [vm2] at org.apache.geode.cache.client.internal.OpExecutorImpl.execute(OpExecutorImpl.java:108)
      [vm2] at org.apache.geode.cache.client.internal.PoolImpl.execute(PoolImpl.java:770)
      [vm2] at org.apache.geode.cache.client.internal.CommitOp.execute(CommitOp.java:34)
      [vm2] at org.apache.geode.cache.client.internal.ServerRegionProxy.commit(ServerRegionProxy.java:246)
      [vm2] at org.apache.geode.internal.cache.tx.ClientTXStateStub.commit(ClientTXStateStub.java:115)
      [vm2] at org.apache.geode.internal.cache.TXStateProxyImpl.commit(TXStateProxyImpl.java:211)
      [vm2] at org.apache.geode.internal.cache.TXManagerImpl.commit(TXManagerImpl.java:426)
      [vm2] at org.apache.geode.internal.cache.TempdunitTest.commitReadTransaction(TempdunitTest.java:221)
      [vm2] at org.apache.geode.internal.cache.TempdunitTest.lambda$readTransactionCanBlockWriteTransaction$632092bf$1(TempdunitTest.java:105)
      [vm2] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      [vm2] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
      [vm2] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
      [vm2] at java.lang.reflect.Method.invoke(Method.java:498)
      [vm2] at org.apache.geode.test.dunit.internal.MethodInvoker.executeObject(MethodInvoker.java:123)
      [vm2] at org.apache.geode.test.dunit.internal.RemoteDUnitVM.executeMethodOnObject(RemoteDUnitVM.java:69)
      [vm2] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      [vm2] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
      [vm2] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
      [vm2] at java.lang.reflect.Method.invoke(Method.java:498)
      [vm2] at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:357)
      [vm2] at sun.rmi.transport.Transport$1.run(Transport.java:200)
      [vm2] at sun.rmi.transport.Transport$1.run(Transport.java:197)
      [vm2] at java.security.AccessController.doPrivileged(Native Method)
      [vm2] at sun.rmi.transport.Transport.serviceCall(Transport.java:196)
      [vm2] at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:573)
      [vm2] at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:834)
      [vm2] at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.lambda$run$0(TCPTransport.java:688)
      [vm2] at java.security.AccessController.doPrivileged(Native Method)
      [vm2] at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:687)
      [vm2] at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
      [vm2] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
      [vm2] at java.lang.Thread.run(Thread.java:748)
      [vm2] Caused by: java.lang.NullPointerException
      [vm2] at org.apache.geode.internal.cache.FilterProfile.fillInInterestRoutingInfo(FilterProfile.java:1343)
      [vm2] at org.apache.geode.internal.cache.FilterProfile.getFilterRoutingInfoPart1(FilterProfile.java:1097)
      [vm2] at org.apache.geode.internal.cache.CacheDistributionAdvisor.adviseFilterRouting(CacheDistributionAdvisor.java:241)
      [vm2] at org.apache.geode.internal.cache.TXState.attachFilterProfileInformation(TXState.java:566)
      [vm2] at org.apache.geode.internal.cache.TXState.commit(TXState.java:480)
      [vm2] at org.apache.geode.internal.cache.TXStateProxyImpl.commit(TXStateProxyImpl.java:211)
      [vm2] at org.apache.geode.internal.cache.TXManagerImpl.commit(TXManagerImpl.java:426)
      [vm2] at org.apache.geode.internal.cache.tier.sockets.command.CommitCommand.commitTransaction(CommitCommand.java:97)
      [vm2] at org.apache.geode.internal.cache.tier.sockets.command.CommitCommand.cmdExecute(CommitCommand.java:85)
      [vm2] at org.apache.geode.internal.cache.tier.sockets.BaseCommand.execute(BaseCommand.java:177)
      [vm2] at org.apache.geode.internal.cache.tier.sockets.ServerConnection.doNormalMessage(ServerConnection.java:848)
      [vm2] at org.apache.geode.internal.cache.tier.sockets.OriginalServerConnection.doOneMessage(OriginalServerConnection.java:72)
      [vm2] at org.apache.geode.internal.cache.tier.sockets.ServerConnection.run(ServerConnection.java:1212)
      [vm2] at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
      [vm2] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
      [vm2] at org.apache.geode.internal.cache.tier.sockets.AcceptorImpl.lambda$initializeServerConnectionThreadPool$3(AcceptorImpl.java:665)
      [vm2] at org.apache.geode.internal.logging.LoggingThreadFactory.lambda$newThread$0(LoggingThreadFactory.java:121)
      [vm2] ... 1 more

        Attachments

          Issue Links

            Activity

              People

              • Assignee:
                eshu Eric Shu
                Reporter:
                eshu Eric Shu
              • Votes:
                0 Vote for this issue
                Watchers:
                2 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved:

                  Time Tracking

                  Estimated:
                  Original Estimate - Not Specified
                  Not Specified
                  Remaining:
                  Remaining Estimate - 0h
                  0h
                  Logged:
                  Time Spent - 20m
                  20m