devinbost opened a new pull request #10501: URL: https://github.com/apache/pulsar/pull/10501
We currently have a producer deadlock where the producer semaphore is not getting released because the broker is not sending the ack. The mystery was why the broker was not sending the ack. During extensive log tracing, it was discovered that right when the subscription freezes, the log message `Ledger already created when timeout task is triggered` floods the broker log several thousand times, and after that, the broker stops processing messages. Thanks to the help from @rdhabalia and @codelipenghui , it was discovered that `ManagedLedgerImpl.asyncCreateLedger(..)` is triggering the error callback instead of returning despite the ledger already having been created when the timeout task was triggered. Since the ledger was created, we should be returning from `asyncCreateLedger` instead of triggering the callback and trying to create the ledger again. Fixes #6054 -- 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. For queries about this service, please contact Infrastructure at: [email protected]
