mattcasters commented on PR #7745: URL: https://github.com/apache/hop/pull/7745#issuecomment-5157689087
Thanks for the careful review and for the clear split between “approve the reorder” and “here is a related but separate concern.” ### Interpretation You are **not** saying that #7745 already fixes the non-blocking `offer` path — you are calling out **pre-existing** behaviour in the same area, and you correctly note that it should **not** block this PR. Agreed. ### Technical take The asymmetry is real: - `putRowWait` → timed `getArray.offer(..., time, tu)` - `setDone` → non-blocking `offer(...)` with the return value ignored Under the **current** design (`BATCHSIZE = 2` and only two physical buffers), a partial flush in `setDone` requires `inputBuffer != null`, so at most one other buffer can be in `getArray`. Capacity is 2, so that non-blocking offer should always have room today. So this looks more like **fragile / accidental asymmetry** than a second confirmed reproduction of #7742. Worth hardening anyway (timed offer + no silent failure), and while we are there we should also fix a stronger neighbour: `putRowWait` always nulls `inputBuffer` even when the timed offer returns `false`, which can drop a full batch under backpressure and leak a buffer out of the pool. ### Follow-up Tracked separately so we can merge #7745 scoped to the done-flag ordering fix: → **#7755** — `BlockingBatchingRowSet`: harden batch enqueue (ignored offer results) Happy to take that as a small follow-up PR (or review one if you prefer to send it). -- 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]
