yihua opened a new issue, #19939: URL: https://github.com/apache/hudi/issues/19939
### Problem `BaseHoodieCompactionPlanGenerator` lets a plan generator record its own state in the compaction plan's extra metadata through `getExtraMetadata(...)`. An incremental strategy uses this to remember which partitions it skipped so the next run can pick them up. Since #18183, `BaseHoodieTableServiceClient.scheduleTableServiceInternal` enriches the caller's extra-metadata option with the Hudi version and engine properties before scheduling, so the option handed to `ScheduleCompactionActionExecutor` is never empty. The executor then applies it with `extraMetadata.ifPresent(plan::setExtraMetadata)`, which replaces the map the generator just produced. The generator's entries are silently dropped on every schedule, and incremental compaction strategies built on this hook regress to full scans without any error. Verified with a debug probe: the generator computed its metadata correctly and the persisted plan carried only the enrichment keys. ### Expected The caller-provided entries are merged into the plan's extra metadata rather than overwriting it. Caller entries can win on a key collision; entries only the generator can produce must survive. ### Environment Hudi master (1.3.0-SNAPSHOT), any engine. Log compaction scheduling shares the code path. -- 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]
