Skip to content

Register Rdkafka::Consumer finalizer#841

Merged
mensfeld merged 1 commit intokarafka:masterfrom
jturkel:consumer-finalizer
Mar 24, 2026
Merged

Register Rdkafka::Consumer finalizer#841
mensfeld merged 1 commit intokarafka:masterfrom
jturkel:consumer-finalizer

Conversation

@jturkel
Copy link
Contributor

@jturkel jturkel commented Mar 23, 2026

Both Rdkafka::Admin and Rdkafka::Producer register finalizers in their constructor to ensure the native Kafka handle is closed when the object is GCed to prevent segfaults if the object hasn't been properly closed. This PR adds similar functionality to Rdkafka::Consumer. Rdkafka::Consumer#close already unregisters the finalizer so I'm assuming the missing finalizer registration was unintentional. I also removed the Rdkafka::Consumer#finalizer method which will never actually get invoked by the Ruby VM.

@mensfeld mensfeld self-requested a review March 24, 2026 08:38
@mensfeld mensfeld self-assigned this Mar 24, 2026
@mensfeld mensfeld added the consumer Consumer API related stuff label Mar 24, 2026
@mensfeld mensfeld merged commit a5223c0 into karafka:master Mar 24, 2026
106 of 108 checks passed
mensfeld added a commit that referenced this pull request Mar 24, 2026
- Remove dead `Admin#finalizer` instance method that captures `self` and
  could never work as a GC finalizer (matching Consumer cleanup from #841)
- Replace `after` block with `around`/`ensure` in admin specs to clear
  leaked handles from the registry, preventing a single test timeout or
  broker error from cascading failures to all subsequent tests
- Update CHANGELOG with PR #841 attribution (jturkel)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

consumer Consumer API related stuff

Development

Successfully merging this pull request may close these issues.

2 participants