JingsongLi commented on PR #9363:
URL: https://github.com/apache/paimon/pull/9363#issuecomment-5748030428

   Requirement fit: SUPPORTED. Implementation: FINDINGS.
   
   The issue has a concrete Spark 3.5 reproduction and silent wrong-row impact, 
so rollback-lineage protection has real end-to-end value. The current 
Java/Flink/Spark callers now carry the snapshot UUID, the check runs before the 
empty-checker return, and the snapshot cache is invalidated before re-reading 
the base ID. CI is green. Two gaps still prevent this PR from completing the 
issue contract:
   
   [P1] Protect the PyPaimon/Ray self-merge path too
   
   #9352 explicitly reproduces the shared snapshot-ID-only design in Spark and 
PyPaimon and requires them to remain aligned. This diff updates only 
Java/Flink/Spark; the Python staging/commit path can still accept an old staged 
update after rollback and ID reuse. Please carry a base snapshot identity 
through the Python commit path and add the same rollback/reused-row-ID 
regression there, or narrow the issue/PR claim and keep the cross-engine 
inconsistency tracked as a blocking follow-up.
   
   [P2] Add a real rollback/ID-reuse regression
   
   The two added tests mock `SnapshotManager.snapshot(1)` to return a different 
UUID. They verify one conditional but not the failure mode: commit, stage an 
update, roll back, recreate the same numeric snapshot/row ID, then attempt the 
stale commit. Such an end-to-end test is needed to prove that cache 
invalidation and every production caller preserve the captured identity. It 
should also cover a legacy snapshot with null UUID; the current 
`baseSnapshotUuid != null` guard gives that path no ABA protection, whereas 
passing/comparing the captured `Snapshot` can fail closed using full snapshot 
equality.


-- 
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]

Reply via email to