You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@ignite.apache.org by "Andrey Kuznetsov (JIRA)" <ji...@apache.org> on 2017/09/26 09:00:19 UTC

[jira] [Comment Edited] (IGNITE-6015) Test fail in Ignite Cache 2: GridCachePartitionedGetAndTransformStoreSelfTest.testGetAndTransform

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

Andrey Kuznetsov edited comment on IGNITE-6015 at 9/26/17 9:00 AM:
-------------------------------------------------------------------

I have some data related to bug reason.

Sometimes during this test transactions may fail with 'Missing commit version' error. In most cases it does not prevent the test from successful completion, since transaction is being rolled back  after error occurs. This happens under the following call stack:

class org.apache.ignite.IgniteCheckedException: Missing commit version (consider increasing IGNITE_MAX_COMPLETED_TX_COUNT system property) [ver=GridCacheVersion [topVer=117822884, order=1506342887333, nodeOrder=4], committed0=false, tx=GridNearTxRemote]
	at org.apache.ignite.internal.processors.cache.transactions.IgniteTxManager.commitTx(IgniteTxManager.java:1196)
	at org.apache.ignite.internal.processors.cache.distributed.GridDistributedTxRemoteAdapter.commitIfLocked(GridDistributedTxRemoteAdapter.java:769)
	at org.apache.ignite.internal.processors.cache.distributed.GridDistributedTxRemoteAdapter.commitRemoteTx(GridDistributedTxRemoteAdapter.java:799)
	at org.apache.ignite.internal.processors.cache.transactions.IgniteTxHandler.finish(IgniteTxHandler.java:1317)
	at org.apache.ignite.internal.processors.cache.transactions.IgniteTxHandler.processDhtTxFinishRequest(IgniteTxHandler.java:1232)
	at org.apache.ignite.internal.processors.cache.transactions.IgniteTxHandler.access$600(IgniteTxHandler.java:97)
	at org.apache.ignite.internal.processors.cache.transactions.IgniteTxHandler$7.apply(IgniteTxHandler.java:213)
	at org.apache.ignite.internal.processors.cache.transactions.IgniteTxHandler$7.apply(IgniteTxHandler.java:211)
	at org.apache.ignite.internal.processors.cache.GridCacheIoManager.processMessage(GridCacheIoManager.java:1060)
	at org.apache.ignite.internal.processors.cache.GridCacheIoManager.onMessage0(GridCacheIoManager.java:579)
	at org.apache.ignite.internal.processors.cache.GridCacheIoManager.handleMessage(GridCacheIoManager.java:378)
	at org.apache.ignite.internal.processors.cache.GridCacheIoManager.handleMessage(GridCacheIoManager.java:304)
	at org.apache.ignite.internal.processors.cache.GridCacheIoManager.access$100(GridCacheIoManager.java:99)
	at org.apache.ignite.internal.processors.cache.GridCacheIoManager$1.onMessage(GridCacheIoManager.java:293)
	at org.apache.ignite.internal.managers.communication.GridIoManager.invokeListener(GridIoManager.java:1555)
	at org.apache.ignite.internal.managers.communication.GridIoManager.processRegularMessage0(GridIoManager.java:1183)
	at org.apache.ignite.internal.managers.communication.GridIoManager.access$4200(GridIoManager.java:126)
	at org.apache.ignite.internal.managers.communication.GridIoManager$9.run(GridIoManager.java:1090)
	at org.apache.ignite.internal.util.StripedExecutor$Stripe.run(StripedExecutor.java:505)
	at java.lang.Thread.run(Thread.java:748)

But sometimes (less frequently) we have another call stack: 

