[ https://issues.apache.org/jira/browse/IGNITE-12033?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Pavel Tupitsyn updated IGNITE-12033: ------------------------------------ Comment: was deleted (was: {panel:title=Branch: [pull/8870/head] Base: [master] : Possible Blockers (14)|borderStyle=dashed|borderColor=#ccc|titleBGColor=#F7D6C1} {color:#d04437}Control Utility{color} [[tests 0 TIMEOUT |https://ci.ignite.apache.org/viewLog.html?buildId=5929811]] {color:#d04437}Cache 6{color} [[tests 0 TIMEOUT , Exit Code |https://ci.ignite.apache.org/viewLog.html?buildId=5929778]] {color:#d04437}Basic 1{color} [[tests 1|https://ci.ignite.apache.org/viewLog.html?buildId=5929757]] * IgniteBasicTestSuite: StopNodeOrHaltFailureHandlerTest.testJvmHalted - Test has low fail rate in base branch 0,0% and is not flaky {color:#d04437}JDBC Driver{color} [[tests 2|https://ci.ignite.apache.org/viewLog.html?buildId=5929740]] * IgniteJdbcDriverTestSuite: JdbcThinJdbcToCacheDataTypesCoverageTest.testBigIntDataType[atomicityMode=ATOMIC, cacheMode=PARTITIONED, ttlFactory=EternalExpiryPolicy, backups=2, evictionFactory=null, onheapCacheEnabled=false, writeSyncMode=FULL_SYNC, persistenceEnabled=false] - Test has low fail rate in base branch 0,0% and is not flaky * IgniteJdbcDriverTestSuite: JdbcThinJdbcToCacheDataTypesCoverageTest.testCharDataType[atomicityMode=ATOMIC, cacheMode=PARTITIONED, ttlFactory=null, backups=1, evictionFactory=null, onheapCacheEnabled=false, writeSyncMode=FULL_SYNC, persistenceEnabled=false] - Test has low fail rate in base branch 0,0% and is not flaky {color:#d04437}PDS (Indexing){color} [[tests 0 Exit Code |https://ci.ignite.apache.org/viewLog.html?buildId=5929786]] {color:#d04437}Platform .NET (Core Linux){color} [[tests 4 TC_SERVICE_MESSAGE |https://ci.ignite.apache.org/viewLog.html?buildId=5929793]] * dll: CacheTestAsyncAwait.TestAsyncAwaitContinuationIsExecutedWithConfiguredExecutor - History for base branch is absent. * dll: CachePartitionedNearEnabledTest.TestCacheConfigurationExpiryPolicy - Test has low fail rate in base branch 0,0% and is not flaky * dll: CancellationTest.TestClosures - Test has low fail rate in base branch 0,8% and is not flaky * dll: ComputeApiTestFullFooter.TestAffinityRun - Test has low fail rate in base branch 1,7% and is not flaky {color:#d04437}Web Sessions{color} [[tests 0 TIMEOUT , Exit Code |https://ci.ignite.apache.org/viewLog.html?buildId=5929749]] {color:#d04437}Platform .NET{color} [[tests 2|https://ci.ignite.apache.org/viewLog.html?buildId=5929792]] * exe: CancellationTest.TestClosures - Test has low fail rate in base branch 0,0% and is not flaky * exe: ComputeApiTest.TestRunActionAsyncCancel - Test has low fail rate in base branch 0,0% and is not flaky {color:#d04437}PDS 1{color} [[tests 1|https://ci.ignite.apache.org/viewLog.html?buildId=5929788]] * IgnitePdsTestSuite: DistributedConfigurationPersistentTest.testReadLocalValueOnInactiveGrid - Test has low fail rate in base branch 0,0% and is not flaky {panel} {panel:title=Branch: [pull/8870/head] Base: [master] : New Tests (11)|borderStyle=dashed|borderColor=#ccc|titleBGColor=#F7D6C1} {color:#00008b}Cache 1{color} [[tests 4|https://ci.ignite.apache.org/viewLog.html?buildId=5929773]] * {color:#013220}IgniteBinaryCacheTestSuite: CacheAsyncContinuationExecutorTest.testRemoteOperationContinuesOnDefaultExecutor - PASSED{color} * {color:#013220}IgniteBinaryCacheTestSuite: CacheAsyncContinuationSynchronousExecutorTest.testLocalOperationExecutesSynchronously - PASSED{color} * {color:#013220}IgniteBinaryCacheTestSuite: CacheAsyncContinuationExecutorTest.testLocalOperationExecutesSynchronously - PASSED{color} * {color:#013220}IgniteBinaryCacheTestSuite: CacheAsyncContinuationSynchronousExecutorTest.testRemoteOperationContinuesOnDefaultExecutor - PASSED{color} {color:#00008b}Platform .NET (Core Linux){color} [[tests 7|https://ci.ignite.apache.org/viewLog.html?buildId=5929793]] * {color:#013220}dll: ComputeTestAsyncAwait.TestComputeExecuteAsyncContinuation - PASSED{color} * {color:#013220}dll: ComputeTestAsyncAwait.TestComputeRunAsyncContinuation - PASSED{color} * {color:#013220}dll: CacheTestAsyncAwait.TestSynchronousExecutorRunsContinuationsOnStripedPool - PASSED{color} * {color:#013220}dll: ComputeTestAsyncAwait.TestComputeAffinityRunAsyncContinuation - PASSED{color} * {color:#013220}dll: CacheTestAsyncAwait.TestInvalidExecutorConfigurationFailsOnStart - PASSED{color} * {color:#013220}dll: CacheTestAsyncAwait.TestLocalOperationExecutesSynchronously - PASSED{color} * {color:#8b0000}dll: CacheTestAsyncAwait.TestAsyncAwaitContinuationIsExecutedWithConfiguredExecutor - FAILED{color} {panel} [TeamCity *--> Run :: All* Results|https://ci.ignite.apache.org/viewLog.html?buildId=5929819&buildTypeId=IgniteTests24Java8_RunAll]) > Callbacks from striped pool due to async/await may hang cluster > --------------------------------------------------------------- > > Key: IGNITE-12033 > URL: https://issues.apache.org/jira/browse/IGNITE-12033 > Project: Ignite > Issue Type: Bug > Components: cache, platforms > Affects Versions: 2.7.5 > Reporter: Ilya Kasnacheev > Assignee: Pavel Tupitsyn > Priority: Critical > Labels: iep-70 > Fix For: 2.11 > > Time Spent: 50m > Remaining Estimate: 0h > > Discussed on dev-list: > http://apache-ignite-developers.2346864.n4.nabble.com/Re-EXTERNAL-Re-Replace-or-Put-after-PutAsync-causes-Ignite-to-hang-td42921.html > *Must use the public pool for callbacks as the most obvious step.* > ---- > http://apache-ignite-users.70518.x6.nabble.com/Replace-or-Put-after-PutAsync-causes-Ignite-to-hang-td27871.html#a28051 > There's a reproducer project. Long story short, .Net can invoke cache > operations with future callbacks, which will be invoked from striped pool. If > such callbacks are to use cache operations, those will be possibly sheduled > to the same stripe and cause a deadlock. > The code is very simple: > {code} > Console.WriteLine("PutAsync"); > await cache.PutAsync(1, "Test"); > Console.WriteLine("Replace"); > cache.Replace(1, "Testing"); // Hangs here > Console.WriteLine("Wait"); > await Task.Delay(Timeout.Infinite); > {code} > async/await should absolutely not allow any client code to be run from > stripes. -- This message was sent by Atlassian Jira (v8.3.4#803005)