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]


Reply via email to