gyang94 opened a new issue, #3394: URL: https://github.com/apache/fluss/issues/3394
### Search before asking - [x] I searched in the [issues](https://github.com/apache/fluss/issues) and found nothing similar. ### Fluss version 0.9.0 (latest release) ### Please describe the bug 🐞 Unstable test in DefaultAuthorizerTest.testLocalConcurrentModificationOfResourceAcls There may be race condition ``` Test org.apache.fluss.server.authorizer.DefaultAuthorizerTest.testLocalConcurrentModificationOfResourceAcls[testLocalConcurrentModificationOfResourceAcls()] is running. -------------------------------------------------------------------------------- 21:31:53,904 [ForkJoinPool-67-worker-3] INFO org.apache.fluss.server.zk.ZooKeeperUtils [] - Using '/fluss' as Zookeeper root path to stores its entries. 21:31:53,905 [ForkJoinPool-67-worker-3] INFO org.apache.fluss.shaded.curator5.org.apache.curator.framework.imps.CuratorFrameworkImpl [] - Starting 21:31:53,906 [ForkJoinPool-67-worker-3] INFO org.apache.fluss.shaded.curator5.org.apache.curator.framework.imps.CuratorFrameworkImpl [] - Default schema 21:31:53,906 [ForkJoinPool-67-worker-3] INFO org.apache.fluss.server.zk.ZooKeeperUtils [] - Using '/fluss' as Zookeeper root path to stores its entries. 21:31:53,906 [ForkJoinPool-67-worker-3] INFO org.apache.fluss.shaded.curator5.org.apache.curator.framework.imps.CuratorFrameworkImpl [] - Starting 21:31:53,907 [ForkJoinPool-67-worker-3] INFO org.apache.fluss.shaded.curator5.org.apache.curator.framework.imps.CuratorFrameworkImpl [] - Default schema 21:31:53,908 [ForkJoinPool-67-worker-3-EventThread] INFO org.apache.fluss.shaded.curator5.org.apache.curator.framework.state.ConnectionStateManager [] - State change: CONNECTED 21:31:53,909 [ForkJoinPool-67-worker-3-EventThread] INFO org.apache.fluss.shaded.curator5.org.apache.curator.framework.state.ConnectionStateManager [] - State change: CONNECTED 21:31:53,910 [ForkJoinPool-67-worker-3-EventThread] INFO org.apache.fluss.shaded.curator5.org.apache.curator.framework.imps.EnsembleTracker [] - New config event received: {} 21:31:53,910 [ForkJoinPool-67-worker-3-EventThread] INFO org.apache.fluss.shaded.curator5.org.apache.curator.framework.imps.EnsembleTracker [] - New config event received: {} 21:31:53,911 [ForkJoinPool-67-worker-3-EventThread] INFO org.apache.fluss.shaded.curator5.org.apache.curator.framework.imps.EnsembleTracker [] - New config event received: {} 21:31:53,911 [ForkJoinPool-67-worker-3-EventThread] INFO org.apache.fluss.shaded.curator5.org.apache.curator.framework.imps.EnsembleTracker [] - New config event received: {} 21:31:53,920 [ForkJoinPool-67-worker-3] INFO org.apache.fluss.server.zk.ZooKeeperClient [] - insert acl node Resource{type=DATABASE, name='foo-c030509d-f669-48a1-878e-569488ae0d67'} with value [AccessControlEntry{principal=FlussPrincipal{name='user1', type='User'}, permissionType=ANY, host='host-1', operationType=READ}] 21:31:53,928 [ForkJoinPool-67-worker-3] INFO org.apache.fluss.server.zk.ZooKeeperClient [] - addColumn acl change notification for resource Resource{type=DATABASE, name='foo-c030509d-f669-48a1-878e-569488ae0d67'} 21:31:53,929 [ForkJoinPool-67-worker-3] INFO org.apache.fluss.server.zk.ZooKeeperClient [] - update acl node Resource{type=DATABASE, name='foo-c030509d-f669-48a1-878e-569488ae0d67'} with value [AccessControlEntry{principal=FlussPrincipal{name='user1', type='User'}, permissionType=ANY, host='host-1', operationType=READ}, AccessControlEntry{principal=FlussPrincipal{name='user2', type='User'}, permissionType=ANY, host='host-2', operationType=READ}] 21:31:53,931 [ForkJoinPool-67-worker-3] INFO org.apache.fluss.server.zk.ZooKeeperClient [] - addColumn acl change notification for resource Resource{type=DATABASE, name='foo-c030509d-f669-48a1-878e-569488ae0d67'} 21:31:53,932 [Curator-SafeNotifyService-0] INFO org.apache.fluss.server.authorizer.DefaultAuthorizer [] - Processing Acl change notification for Resource{type=DATABASE, name='foo-c030509d-f669-48a1-878e-569488ae0d67'}, acls : VersionedAcls{acls=[AccessControlEntry{principal=FlussPrincipal{name='user1', type='User'}, permissionType=ANY, host='host-1', operationType=READ}, AccessControlEntry{principal=FlussPrincipal{name='user2', type='User'}, permissionType=ANY, host='host-2', operationType=READ}], zkVersion=1} 21:31:53,932 [Curator-SafeNotifyService-0] INFO org.apache.fluss.server.authorizer.DefaultAuthorizer [] - Processing Acl change notification for Resource{type=DATABASE, name='foo-c030509d-f669-48a1-878e-569488ae0d67'}, acls : VersionedAcls{acls=[AccessControlEntry{principal=FlussPrincipal{name='user1', type='User'}, permissionType=ANY, host='host-1', operationType=READ}, AccessControlEntry{principal=FlussPrincipal{name='user2', type='User'}, permissionType=ANY, host='host-2', operationType=READ}], zkVersion=1} 21:31:53,933 [Curator-SafeNotifyService-0] INFO org.apache.fluss.server.authorizer.DefaultAuthorizer [] - Processing Acl change notification for Resource{type=DATABASE, name='foo-c030509d-f669-48a1-878e-569488ae0d67'}, acls : VersionedAcls{acls=[AccessControlEntry{principal=FlussPrincipal{name='user1', type='User'}, permissionType=ANY, host='host-1', operationType=READ}, AccessControlEntry{principal=FlussPrincipal{name='user2', type='User'}, permissionType=ANY, host='host-2', operationType=READ}], zkVersion=1} 21:31:53,936 [ForkJoinPool-67-worker-3] INFO org.apache.fluss.server.zk.ZooKeeperClient [] - addColumn acl change notification for resource Resource{type=DATABASE, name='foo-c030509d-f669-48a1-878e-569488ae0d67'} 21:31:53,936 [ForkJoinPool-67-worker-3] INFO org.apache.fluss.server.authorizer.ZkNodeChangeNotificationWatcher [] - Stopping ZkNodeChangeNotificationWatcher 21:31:53,936 [ForkJoinPool-67-worker-3] INFO org.apache.fluss.server.authorizer.ZkNodeChangeNotificationWatcher [] - Stopping ZkNodeChangeNotificationWatcher 21:31:53,937 [ForkJoinPool-67-worker-3] INFO org.apache.fluss.server.zk.ZooKeeperClient [] - Closing... 21:31:53,937 [ Curator-Framework-0] INFO org.apache.fluss.shaded.curator5.org.apache.curator.framework.imps.CuratorFrameworkImpl [] - backgroundOperationsLoop exiting 21:31:53,937 [Curator-SafeNotifyService-0] INFO org.apache.fluss.server.authorizer.DefaultAuthorizer [] - Processing Acl change notification for Resource{type=DATABASE, name='foo-c030509d-f669-48a1-878e-569488ae0d67'}, acls : VersionedAcls{acls=[], zkVersion=-2} 21:31:53,937 [Curator-SafeNotifyService-0] ERROR org.apache.fluss.server.authorizer.ZkNodeChangeNotificationWatcher [] - Error while purging obsolete notification change for path = /fluss-acl-changes/acl_changes_0000000000 java.lang.IllegalStateException: Expected state [STARTED] was [STOPPED] at org.apache.fluss.shaded.curator5.org.apache.curator.shaded.com.google.common.base.Preconditions.checkState(Preconditions.java:821) at org.apache.fluss.shaded.curator5.org.apache.curator.framework.imps.CuratorFrameworkImpl.checkState(CuratorFrameworkImpl.java:457) at org.apache.fluss.shaded.curator5.org.apache.curator.framework.imps.CuratorFrameworkImpl.checkExists(CuratorFrameworkImpl.java:484) at org.apache.fluss.server.zk.ZooKeeperClient.getStat(ZooKeeperClient.java:1605) at org.apache.fluss.server.authorizer.ZkNodeChangeNotificationWatcher.purgeObsoleteNotifications(ZkNodeChangeNotificationWatcher.java:142) at org.apache.fluss.server.authorizer.ZkNodeChangeNotificationWatcher.processNotifications(ZkNodeChangeNotificationWatcher.java:112) at org.apache.fluss.server.authorizer.ZkNodeChangeNotificationWatcher$ZkNodeChangeNotificationListener.childEvent(ZkNodeChangeNotificationWatcher.java:165) at org.apache.fluss.shaded.curator5.org.apache.curator.framework.recipes.cache.PathChildrenCacheListenerWrapper.sendEvent(PathChildrenCacheListenerWrapper.java:84) at org.apache.fluss.shaded.curator5.org.apache.curator.framework.recipes.cache.PathChildrenCacheListenerWrapper.event(PathChildrenCacheListenerWrapper.java:49) at org.apache.fluss.shaded.curator5.org.apache.curator.framework.recipes.cache.CuratorCacheListenerBuilderImpl$2.lambda$event$0(CuratorCacheListenerBuilderImpl.java:149) at java.base/java.util.ArrayList.forEach(ArrayList.java:1541) at org.apache.fluss.shaded.curator5.org.apache.curator.framework.recipes.cache.CuratorCacheListenerBuilderImpl$2.event(CuratorCacheListenerBuilderImpl.java:149) at org.apache.fluss.shaded.curator5.org.apache.curator.framework.recipes.cache.CuratorCacheImpl.lambda$putStorage$6(CuratorCacheImpl.java:287) at org.apache.fluss.shaded.curator5.org.apache.curator.framework.listen.MappingListenerManager.lambda$forEach$0(MappingListenerManager.java:92) at org.apache.fluss.shaded.curator5.org.apache.curator.framework.listen.MappingListenerManager.forEach(MappingListenerManager.java:89) at org.apache.fluss.shaded.curator5.org.apache.curator.framework.listen.StandardListenerManager.forEach(StandardListenerManager.java:89) at org.apache.fluss.shaded.curator5.org.apache.curator.framework.recipes.cache.CuratorCacheImpl.lambda$callListeners$9(CuratorCacheImpl.java:301) at java.base/java.util.concurrent.CompletableFuture$AsyncRun.run(CompletableFuture.java:1736) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) at java.base/java.lang.Thread.run(Thread.java:829) ``` ### Solution _No response_ ### Are you willing to submit a PR? - [ ] I'm willing to submit a PR! -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
