leizhiyuan commented on issue #1412: URL: https://github.com/apache/rocketmq-clients/issues/1412#issuecomment-6307625432
Update: two new issue/PR pairs, both based on #1404 and **to be merged after it**. - **#1422 / #1423**: defect 4a. `PushConsumer` / `LitePushConsumer` `shutdown()` took 208.7 s with 6 queues (`master` + #1404 + #1381). Workers kept issuing long polls after shutdown started, because of an unbiased `select!` against a 1 ms ticker, and actors were shut down one by one. The fix checks shutdown first, like `ProcessQueueImpl` checks `consumer.isRunning()`, and shuts actors down concurrently, like `PushConsumerImpl#waitingReceiveRequestFinished`. End-to-end, shutdown takes about 5 s. **Depends on #1404 and #1381.** - **#1424 / #1425**: new defect 13, found while testing #1423. In code added by #1404, `PushConsumer::apply_settings` sends the server `long_polling_timeout` (20 s) in the request, but the client deadline stays at the configured 40 s + 3 s. The fix also writes the shared value, as `SimpleConsumer` already does, so the deadline is 23 s like Java. With #1423 + #1425, all 6 end-to-end shutdown runs took 5.0 to 9.1 s; without #1425, 2 of 6 took about 28 s. **Depends on #1404.** Each PR has one reviewable commit, touching `push_consumer.rs` only, on top of temporary merge commits of its dependencies. I will rebase both onto `master` once those are merged. Also noted in the conflict matrix: #1404's latest push (`b5cb4940`) now conflicts with #1411 in `client.rs`, because both add `MTX.lock()` to `client_get_session`. It is trivial to resolve. The body is updated (PR table, defects 4a and 13, conflicts, merge order). The only remaining item is 9, if it is still needed after #1404. -- 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]
