[ 
https://issues.apache.org/jira/browse/IGNITE-23047?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Kirill Tkalenko updated IGNITE-23047:
-------------------------------------
    Description: 
*org.apache.ignite.internal.storage.util.MvPartitionStoragesTest#testWaitOperationOnGetAllForCloseOrDestroy*
 fails because the asynchronous partition creation code (on line 582) can 
execute after the call of 
*org.apache.ignite.internal.storage.util.MvPartitionStorages#getAllForCloseOrDestroy*
 (on line 615). In which, for partitions that are not created, we mark them as 
closed immediately.

We can fix it, for example, by waiting until the partition creation starts.

*StackTrace:*
{noformat}
java.lang.AssertionError: java.util.concurrent.ExecutionException: 
org.apache.ignite.internal.storage.StorageException: IGN-STORAGE-1 
TraceId:a3dd7fbe-45d0-489e-90e4-c7a6c64e692e Storage is in the process of 
closing: [tableId=0, partitionId=0]
        at 
org.apache.ignite.internal.testframework.matchers.CompletableFutureMatcher.matchesSafely(CompletableFutureMatcher.java:78)
        at 
org.apache.ignite.internal.testframework.matchers.CompletableFutureMatcher.matchesSafely(CompletableFutureMatcher.java:35)
        at org.hamcrest.TypeSafeMatcher.matches(TypeSafeMatcher.java:83)
        at org.hamcrest.MatcherAssert.assertThat(MatcherAssert.java:10)
        at org.hamcrest.MatcherAssert.assertThat(MatcherAssert.java:6)
        at 
org.apache.ignite.internal.storage.util.MvPartitionStoragesTest.testWaitOperationOnGetAllForCloseOrDestroy(MvPartitionStoragesTest.java:622)
        at java.base/java.lang.reflect.Method.invoke(Method.java:566)
        at java.base/java.util.ArrayList.forEach(ArrayList.java:1541)
        at java.base/java.util.ArrayList.forEach(ArrayList.java:1541)
Caused by: java.util.concurrent.ExecutionException: 
org.apache.ignite.internal.storage.StorageException: IGN-STORAGE-1 
TraceId:a3dd7fbe-45d0-489e-90e4-c7a6c64e692e Storage is in the process of 
closing: [tableId=0, partitionId=0]
        at 
java.base/java.util.concurrent.CompletableFuture.reportGet(CompletableFuture.java:395)
        at 
java.base/java.util.concurrent.CompletableFuture.get(CompletableFuture.java:2022)
        at 
org.apache.ignite.internal.testframework.matchers.CompletableFutureMatcher.matchesSafely(CompletableFutureMatcher.java:74)
        ... 8 more
Caused by: org.apache.ignite.internal.storage.StorageException: IGN-STORAGE-1 
TraceId:a3dd7fbe-45d0-489e-90e4-c7a6c64e692e Storage is in the process of 
closing: [tableId=0, partitionId=0]
        at 
app//org.apache.ignite.internal.storage.util.MvPartitionStorages.throwExceptionDependingOnOperation(MvPartitionStorages.java:404)
        at 
app//org.apache.ignite.internal.storage.util.MvPartitionStorages.lambda$create$0(MvPartitionStorages.java:110)
        at 
[email protected]/java.util.concurrent.ConcurrentHashMap.compute(ConcurrentHashMap.java:1932)
        at 
app//org.apache.ignite.internal.storage.util.MvPartitionStorages.create(MvPartitionStorages.java:94)
        at 
app//org.apache.ignite.internal.storage.util.MvPartitionStoragesTest.lambda$testWaitOperationOnGetAllForCloseOrDestroy$74(MvPartitionStoragesTest.java:582)
        at 
app//org.apache.ignite.internal.testframework.IgniteTestUtils.lambda$runAsync$1(IgniteTestUtils.java:504)
        at [email protected]/java.lang.Thread.run(Thread.java:834)

{noformat}


  was:
*org.apache.ignite.internal.storage.util.MvPartitionStoragesTest#testWaitOperationOnGetAllForCloseOrDestroy*
 fails because the asynchronous partition creation code (on line 582) can 
execute after the call of 
*org.apache.ignite.internal.storage.util.MvPartitionStorages#getAllForCloseOrDestroy*
 (on line 615). In which, for partitions that are not created, we mark them as 
closed immediately.

We can fix it, for example, by waiting until the partition creation starts.

StackTrace:
{noformat}
java.lang.AssertionError: java.util.concurrent.ExecutionException: 
org.apache.ignite.internal.storage.StorageException: IGN-STORAGE-1 
TraceId:a3dd7fbe-45d0-489e-90e4-c7a6c64e692e Storage is in the process of 
closing: [tableId=0, partitionId=0]
        at 
org.apache.ignite.internal.testframework.matchers.CompletableFutureMatcher.matchesSafely(CompletableFutureMatcher.java:78)
        at 
org.apache.ignite.internal.testframework.matchers.CompletableFutureMatcher.matchesSafely(CompletableFutureMatcher.java:35)
        at org.hamcrest.TypeSafeMatcher.matches(TypeSafeMatcher.java:83)
        at org.hamcrest.MatcherAssert.assertThat(MatcherAssert.java:10)
        at org.hamcrest.MatcherAssert.assertThat(MatcherAssert.java:6)
        at 
org.apache.ignite.internal.storage.util.MvPartitionStoragesTest.testWaitOperationOnGetAllForCloseOrDestroy(MvPartitionStoragesTest.java:622)
        at java.base/java.lang.reflect.Method.invoke(Method.java:566)
        at java.base/java.util.ArrayList.forEach(ArrayList.java:1541)
        at java.base/java.util.ArrayList.forEach(ArrayList.java:1541)
Caused by: java.util.concurrent.ExecutionException: 
org.apache.ignite.internal.storage.StorageException: IGN-STORAGE-1 
TraceId:a3dd7fbe-45d0-489e-90e4-c7a6c64e692e Storage is in the process of 
closing: [tableId=0, partitionId=0]
        at 
java.base/java.util.concurrent.CompletableFuture.reportGet(CompletableFuture.java:395)
        at 
java.base/java.util.concurrent.CompletableFuture.get(CompletableFuture.java:2022)
        at 
org.apache.ignite.internal.testframework.matchers.CompletableFutureMatcher.matchesSafely(CompletableFutureMatcher.java:74)
        ... 8 more
Caused by: org.apache.ignite.internal.storage.StorageException: IGN-STORAGE-1 
TraceId:a3dd7fbe-45d0-489e-90e4-c7a6c64e692e Storage is in the process of 
closing: [tableId=0, partitionId=0]
        at 
app//org.apache.ignite.internal.storage.util.MvPartitionStorages.throwExceptionDependingOnOperation(MvPartitionStorages.java:404)
        at 
app//org.apache.ignite.internal.storage.util.MvPartitionStorages.lambda$create$0(MvPartitionStorages.java:110)
        at 
[email protected]/java.util.concurrent.ConcurrentHashMap.compute(ConcurrentHashMap.java:1932)
        at 
app//org.apache.ignite.internal.storage.util.MvPartitionStorages.create(MvPartitionStorages.java:94)
        at 
app//org.apache.ignite.internal.storage.util.MvPartitionStoragesTest.lambda$testWaitOperationOnGetAllForCloseOrDestroy$74(MvPartitionStoragesTest.java:582)
        at 
app//org.apache.ignite.internal.testframework.IgniteTestUtils.lambda$runAsync$1(IgniteTestUtils.java:504)
        at [email protected]/java.lang.Thread.run(Thread.java:834)

{noformat}



> Fix flaky MvPartitionStoragesTest#testWaitOperationOnGetAllForCloseOrDestroy
> ----------------------------------------------------------------------------
>
>                 Key: IGNITE-23047
>                 URL: https://issues.apache.org/jira/browse/IGNITE-23047
>             Project: Ignite
>          Issue Type: Bug
>            Reporter: Kirill Tkalenko
>            Priority: Major
>              Labels: ignite-3
>
> *org.apache.ignite.internal.storage.util.MvPartitionStoragesTest#testWaitOperationOnGetAllForCloseOrDestroy*
>  fails because the asynchronous partition creation code (on line 582) can 
> execute after the call of 
> *org.apache.ignite.internal.storage.util.MvPartitionStorages#getAllForCloseOrDestroy*
>  (on line 615). In which, for partitions that are not created, we mark them 
> as closed immediately.
> We can fix it, for example, by waiting until the partition creation starts.
> *StackTrace:*
> {noformat}
> java.lang.AssertionError: java.util.concurrent.ExecutionException: 
> org.apache.ignite.internal.storage.StorageException: IGN-STORAGE-1 
> TraceId:a3dd7fbe-45d0-489e-90e4-c7a6c64e692e Storage is in the process of 
> closing: [tableId=0, partitionId=0]
>       at 
> org.apache.ignite.internal.testframework.matchers.CompletableFutureMatcher.matchesSafely(CompletableFutureMatcher.java:78)
>       at 
> org.apache.ignite.internal.testframework.matchers.CompletableFutureMatcher.matchesSafely(CompletableFutureMatcher.java:35)
>       at org.hamcrest.TypeSafeMatcher.matches(TypeSafeMatcher.java:83)
>       at org.hamcrest.MatcherAssert.assertThat(MatcherAssert.java:10)
>       at org.hamcrest.MatcherAssert.assertThat(MatcherAssert.java:6)
>       at 
> org.apache.ignite.internal.storage.util.MvPartitionStoragesTest.testWaitOperationOnGetAllForCloseOrDestroy(MvPartitionStoragesTest.java:622)
>       at java.base/java.lang.reflect.Method.invoke(Method.java:566)
>       at java.base/java.util.ArrayList.forEach(ArrayList.java:1541)
>       at java.base/java.util.ArrayList.forEach(ArrayList.java:1541)
> Caused by: java.util.concurrent.ExecutionException: 
> org.apache.ignite.internal.storage.StorageException: IGN-STORAGE-1 
> TraceId:a3dd7fbe-45d0-489e-90e4-c7a6c64e692e Storage is in the process of 
> closing: [tableId=0, partitionId=0]
>       at 
> java.base/java.util.concurrent.CompletableFuture.reportGet(CompletableFuture.java:395)
>       at 
> java.base/java.util.concurrent.CompletableFuture.get(CompletableFuture.java:2022)
>       at 
> org.apache.ignite.internal.testframework.matchers.CompletableFutureMatcher.matchesSafely(CompletableFutureMatcher.java:74)
>       ... 8 more
> Caused by: org.apache.ignite.internal.storage.StorageException: IGN-STORAGE-1 
> TraceId:a3dd7fbe-45d0-489e-90e4-c7a6c64e692e Storage is in the process of 
> closing: [tableId=0, partitionId=0]
>       at 
> app//org.apache.ignite.internal.storage.util.MvPartitionStorages.throwExceptionDependingOnOperation(MvPartitionStorages.java:404)
>       at 
> app//org.apache.ignite.internal.storage.util.MvPartitionStorages.lambda$create$0(MvPartitionStorages.java:110)
>       at 
> [email protected]/java.util.concurrent.ConcurrentHashMap.compute(ConcurrentHashMap.java:1932)
>       at 
> app//org.apache.ignite.internal.storage.util.MvPartitionStorages.create(MvPartitionStorages.java:94)
>       at 
> app//org.apache.ignite.internal.storage.util.MvPartitionStoragesTest.lambda$testWaitOperationOnGetAllForCloseOrDestroy$74(MvPartitionStoragesTest.java:582)
>       at 
> app//org.apache.ignite.internal.testframework.IgniteTestUtils.lambda$runAsync$1(IgniteTestUtils.java:504)
>       at [email protected]/java.lang.Thread.run(Thread.java:834)
> {noformat}



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to