kalayciburak opened a new pull request, #20026:
URL: https://github.com/apache/hudi/pull/20026

   ### Describe the issue this Pull Request addresses
   
   Closes #20016.
   
   `DisruptorMessageQueue` catches exceptions from `HoodieConsumer.consume` and 
stores them with `markAsFailed`. `BaseHoodieQueueBasedExecutor.execute()` only 
inspected that stored failure inside its catch block. When production and 
`finish()` both complete normally, the caller received the finish result and 
the fatal consume error was dropped.
   
   ### Summary and Changelog
   
   After `finish()` returns, `execute()` now throws the stored queue failure if 
one is present.
   
   - Keep the existing close and `finish()` order so queue and consumer 
resources are still released.
   - Propagate the original consumer exception through the existing 
`HoodieException` path.
   - Add a Disruptor regression test where `consume()` throws and `finish()` 
returns normally.
   
   ### Impact
   
   Callers of `DisruptorExecutor` with `hoodie.write.executor.type=DISRUPTOR` 
now see a fatal consume failure instead of a successful finish result. No 
public API, config, or storage-format change. The success path is unchanged 
when no failure is stored.
   
   ### Risk Level
   
   low
   
   The check runs only after both futures complete and only when 
`queue.getThrowable()` is already set. Verification: 
`TestDisruptorExecutorConsumerFailure` failed before the change because 
`execute()` returned normally, then passed (1 test, 0 failures). `hudi-common` 
checkstyle reported 0 violations.
   
   ### Documentation Update
   
   none
   
   ### Contributor's checklist
   
   - [x] Read through [contributor's 
guide](https://hudi.apache.org/contribute/how-to-contribute)
   - [x] Enough context is provided in the sections above
   - [x] Adequate tests were added if applicable
   


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