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

Vyacheslav Koptilin updated IGNITE-22833:
-----------------------------------------
    Epic Link: IGNITE-21389

> 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
>            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)

Reply via email to