class org.apache.ignite.IgniteCheckedException: Missing commit version (consider increasing IGNITE_MAX_COMPLETED_TX_COUNT system property) [ver=GridCacheVersion [topVer=117822884, order=1506342887353, nodeOrder=4], committed0=false, tx=GridNearTxRemote]
	at org.apache.ignite.internal.processors.cache.transactions.IgniteTxManager.commitTx(IgniteTxManager.java:1196)
	at org.apache.ignite.internal.processors.cache.distributed.GridDistributedTxRemoteAdapter.commitIfLocked(GridDistributedTxRemoteAdapter.java:769)
	at org.apache.ignite.internal.processors.cache.distributed.GridDistributedTxRemoteAdapter.onOwnerChanged(GridDistributedTxRemoteAdapter.java:329)
	at org.apache.ignite.internal.processors.cache.transactions.IgniteTxManager.onOwnerChanged(IgniteTxManager.java:1490)
	at org.apache.ignite.internal.processors.cache.GridCacheMvccManager.notifyOwnerChanged(GridCacheMvccManager.java:238)
	at org.apache.ignite.internal.processors.cache.GridCacheMvccManager.access$200(GridCacheMvccManager.java:80)
	at org.apache.ignite.internal.processors.cache.GridCacheMvccManager$3.onOwnerChanged(GridCacheMvccManager.java:163)
	at org.apache.ignite.internal.processors.cache.GridCacheMapEntry.checkOwnerChanged(GridCacheMapEntry.java:3681)
	at org.apache.ignite.internal.processors.cache.distributed.GridDistributedCacheEntry.removeLock(GridDistributedCacheEntry.java:400)
	at org.apache.ignite.internal.processors.cache.distributed.GridDistributedCacheEntry.txUnlock(GridDistributedCacheEntry.java:665)
	at org.apache.ignite.internal.processors.cache.transactions.IgniteTxManager.unlockMultiple(IgniteTxManager.java:1662)
	at org.apache.ignite.internal.processors.cache.transactions.IgniteTxManager.uncommitTx(IgniteTxManager.java:1388)
	at org.apache.ignite.internal.processors.cache.transactions.IgniteTxManager.commitTx(IgniteTxManager.java:1189)
	at org.apache.ignite.internal.processors.cache.distributed.GridDistributedTxRemoteAdapter.commitIfLocked(GridDistributedTxRemoteAdapter.java:769)
	at org.apache.ignite.internal.processors.cache.distributed.GridDistributedTxRemoteAdapter.commitRemoteTx(GridDistributedTxRemoteAdapter.java:799)
	at org.apache.ignite.internal.processors.cache.transactions.IgniteTxHandler.finish(IgniteTxHandler.java:1317)
	at org.apache.ignite.internal.processors.cache.transactions.IgniteTxHandler.processDhtTxFinishRequest(IgniteTxHandler.java:1232)
	at org.apache.ignite.internal.processors.cache.transactions.IgniteTxHandler.access$600(IgniteTxHandler.java:97)
	at org.apache.ignite.internal.processors.cache.transactions.IgniteTxHandler$7.apply(IgniteTxHandler.java:213)
	at org.apache.ignite.internal.processors.cache.transactions.IgniteTxHandler$7.apply(IgniteTxHandler.java:211)
	at org.apache.ignite.internal.processors.cache.GridCacheIoManager.processMessage(GridCacheIoManager.java:1060)
	at org.apache.ignite.internal.processors.cache.GridCacheIoManager.onMessage0(GridCacheIoManager.java:579)
	at org.apache.ignite.internal.processors.cache.GridCacheIoManager.handleMessage(GridCacheIoManager.java:378)
	at org.apache.ignite.internal.processors.cache.GridCacheIoManager.handleMessage(GridCacheIoManager.java:304)
	at org.apache.ignite.internal.processors.cache.GridCacheIoManager.access$100(GridCacheIoManager.java:99)
	at org.apache.ignite.internal.processors.cache.GridCacheIoManager$1.onMessage(GridCacheIoManager.java:293)
	at org.apache.ignite.internal.managers.communication.GridIoManager.invokeListener(GridIoManager.java:1555)
	at org.apache.ignite.internal.managers.communication.GridIoManager.processRegularMessage0(GridIoManager.java:1183)
	at org.apache.ignite.internal.managers.communication.GridIoManager.access$4200(GridIoManager.java:126)
	at org.apache.ignite.internal.managers.communication.GridIoManager$9.run(GridIoManager.java:1090)
	at org.apache.ignite.internal.util.StripedExecutor$Stripe.run(StripedExecutor.java:505)
	at java.lang.Thread.run(Thread.java:748)

