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

An IllegalArgumentException can be thrown during TXState cleanup() before resources are released

    XMLWordPrintableJSON

Details

    Description

      DLock the transaction holds will be released in the cleanup() call, before releaseing the offheap resources it held. 
      
      The following exception could be thrown and cause the cleanup() call failed before releasing offheap resources.
      
      [info 2016/07/05 12:20:08.643 PDT gemfire3_w2-2013-lin-03_19481 <Pooled Waiting Message Processor 0> tid=0x32] java.lang.IllegalArgumentException: Invalid txLockId not found:  TXLockId: w2-2013-lin-03(gemfire3_w2-2013-lin-03_19481:19481)<ec><v1>:1025-0
              at com.gemstone.gemfire.internal.cache.locks.TXLockServiceImpl.release(TXLockServiceImpl.java:241)
              at com.gemstone.gemfire.internal.cache.TXLockRequest.releaseDistributed(TXLockRequest.java:107)
              at com.gemstone.gemfire.internal.cache.TXLockRequest.cleanup(TXLockRequest.java:139)
              at com.gemstone.gemfire.internal.cache.TXState.cleanup(TXState.java:817)
              at com.gemstone.gemfire.internal.cache.TXState.commit(TXState.java:487)
              at com.gemstone.gemfire.internal.cache.TXStateProxyImpl.commit(TXStateProxyImpl.java:248)
              at com.gemstone.gemfire.internal.cache.TXManagerImpl.commit(TXManagerImpl.java:354)
              at com.gemstone.gemfire.internal.cache.TXRemoteCommitMessage.operateOnTx(TXRemoteCommitMessage.java:106)
              at com.gemstone.gemfire.internal.cache.TXMessage.process(TXMessage.java:89)
              at com.gemstone.gemfire.distributed.internal.DistributionMessage.scheduleAction(DistributionMessage.java:379)
              at com.gemstone.gemfire.distributed.internal.DistributionMessage$1.run(DistributionMessage.java:450)
              at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
              at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
              at com.gemstone.gemfire.distributed.internal.DistributionManager.runUntilShutdown(DistributionManager.java:611)
              at com.gemstone.gemfire.distributed.internal.DistributionManager$6$1.run(DistributionManager.java:951)
              at java.lang.Thread.run(Thread.java:745)
      
      *** The exception thrown is because the TXLockServices were destroyed during cahce.close() ***
      *** And the newly created TXLockServices does not hold the DLock for the created by the transaction ***
      
      
      

      Attachments

        Activity

          People

            eshu Eric Shu
            eshu Eric Shu
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: