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]

Reply via email to