In this case information about the exception thrown is ignored, transaction remains in non-final MARKED_ROLLBACK state, listening future is never notified, as well as the chain of dependent futures, get() for last of them blocks test method forever.


was (Author: andrey-kuznetsov):
I have some data related to bug reason.

Sometimes during this test transactions may fail with 'Missing commit version' error. In most cases it does not prevent the test from successful completion, since transaction is being rolling back  after error occurs. This happens under the following call stack:

class org.apache.ignite.IgniteCheckedException: Missing commit version (consider increasing IGNITE_MAX_COMPLETED_TX_COUNT system property) [ver=GridCacheVersion [topVer=117822884, order=1506342887333, nodeOrder=4], committed0=false, tx=GridNearTxRemote]
	at org.apache.ignite.internal.processors.cache.transactions.IgniteTxManager.commitTx(IgniteTxManager.java:1196)
	at org.apache.ignite.internal.processors.cache.distributed.GridDistributedTxRemoteAdapter.commitIfLocked(GridDistributedTxRemoteAdapter.java:769)
	at org.apache.ignite.internal.processors.cache.distributed.GridDistributedTxRemoteAdapter.commitRemoteTx(GridDistributedTxRemoteAdapter.java:799)
	at org.apache.ignite.internal.processors.cache.transactions.IgniteTxHandler.finish(IgniteTxHandler.java:1317)
	at org.apache.ignite.internal.processors.cache.transactions.IgniteTxHandler.processDhtTxFinishRequest(IgniteTxHandler.java:1232)
	at org.apache.ignite.internal.processors.cache.transactions.IgniteTxHandler.access$600(IgniteTxHandler.java:97)
	at org.apache.ignite.internal.processors.cache.transactions.IgniteTxHandler$7.apply(IgniteTxHandler.java:213)
	at org.apache.ignite.internal.processors.cache.transactions.IgniteTxHandler$7.apply(IgniteTxHandler.java:211)
	at org.apache.ignite.internal.processors.cache.GridCacheIoManager.processMessage(GridCacheIoManager.java:1060)
	at org.apache.ignite.internal.processors.cache.GridCacheIoManager.onMessage0(GridCacheIoManager.java:579)
	at org.apache.ignite.internal.processors.cache.GridCacheIoManager.handleMessage(GridCacheIoManager.java:378)
	at org.apache.ignite.internal.processors.cache.GridCacheIoManager.handleMessage(GridCacheIoManager.java:304)
	at org.apache.ignite.internal.processors.cache.GridCacheIoManager.access$100(GridCacheIoManager.java:99)
	at org.apache.ignite.internal.processors.cache.GridCacheIoManager$1.onMessage(GridCacheIoManager.java:293)
	at org.apache.ignite.internal.managers.communication.GridIoManager.invokeListener(GridIoManager.java:1555)
	at org.apache.ignite.internal.managers.communication.GridIoManager.processRegularMessage0(GridIoManager.java:1183)
	at org.apache.ignite.internal.managers.communication.GridIoManager.access$4200(GridIoManager.java:126)
	at org.apache.ignite.internal.managers.communication.GridIoManager$9.run(GridIoManager.java:1090)
	at org.apache.ignite.internal.util.StripedExecutor$Stripe.run(StripedExecutor.java:505)
	at java.lang.Thread.run(Thread.java:748)

But sometimes (less frequently) we have another call stack: 

