You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This stall does not recover. It appears to occur when the Q2 limit is hit before the PN_RECEIVED arrives from the endpoint. My assumption is that since the buffers sent prior to hitting Q2 do not have their refcounts decremented - by design so we can resent them if necessary - they still remain in the message after the PN_RECEIVED arrives and are never released. This prevents the Q2 low-water mark from ever being achieved.
The text was updated successfully, but these errors were encountered:
Status update: this issue appears to have a couple of underlying causes.
There is a bug in how the qd_buffer_t reference counts are managed that causes the stall when Q2 is hit
Aborting the released outgoing delivery is not properly detected in some cases and the abort is ignored. This leaves the released outgoing delivery stalled on the outgoing link. This prevents the outgoing link from being returned to the streaming link pool and the associated message's qd_buffer_t's do not get freed until the outgoing connection is dropped.
I think I have a simple fix for the first problem. The second problem is more complex. We've experienced "flakey" failures of the CI abort functionality tests, so there's something in the abort implementation that needs fixing.
This stall does not recover. It appears to occur when the Q2 limit is hit before the PN_RECEIVED arrives from the endpoint. My assumption is that since the buffers sent prior to hitting Q2 do not have their refcounts decremented - by design so we can resent them if necessary - they still remain in the message after the PN_RECEIVED arrives and are never released. This prevents the Q2 low-water mark from ever being achieved.
The text was updated successfully, but these errors were encountered: