hutiefang76 commented on PR #12578: URL: https://github.com/apache/seatunnel/pull/12578#issuecomment-6394328894
@SEZ9, the source follow-ups are already present on unchanged `ef53a70c`: - **F1/F2:** [`setField`](https://github.com/apache/seatunnel/blob/ef53a70c6f72f5f6ae7c31fcc57b541eb3c849f3/seatunnel-api/src/main/java/org/apache/seatunnel/api/table/type/SeaTunnelRow.java#L52-L62) assigns the field, then invalidates only under `if (size != 0)`. The volatile read remains; the unconditional volatile write during row construction is gone. Its Javadoc explicitly excludes direct `getFields()` writes and nested mutations. - **F2:** The EN/ZH architecture paragraph now sits under **Row Data Contract**, between metadata and the runtime walkthrough, and distinguishes estimated byte size from serialized wire size: [EN](https://github.com/apache/seatunnel/blob/ef53a70c6f72f5f6ae7c31fcc57b541eb3c849f3/docs/en/architecture/core-api-design.md#L177-L181), [ZH](https://github.com/apache/seatunnel/blob/ef53a70c6f72f5f6ae7c31fcc57b541eb3c849f3/docs/zh/architecture/core-api-design.md#L177-L181). - **F3/F5:** `testDirectFieldMutationDoesNotInvalidateCachedBytesSize` and `testNestedFieldMutationDoesNotInvalidateParentCachedBytesSize` pin the limitation and check that explicitly calling the parent setter invalidates the estimate afterward. - **F4/F5:** `testSetFieldInvalidatesCachedBytesSize` tests both directions on the same row: typed pre-warm → setter → untyped read, then untyped pre-warm → setter → typed read. These cases are together in [SeaTunnelRowTest](https://github.com/apache/seatunnel/blob/ef53a70c6f72f5f6ae7c31fcc57b541eb3c849f3/seatunnel-api/src/test/java/org/apache/seatunnel/api/table/type/SeaTunnelRowTest.java#L252-L317). I reran only the failed `Run / engine-v2-it (11, ubuntu-latest)` job from the current attempt (`120703017149`). GitHub accepted the request and [attempt 3](https://github.com/hutiefang76/seatunnel/actions/runs/39775915510/attempts/3) is queued on the same head. No source or test changes were made for the checkpoint timeout. If the retry times out in the same way, I will link the result and stop there. As you noted, this fork run does not supply the PR-bound `Build` check; the failed upstream `Notify test workflow` still needs a maintainer retry. <sub>AI-assisted reply (Codex), checked against the linked revision.</sub> -- 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]