class org.apache.ignite.IgniteCheckedException: Missing commit version (consider increasing IGNITE_MAX_COMPLETED_TX_COUNT system property) [ver=GridCacheVersion [topVer=117822884, order=1506342887353, nodeOrder=4], committed0=false, tx=GridNearTxRemote]
	at org.apache.ignite.internal.processors.cache.transactions.IgniteTxManager.commitTx(IgniteTxManager.java:1196)
	at org.apache.ignite.internal.processors.cache.distributed.GridDistributedTxRemoteAdapter.commitIfLocked(GridDistributedTxRemoteAdapter.java:769)
	at org.apache.ignite.internal.processors.cache.distributed.GridDistributedTxRemoteAdapter.onOwnerChanged(GridDistributedTxRemoteAdapter.java:329)
	at org.apache.ignite.internal.processors.cache.transactions.IgniteTxManager.onOwnerChanged(IgniteTxManager.java:1490)
	at org.apache.ignite.internal.processors.cache.GridCacheMvccManager.notifyOwnerChanged(GridCacheMvccManager.java:238)
	at org.apache.ignite.internal.processors.cache.GridCacheMvccManager.access$200(GridCacheMvccManager.java:80)
	at org.apache.ignite.internal.processors.cache.GridCacheMvccManager$3.onOwnerChanged(GridCacheMvccManager.java:163)
	at org.apache.ignite.internal.processors.cache.GridCacheMapEntry.checkOwnerChanged(GridCacheMapEntry.java:3681)
	at org.apache.ignite.internal.processors.cache.distributed.GridDistributedCacheEntry.removeLock(GridDistributedCacheEntry.java:400)
	at org.apache.ignite.internal.processors.cache.distributed.GridDistributedCacheEntry.txUnlock(GridDistributedCacheEntry.java:665)
	at org.apache.ignite.internal.processors.cache.transactions.IgniteTxManager.unlockMultiple(IgniteTxManager.java:1662)
	at org.apache.ignite.internal.processors.cache.transactions.IgniteTxManager.uncommitTx(IgniteTxManager.java:1388)
	at org.apache.ignite.internal.processors.cache.transactions.IgniteTxManager.commitTx(IgniteTxManager.java:1189)
	at org.apache.ignite.internal.processors.cache.distributed.GridDistributedTxRemoteAdapter.commitIfLocked(GridDistributedTxRemoteAdapter.java:769)
	at org.apache.ignite.internal.processors.cache.distributed.GridDistributedTxRemoteAdapter.commitRemoteTx(GridDistributedTxRemoteAdapter.java:799)
	at org.apache.ignite.internal.processors.cache.transactions.IgniteTxHandler.finish(IgniteTxHandler.java:1317)
	at org.apache.ignite.internal.processors.cache.transactions.IgniteTxHandler.processDhtTxFinishRequest(IgniteTxHandler.java:1232)
	at org.apache.ignite.internal.processors.cache.transactions.IgniteTxHandler.access$600(IgniteTxHandler.java:97)
	at org.apache.ignite.internal.processors.cache.transactions.IgniteTxHandler$7.apply(IgniteTxHandler.java:213)
	at org.apache.ignite.internal.processors.cache.transactions.IgniteTxHandler$7.apply(IgniteTxHandler.java:211)
	at org.apache.ignite.internal.processors.cache.GridCacheIoManager.processMessage(GridCacheIoManager.java:1060)
	at org.apache.ignite.internal.processors.cache.GridCacheIoManager.onMessage0(GridCacheIoManager.java:579)
	at org.apache.ignite.internal.processors.cache.GridCacheIoManager.handleMessage(GridCacheIoManager.java:378)
	at org.apache.ignite.internal.processors.cache.GridCacheIoManager.handleMessage(GridCacheIoManager.java:304)
	at org.apache.ignite.internal.processors.cache.GridCacheIoManager.access$100(GridCacheIoManager.java:99)
	at org.apache.ignite.internal.processors.cache.GridCacheIoManager$1.onMessage(GridCacheIoManager.java:293)
	at org.apache.ignite.internal.managers.communication.GridIoManager.invokeListener(GridIoManager.java:1555)
	at org.apache.ignite.internal.managers.communication.GridIoManager.processRegularMessage0(GridIoManager.java:1183)
	at org.apache.ignite.internal.managers.communication.GridIoManager.access$4200(GridIoManager.java:126)
	at org.apache.ignite.internal.managers.communication.GridIoManager$9.run(GridIoManager.java:1090)
	at org.apache.ignite.internal.util.StripedExecutor$Stripe.run(StripedExecutor.java:505)
	at java.lang.Thread.run(Thread.java:748)

