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]
