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
{{ message }}
Repository navigation
Possible persistent handle leak when producing with opaque and no delivery callback #1147
So a successfully enqueued message with opaque can bypass both cleanup paths:
it was accepted by librdkafka, but no delivery report is queued to release the Nan::Persistent.
Suggested fix: reclaim message.msg_opaque() even when there are no JS delivery
callbacks, preferably on the Node/V8 thread. Another option is to avoid
allocating the persistent when no delivery callback path can ever expose it.
Related: #953 (closed) reported the sibling case — opaque leaking when produce() itself errors. That synchronous enqueue-error path is now cleaned up
(the if (error_code != 0 && opaque) { ...delete... } block above). This report
covers the remaining path: a message that is successfully enqueued while no JS
delivery callback is registered, where Delivery::dr_cb early-returns before a DeliveryReport is built, so Flush() never releases the persistent.
Activity