In this case information about the exception thrown is ignored, transaction remains in non-final MARKED_ROLLBACK state, listening future is never notified, as well as the chain of dependent futures, get() for last of them blocks test method forever.

> Test fail in Ignite Cache 2: GridCachePartitionedGetAndTransformStoreSelfTest.testGetAndTransform 
> --------------------------------------------------------------------------------------------------
>
>                 Key: IGNITE-6015
>                 URL: https://issues.apache.org/jira/browse/IGNITE-6015
>             Project: Ignite
>          Issue Type: Test
>    Affects Versions: 2.1
>            Reporter: Dmitriy Govorukhin
>            Assignee: Andrey Kuznetsov
>              Labels: MakeTeamcityGreenAgain
>             Fix For: 2.3
>
>
> {code}
> java.util.concurrent.TimeoutException: Test has been timed out [test=testGetAndTransform, timeout=300000]
>     at org.apache.ignite.testframework.junits.GridAbstractTest.runTest(GridAbstractTest.java:1949)
>     at junit.framework.TestCase.runBare(TestCase.java:141)
>     at junit.framework.TestResult$1.protect(TestResult.java:122)
>     at junit.framework.TestResult.runProtected(TestResult.java:142)
>     at junit.framework.TestResult.run(TestResult.java:125)
>     at junit.framework.TestCase.run(TestCase.java:129)
>     at junit.framework.TestSuite.runTest(TestSuite.java:255)
>     at junit.framework.TestSuite.run(TestSuite.java:250)
>     at junit.framework.TestSuite.runTest(TestSuite.java:255)
>     at junit.framework.TestSuite.run(TestSuite.java:250)
>     at org.junit.internal.runners.JUnit38ClassRunner.run(JUnit38ClassRunner.java:84)
>     at org.apache.maven.surefire.junit4.JUnit4Provider.execute(JUnit4Provider.java:264)
>     at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:153)
>     at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:124)
>     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
>     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>     at java.lang.reflect.Method.invoke(Method.java:606)
>     at org.apache.maven.surefire.util.ReflectionUtils.invokeMethodWithArray2(ReflectionUtils.java:208)
>     at org.apache.maven.surefire.booter.ProviderFactory$ProviderProxy.invoke(ProviderFactory.java:156)
>     at org.apache.maven.surefire.booter.ProviderFactory.invokeProvider(ProviderFactory.java:82)
>     at org.apache.maven.plugin.surefire.InPluginVMSurefireStarter.runSuitesInProcess(InPluginVMSurefireStarter.java:82)
>     at org.apache.maven.plugin.surefire.AbstractSurefireMojo.executeProvider(AbstractSurefireMojo.java:951)
>     at org.apache.maven.plugin.surefire.AbstractSurefireMojo.executeAfterPreconditionsChecked(AbstractSurefireMojo.java:831)
>     at org.apache.maven.plugin.surefire.AbstractSurefireMojo.execute(AbstractSurefireMojo.java:729)
>     at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:101)
>     at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:209)
>     at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153)
>     at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145)
>     at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:84)
>     at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:59)
>     at org.apache.maven.lifecycle.internal.LifecycleStarter.singleThreadedBuild(LifecycleStarter.java:183)
>     at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:161)
>     at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:320)
>     at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:156)
>     at org.apache.maven.cli.MavenCli.execute(MavenCli.java:537)
>     at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:196)
>     at org.apache.maven.cli.MavenCli.main(MavenCli.java:141)
>     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
>     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>     at java.lang.reflect.Method.invoke(Method.java:606)
>     at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:290)
>     at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:230)
>     at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:409)
>     at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:3
> {code}



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)