leehaut opened a new pull request, #9234:
URL: https://github.com/apache/hop/pull/9234

   Fix https://github.com/apache/hop/issues/9173
   
   ## Summary
   
   - After all predecessors finish, `ActionJoin` now merges result files and 
result rows from every finished branch instead of keeping only the branch that 
claimed the Join.
   - `ActionResult` now stores a full `Result.clone()` (instead of 
`lightClone()`) so result rows remain available to later actions such as Join.
   - Updated the Join action docs and added a regression test that asserts both 
files and rows are merged across parallel branches.
   
   ## Context
   
   
   When several parallel branches hop into a Join, only one branch runs the 
Join (`claimJoinsToFollow`). That branch's `Result` was passed through 
unchanged, so files/rows from the other branches were dropped, and which branch 
survived was race-dependent.
   
   `getFinishedActionResult()` could already see predecessor files (kept by 
`lightClone`), but rows were stripped when the tracker stored the 
`ActionResult`. The Join merge therefore required preserving rows in 
`ActionResult` as well.
   
   ## Test plan
   
   - [x] `ActionJoinTest` (including 
`joinMergesResultFilesAndRowsFromAllBranches`) passes
   - [x] Manual: parallel Create file a.txt / b.txt → Join → list result files 
→ both files present
   - [x] Manual: parallel pipelines copying 1 and 2 rows → Join → 3 result rows 
present
   - [x] Re-run a few times to confirm the merge is stable regardless of which 
branch claims the Join


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