JNSimba opened a new pull request, #63514: URL: https://github.com/apache/doris/pull/63514
## Summary Add 5 regression cases for CDC operational invariants: - \`test_streaming_mysql_job_offset_earliest\` — earliest replays binlog without snapshot - \`test_streaming_postgres_job_publication\` (Tests 5/6/7) — fail-fast validation on missing slot / publication / required tables - \`test_streaming_postgres_job_drop_during_snapshot\` — DROP mid-snapshot cleans up auto slot/pub - \`test_streaming_postgres_job_special_offset_restart_fe\` — JSON LSN offset survives FE restart - \`test_streaming_postgres_job_slot_lsn_advance\` — confirmed_flush_lsn advances, freezes on PAUSE, resumes after RESUME \`drop_during_snapshot\` surfaced a real cdc_client concurrency bug: HTTP \`/api/close\` raced the async-write task thread on \`JdbcIncrementalSourceReader\` snapshot-reader lists (CME), making \`PostgresSourceReader.close\` abort before dropping the auto-managed slot/publication. Fix: thread-safe collections (CopyOnWriteArrayList / ConcurrentHashMap.newKeySet) + serialize reader state mutations (\`prepareSnapshotSplits\` / \`prepareStreamSplit\` / \`finishSplitRecords\` / \`close\`) on the reader monitor; \`pollRecords\` stays monitor-free so a blocking poll never fences \`close\` out. Mirrored in \`MySqlSourceReader\`. Also fixed two existing issues in the new cases: - \`special_offset_restart_fe\`: LSN composition switched from signed \`Long\` shift to \`BigInteger\` to avoid overflow once the high half reaches \`0x80000000\`. - \`slot_lsn_advance\`: \`PROPERTIES\` placement moved before \`ON STREAMING\` to match the CREATE JOB grammar. ## Test plan - [ ] regression-test runs locally -- 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] --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
