[
https://issues.apache.org/jira/browse/IGNITE-22833?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Vyacheslav Koptilin reassigned IGNITE-22833:
--------------------------------------------
Assignee: Vladislav Pyatkov
> Test
> DistributionZoneCausalityDataNodesTest.testEmptyDataNodesOnZoneCreationBeforeTopologyEventAndZoneInitialisation
> is flaky
> -----------------------------------------------------------------------------------------------------------------------------
>
> Key: IGNITE-22833
> URL: https://issues.apache.org/jira/browse/IGNITE-22833
> Project: Ignite
> Issue Type: Bug
> Reporter: Vladislav Pyatkov
> Assignee: Vladislav Pyatkov
> Priority: Major
> Labels: ignite-3
> Attachments:
> _Run_Unit_Tests_auto-generated_Run_Unit_Tests_3_30973.log.zip
>
>
> {noformat}
> [10:10:14] : [:ignite-distribution-zones:test]
> DistributionZoneCausalityDataNodesTest >
> testEmptyDataNodesOnZoneCreationBeforeTopologyEventAndZoneInitialisation(int,
> int) > [1] 1, 1 STANDARD_ERROR
> [10:10:14] : [:ignite-distribution-zones:test]
> [2024-07-23T10:10:14,100][WARN
> ][%test%metastorage-watch-executor-2][UpdateLogImpl] Unable to process
> catalog event
> [10:10:14] : [:ignite-distribution-zones:test]
> java.lang.NullPointerException: null
> [10:10:14] : [:ignite-distribution-zones:test] at
> org.apache.ignite.internal.distributionzones.DistributionZoneManager.initDataNodesAndTriggerKeysInMetaStorage(DistributionZoneManager.java:527)
> ~[ignite-distribution-zones-3.0.0-SNAPSHOT.jar:?]
> [10:10:14] : [:ignite-distribution-zones:test] at
> org.apache.ignite.internal.distributionzones.DistributionZoneManager.onCreateZone(DistributionZoneManager.java:456)
> ~[ignite-distribution-zones-3.0.0-SNAPSHOT.jar:?]
> [10:10:14] : [:ignite-distribution-zones:test] at
> org.apache.ignite.internal.distributionzones.DistributionZoneManager.lambda$registerCatalogEventListenersOnStartManagerBusy$37(DistributionZoneManager.java:1396)
> ~[ignite-distribution-zones-3.0.0-SNAPSHOT.jar:?]
> [10:10:14] : [:ignite-distribution-zones:test] at
> org.apache.ignite.internal.util.IgniteUtils.inBusyLock(IgniteUtils.java:832)
> ~[ignite-core-3.0.0-SNAPSHOT.jar:?]
> [10:10:14] : [:ignite-distribution-zones:test] at
> org.apache.ignite.internal.distributionzones.DistributionZoneManager.lambda$registerCatalogEventListenersOnStartManagerBusy$38(DistributionZoneManager.java:1395)
> ~[ignite-distribution-zones-3.0.0-SNAPSHOT.jar:?]
> [10:10:14] : [:ignite-distribution-zones:test] at
> org.apache.ignite.internal.event.AbstractEventProducer.fireEvent(AbstractEventProducer.java:88)
> ~[ignite-core-3.0.0-SNAPSHOT.jar:?]
> [10:10:14] : [:ignite-distribution-zones:test] at
> org.apache.ignite.internal.catalog.CatalogManagerImpl.access$000(CatalogManagerImpl.java:81)
> ~[ignite-catalog-3.0.0-SNAPSHOT.jar:?]
> [10:10:14] : [:ignite-distribution-zones:test] at
> org.apache.ignite.internal.catalog.CatalogManagerImpl$OnUpdateHandlerImpl.handle(CatalogManagerImpl.java:577)
> ~[ignite-catalog-3.0.0-SNAPSHOT.jar:?]
> [10:10:14] : [:ignite-distribution-zones:test] at
> org.apache.ignite.internal.catalog.CatalogManagerImpl$OnUpdateHandlerImpl.handle(CatalogManagerImpl.java:544)
> ~[ignite-catalog-3.0.0-SNAPSHOT.jar:?]
> [10:10:14] : [:ignite-distribution-zones:test] at
> org.apache.ignite.internal.catalog.storage.UpdateLogImpl$UpdateListener.onUpdate(UpdateLogImpl.java:320)
> ~[ignite-catalog-3.0.0-SNAPSHOT.jar:?]
> [10:10:14] : [:ignite-distribution-zones:test] at
> org.apache.ignite.internal.metastorage.server.Watch.onUpdate(Watch.java:67)
> ~[ignite-metastorage-3.0.0-SNAPSHOT.jar:?]
> [10:10:14] : [:ignite-distribution-zones:test] at
> org.apache.ignite.internal.metastorage.server.WatchProcessor.notifyWatches(WatchProcessor.java:245)
> ~[ignite-metastorage-3.0.0-SNAPSHOT.jar:?]
> [10:10:14] : [:ignite-distribution-zones:test] at
> org.apache.ignite.internal.metastorage.server.WatchProcessor.lambda$notifyWatches$4(WatchProcessor.java:193)
> ~[ignite-metastorage-3.0.0-SNAPSHOT.jar:?]
> [10:10:14] : [:ignite-distribution-zones:test] at
> java.base/java.util.concurrent.CompletableFuture$UniCompose.tryFire(CompletableFuture.java:1072)
> [?:?]
> [10:10:14] : [:ignite-distribution-zones:test] at
> java.base/java.util.concurrent.CompletableFuture$Completion.run(CompletableFuture.java:478)
> [?:?]
> [10:10:14] : [:ignite-distribution-zones:test] at
> java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
> [?:?]
> [10:10:14] : [:ignite-distribution-zones:test] at
> java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
> [?:?]
> [10:10:14] : [:ignite-distribution-zones:test] at
> java.base/java.lang.Thread.run(Thread.java:834) [?:?]
> {noformat}
> *UPD*: After some investigation, I would suggest to rewrite this test, so we
> don't use mocks of metastorage and don't block some metastorage updates and
> wait for further metastorage intereactions, like catalog updates. As an idea,
> we could use {{org.apache.ignite.internal.test.WatchListenerInhibitor}} to
> block reaction on changing of
> {{org.apache.ignite.internal.distributionzones.DistributionZonesUtil#zonesLogicalTopologyKey}}
> so that means that we can skip data nodes update as we wanted in the test
--
This message was sent by Atlassian Jira
(v8.20.10#820010)