mirror of https://github.com/apache/kafka.git
				
				
				
			MINOR: log error when initialLoadFuture is not done in authorizer (#14953)
Currently, when initializing StandardAuthorizer, it'll wait until all ACL loaded and complete the initialLoadFuture. So, checking logs, we'll see: 2023-12-06 14:07:50,325 INFO [StandardAuthorizer 1] Initialized with 6 acl(s). (org.apache.kafka.metadata.authorizer.StandardAuthorizerData) [kafka-1-metadata-loader-event-handler] 2023-12-06 14:07:50,325 INFO [StandardAuthorizer 1] Completed initial ACL load process. (org.apache.kafka.metadata.authorizer.StandardAuthorizerData) [kafka-1-metadata-loader-event-handler] But then, when shutting down the node, we will also see this error: 2023-12-06 14:12:32,752 ERROR [StandardAuthorizer 1] Failed to complete initial ACL load process. (org.apache.kafka.metadata.authorizer.StandardAuthorizerData) [kafka-1-metadata-loader-event-handler] java.util.concurrent.TimeoutException at kafka.server.metadata.AclPublisher.close(AclPublisher.scala:98) at org.apache.kafka.image.loader.MetadataLoader.closePublisher(MetadataLoader.java:568) at org.apache.kafka.image.loader.MetadataLoader.lambda$removeAndClosePublisher$7(MetadataLoader.java:528) at org.apache.kafka.queue.KafkaEventQueue$EventContext.run(KafkaEventQueue.java:127) at org.apache.kafka.queue.KafkaEventQueue$EventHandler.handleEvents(KafkaEventQueue.java:210) at org.apache.kafka.queue.KafkaEventQueue$EventHandler.run(KafkaEventQueue.java:181) at java.base/java.lang.Thread.run(Thread.java:840) It's confusing. And it's because we'll try to complete authorizer initialLoad, and complete the initialLoadFuture if not done. But we'll log the error no matter it's completed or not. This patch improves the logging. Reviewers: Josep Prat <josep.prat@aiven.io>
This commit is contained in:
		
							parent
							
								
									756f44a3e5
								
							
						
					
					
						commit
						98fb3bd304
					
				|  | @ -93,8 +93,10 @@ public class StandardAuthorizer implements ClusterMetadataAuthorizer { | |||
| 
 | ||||
|     @Override | ||||
|     public void completeInitialLoad(Exception e) { | ||||
|         data.log.error("Failed to complete initial ACL load process.", e); | ||||
|         initialLoadFuture.completeExceptionally(e); | ||||
|         if (!initialLoadFuture.isDone()) { | ||||
|             data.log.error("Failed to complete initial ACL load process.", e); | ||||
|             initialLoadFuture.completeExceptionally(e); | ||||
|         } | ||||
|     } | ||||
| 
 | ||||
|     @Override | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue