cshuo commented on PR #20389:
URL: https://github.com/apache/hudi/pull/20389#issuecomment-6281087324

   During recovery, the coordinator can restore an empty `eventBuffers` while 
writer state still contains metadata for a pending instant A. Even if the 
writer sends `bootstrap(A)` before requesting a new instant, bootstrap 
processing runs on the main executor while instant creation runs on 
`instantRequestExecutor`. If A has not been registered yet, both pending checks 
can see an empty map, allowing `startInstant()` to trigger EAGER rollback of A.
   
   This appears to be a pre-existing recovery window rather than a regression 
introduced by this PR.
   
   For blocking instant generation, could we process instant requests on the 
main executor as well? Running the instant lookup, pending check, creation, and 
buffer registration there would ensure that an already-queued bootstrap event 
is processed first. Requests blocked by pending instants should continue 
returning `null` for task-side retry, keeping the executor available to process 
events and commits.
   


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