The GitHub Actions job "Required Checks" on texera.git/xinyuan-loop-feb has failed. Run started by GitHub user aglinxinyuan (triggered by aglinxinyuan).
Head commit for run: 620edeb4fc5280c5b6d50580e7e6c5b0f81cd102 / Xinyuan Lin <[email protected]> fix+test(loop): drop pickle and name-mangled table access from loop state path Addresses PR #4206 review feedback (https://github.com/apache/texera/pull/4206#discussion_r3400851484): the loop state path still (1) read the parent's private field via the mangled name self._TableOperator__table_data[port] -- silently breaking if TableOperator is renamed -- and (2) moved the table with pickle (dumps in LoopStart.produce_state_on_finish, loads in LoopEnd.run_update), an RCE surface for data that lives in iceberg. (Fixed earlier but lost in a force-rebase.) * Add TableOperator._buffered_table(port): inside the class self.__table_data resolves via normal name mangling, so subclasses read the buffer without the mangled prefix and a rename stays transparent. LoopStart.produce_state_on_finish uses it. * Replace pickle with Apache Arrow IPC (structured, typed, no callable payload): new table_to_ipc_bytes / table_from_ipc_bytes in table.py (pyarrow.ipc). produce_state_on_finish encodes; run_update decodes. Wire shape (bytes in state["table"]) is unchanged; only the format. * Tests: TestBufferedTableAccessor pins the accessor; the produce-state test now asserts the bytes parse as an Arrow IPC stream and round-trip back to the same tuples (would fail if pickle returned); the matching- branch tests feed Arrow bytes. 14 tests pass. Verified: 14 loop-operator tests pass; ruff clean. (The 1 failure in test_tuple.py::test_hash is a pre-existing Windows OSError in tuple.py hashing, unrelated to this change.) Report URL: https://github.com/apache/texera/actions/runs/27452024737 With regards, GitHub Actions via GitBox
