TheR1sing3un opened a new issue, #17816: URL: https://github.com/apache/hudi/issues/17816
### Bug Description Recently, I encountered a problem of data duplication. After locating it, I found that the exception handling logic of the current clean has certain risks. 1. insert commit[ts_0] write a base file named `a-ts_0.parquet` 2. insert overwrite commit[ts_1] write a base file named `b-ts_0.parquet` and mark `a` as replaced file-id in the instant metadata. 3. query the table, all is fine, because when we construct `FileSystemView`, we will ignore the file groups with replaced file ids recorded in the replace commit metadata in the active timeline. So only `b-ts_0.parquert` is visable. 4. a clean trigger, cleaner try to delete the replaced file groups which are recored in `ts_1`. 5. when cleaner delete `a-ts_0.parquet`, an exception occurs, for exmaple: <img width="974" height="308" alt="Image" src="https://github.com/user-attachments/assets/10e5705c-3ca1-4121-90ef-68d65413aad8" /> 6. but `IOException` is ignored in `org.apache.hudi.table.action.clean.CleanActionExecutor#deleteFilesFunc` <img width="851" height="663" alt="Image" src="https://github.com/user-attachments/assets/0bfc9030-947a-43ce-b86c-80b348511511" /> 7. and then archiver arhived the `ts_0` and `ts_1` 8. now query table, both `a-ts_0.parquet` and `b-ts_1.parquet` exists, so result is wrong. ### Environment **Hudi version:** **Query engine:** (Spark/Flink/Trino etc) **Relevant configs:** ### Logs and Stack Trace _No response_ -- 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]
