apache / apache/pulsar-client-cpp

Shared consumers do not receive messages in C++ and acknowledged messages get redelivered

Open
#84 3 comments 0 reactions 0 assignees View on GitHub
Dominant language
C++
Stars
71
Forks
90
Avg merge
2h 33m
Merged PRs (30d)
3

Description

When using shared subscriptions with the C++ client we see the following issues:

* The consumers stop consuming silently after a period of time, without any obvious reasons (e.g. connection failure) or any unusual log messages. The issue seems to happen randomly. Recreating the consumers with the same parameters seems to fix this issue for a while. We are experiencing this issue both using the synchronous and the async APIs. The topic is non-partitioned persistent topic. The server is a standalone server. We only see this problem with shared consumers, it doesn't seem to happen if we change to exclusive.

* Acknowledged messages get redelivered to shared consumers in C++ after subscription. It seems to happen both with synchronous and async acknowledgment. The API docs on acknowledge() states that acknowleded messages should not be redelivered.

**To Reproduce**
Create shared consumers in C++ for a topic and call receive. The problem seems to happen randomly but relatively frequently. It does not occur with exclusive consumers.

**Expected behavior**
* At least one of the shared consumers should receive each message.
* Acknowledged messages should not be redelivered.

**Desktop (please complete the following information):**
- RedHat 7.x

Contributor guide

Open the contributing guide

Research direction

Start with the C++ shared-consumer flow described in the issue, covering both synchronous and asynchronous receive and acknowledge calls. Reproduce it on a non-partitioned persistent topic with shared consumers, compare against exclusive consumers, and verify that every message is delivered to at least one consumer without acknowledged messages being redelivered.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp
Domain
distributed-systems
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.