j1wonpark opened a new pull request, #4442:
URL: https://github.com/apache/amoro/pull/4442

   Closes #4441.
   
   When AMS recovers an optimizing process, a `serialVersionUID` mismatch in 
persisted task output causes an `InvalidClassException`. The persistence layer 
wraps it in `PersistenceException`, bypassing the existing 
`IllegalArgumentException` handler. Table initialization is then skipped, 
leaving the process `RUNNING` and the table outside the scheduler.
   
   This change handles the wrapped exception path left uncovered by #3262. If 
the cause chain contains `InvalidClassException`, recovery closes the process 
as `CLOSED`, resets the table to `IDLE`, and registers it with the scheduler. 
Unrelated persistence exceptions are rethrown.
   
   **Validation**
   
   - Added a regression test that deliberately changes the `BaseFile` UID in 
persisted task output and exercises database-backed recovery. It fails without 
the fix and passes with it, verifying `CLOSED`, `IDLE`, and scheduler 
registration.
   - Added a test verifying that an unrelated database failure does not close 
the process.
   - All 14 tests in `TestOptimizingTaskRecovery` and 
`TestIcebergV3OptimizingPlanning` pass.
   - Formatting and whitespace checks pass.
   


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