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

Vyacheslav Koptilin updated IGNITE-25260:
-----------------------------------------
    Description: 
{code:java}
java.lang.AssertionError: The earliest catalog version does not match. 
Expected: is <9> but: was <8>
java.lang.AssertionError: The earliest catalog version does not match.
Expected: is <9>
but: was <8>
  at org.hamcrest.MatcherAssert.assertThat(MatcherAssert.java:20)
  at 
org.apache.ignite.internal.catalog.compaction.ItCatalogCompactionTest.lambda$expectEarliestCatalogVersion$11(ItCatalogCompactionTest.java:279)
  at 
org.awaitility.core.AssertionCondition.lambda$new$0(AssertionCondition.java:53)
  at 
org.awaitility.core.ConditionAwaiter$ConditionPoller.call(ConditionAwaiter.java:248)
  at 
org.awaitility.core.ConditionAwaiter$ConditionPoller.call(ConditionAwaiter.java:235)
  at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
  at 
org.awaitility.core.SameThreadExecutorService.execute(SameThreadExecutorService.java:79)
  at 
java.base/java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:145)
  at org.awaitility.core.ConditionAwaiter.await(ConditionAwaiter.java:101)
  at org.awaitility.core.AssertionCondition.await(AssertionCondition.java:119)
  at org.awaitility.core.AssertionCondition.await(AssertionCondition.java:31)
  at org.awaitility.core.ConditionFactory.until(ConditionFactory.java:1160)
  at 
org.awaitility.core.ConditionFactory.untilAsserted(ConditionFactory.java:790)
  at 
org.apache.ignite.internal.catalog.compaction.ItCatalogCompactionTest.expectEarliestCatalogVersion(ItCatalogCompactionTest.java:274)
  at 
org.apache.ignite.internal.catalog.compaction.ItCatalogCompactionTest.testCompactionRun(ItCatalogCompactionTest.java:235){code}
 

The root cause of the issue is related to the fact that 
`TableManger#tablesPerZone` mapping is not properly synchronized and cleaned up 
when a table is dropped from the default zone (it doesn't matter, honestly, 
that the zone is the default one). When a table is dropped, the mentioned 
collection still contains a reference to the table, and later we may restart 
storages for this table due to changing assignments, for instance.

  was:
{code:java}
java.lang.AssertionError: The earliest catalog version does not match. 
Expected: is <9> but: was <8>
java.lang.AssertionError: The earliest catalog version does not match.
Expected: is <9>
but: was <8>
  at org.hamcrest.MatcherAssert.assertThat(MatcherAssert.java:20)
  at 
org.apache.ignite.internal.catalog.compaction.ItCatalogCompactionTest.lambda$expectEarliestCatalogVersion$11(ItCatalogCompactionTest.java:279)
  at 
org.awaitility.core.AssertionCondition.lambda$new$0(AssertionCondition.java:53)
  at 
org.awaitility.core.ConditionAwaiter$ConditionPoller.call(ConditionAwaiter.java:248)
  at 
org.awaitility.core.ConditionAwaiter$ConditionPoller.call(ConditionAwaiter.java:235)
  at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
  at 
org.awaitility.core.SameThreadExecutorService.execute(SameThreadExecutorService.java:79)
  at 
java.base/java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:145)
  at org.awaitility.core.ConditionAwaiter.await(ConditionAwaiter.java:101)
  at org.awaitility.core.AssertionCondition.await(AssertionCondition.java:119)
  at org.awaitility.core.AssertionCondition.await(AssertionCondition.java:31)
  at org.awaitility.core.ConditionFactory.until(ConditionFactory.java:1160)
  at 
org.awaitility.core.ConditionFactory.untilAsserted(ConditionFactory.java:790)
  at 
org.apache.ignite.internal.catalog.compaction.ItCatalogCompactionTest.expectEarliestCatalogVersion(ItCatalogCompactionTest.java:274)
  at 
org.apache.ignite.internal.catalog.compaction.ItCatalogCompactionTest.testCompactionRun(ItCatalogCompactionTest.java:235){code}
 

The root cause of the issue is related to the fact that 
`TableManger#tablesPerZone` mapping is not properly synchronized and cleaned up 
when a table is dropping from the default zone ()


> ItCatalogCompactionTest.testCompactionRun fails in case of enabled colocation
> -----------------------------------------------------------------------------
>
>                 Key: IGNITE-25260
>                 URL: https://issues.apache.org/jira/browse/IGNITE-25260
>             Project: Ignite
>          Issue Type: Bug
>            Reporter: Alexander Lapin
>            Assignee: Vyacheslav Koptilin
>            Priority: Major
>              Labels: ignite-3
>          Time Spent: 10m
>  Remaining Estimate: 0h
>
> {code:java}
> java.lang.AssertionError: The earliest catalog version does not match. 
> Expected: is <9> but: was <8>
> java.lang.AssertionError: The earliest catalog version does not match.
> Expected: is <9>
> but: was <8>
>   at org.hamcrest.MatcherAssert.assertThat(MatcherAssert.java:20)
>   at 
> org.apache.ignite.internal.catalog.compaction.ItCatalogCompactionTest.lambda$expectEarliestCatalogVersion$11(ItCatalogCompactionTest.java:279)
>   at 
> org.awaitility.core.AssertionCondition.lambda$new$0(AssertionCondition.java:53)
>   at 
> org.awaitility.core.ConditionAwaiter$ConditionPoller.call(ConditionAwaiter.java:248)
>   at 
> org.awaitility.core.ConditionAwaiter$ConditionPoller.call(ConditionAwaiter.java:235)
>   at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
>   at 
> org.awaitility.core.SameThreadExecutorService.execute(SameThreadExecutorService.java:79)
>   at 
> java.base/java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:145)
>   at org.awaitility.core.ConditionAwaiter.await(ConditionAwaiter.java:101)
>   at org.awaitility.core.AssertionCondition.await(AssertionCondition.java:119)
>   at org.awaitility.core.AssertionCondition.await(AssertionCondition.java:31)
>   at org.awaitility.core.ConditionFactory.until(ConditionFactory.java:1160)
>   at 
> org.awaitility.core.ConditionFactory.untilAsserted(ConditionFactory.java:790)
>   at 
> org.apache.ignite.internal.catalog.compaction.ItCatalogCompactionTest.expectEarliestCatalogVersion(ItCatalogCompactionTest.java:274)
>   at 
> org.apache.ignite.internal.catalog.compaction.ItCatalogCompactionTest.testCompactionRun(ItCatalogCompactionTest.java:235){code}
>  
> The root cause of the issue is related to the fact that 
> `TableManger#tablesPerZone` mapping is not properly synchronized and cleaned 
> up when a table is dropped from the default zone (it doesn't matter, 
> honestly, that the zone is the default one). When a table is dropped, the 
> mentioned collection still contains a reference to the table, and later we 
> may restart storages for this table due to changing assignments, for instance.



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

Reply via email to