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
The fork has now audited the public surface method by method, against its v0.6.0.0 release. Unsafe off the constructing thread: pauseIfRunning / resumeIfPaused and the close overloads share a check-then-set on the run state with no lock, so a pause racing a close can resurrect a closing consumer; subscribe is safe before the first poll and unsafe after; setLongPollTimeout writes a static. Safe: loop-end callback registration (fixed), getFailureCause, workRemaining, getPausedPartitionSize, the commit and wake-up requests. One internal class that claimed thread safety in its javadoc while reading under no lock has been fixed.
What clears the blocker on the fork: a per-method javadoc contract saying which threads may call what, an atomic run-state transition, and a concurrent test against a live instance. Exposing every Consumer API safely, the full ambition of feature #520: Thread safe User API exposure of ALL Consumer APIs #346, is a separate feature.
No date; the audit is the part that makes it actionable.
Activity
[-]Provide complete Parallel consumer multithreading[/-][+]Ensure all PC API's are thread safe[/+]astubbs commentedon Aug 5, 2026
Tracked in the maintained fork as astubbs#139, which carries a summary of this
issue and its current status there.
The Confluent-hosted version of this project is no longer maintained - its README says so.
Parallel Consumer itself continues in my fork: https://github.com/astubbs/parallel-consumer
Nothing in this repository is closed or changed by this comment.
astubbs commentedon Sep 18, 2026
Peter Fowler (@fowlerp-qlik) - a status from the maintained fork, where this is tracked as astubbs#139 and held as a 1.0 blocker:
pauseIfRunning/resumeIfPausedand thecloseoverloads share a check-then-set on the run state with no lock, so a pause racing a close can resurrect a closing consumer;subscribeis safe before the first poll and unsafe after;setLongPollTimeoutwrites a static. Safe: loop-end callback registration (fixed),getFailureCause,workRemaining,getPausedPartitionSize, the commit and wake-up requests. One internal class that claimed thread safety in its javadoc while reading under no lock has been fixed.ConsumerAPI safely, the full ambition of feature #520: Thread safe User API exposure of ALL Consumer APIs #346, is a separate feature.No date; the audit is the part that makes it actionable.