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]

Reply via email to