labuladong commented on code in PR #20651:
URL: https://github.com/apache/pulsar/pull/20651#discussion_r1243156941


##########
pulsar-client-admin/src/main/java/org/apache/pulsar/client/admin/internal/BrokersImpl.java:
##########
@@ -215,7 +215,13 @@ public CompletableFuture<Void> 
shutDownBrokerGracefully(int maxConcurrentUnloadP
         WebTarget path = adminBrokers.path("shutdown")
                 .queryParam("maxConcurrentUnloadPerSec", 
maxConcurrentUnloadPerSec)
                 .queryParam("forcedTerminateTopic", forcedTerminateTopic);
-        return asyncPostRequest(path, Entity.entity("", 
MediaType.APPLICATION_JSON));
+        CompletableFuture<Void> completableFuture = new CompletableFuture<>();
+        try {
+            sync(() -> asyncPostRequest(path, Entity.entity("", 
MediaType.APPLICATION_JSON)));

Review Comment:
   I mean the broker doesn't handle the shutdown request properly now. For 
example, you can try this command to the local standalone pulsar:
   
   ```bash
   curl -X POST localhost:8080/admin/v2/brokers/shutdown
   ```
   
   The expected behavior is the post request finished successfully, but the 
actual behavior is the post request stucks and gets a timeout error.
   
   I think broker side may need to add a `@Suspended AsyncResponse 
asyncResponse` and use `asyncResponse.resume` to give client a response, like 
other async APIs.



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

Reply via email to