apache / apache/pulsar-client-go

[bug] ProducerBusy

Open
#1,032 1 comment 0 reactions 0 assignees View on GitHub
Dominant language
Go
Stars
745
Forks
389
Avg merge
3d 20h
Merged PRs (30d)
3

Description

Pulsar clients periodically call the internalCreatePartitionsProducers method, which we found to be prone to timeouts, triggering the checkServerError method to close the connection and trigger producer reconnection. Since the Pulsar broker is not able to detect the disconnection of the client, the client frequently receives an error message stating that "xxx is already connected to the topic" upon reconnection attempts. This situation can last for several minutes, until the server closes the connection due to keepalive timeout, after which the client can reconnect.

#### Expected behavior
The invocation of internalCreatePartitionsProducers should not affect the connection of producers.

#### Actual behavior
The invocation of internalCreatePartitionsProducers causes all connections to be disconnected, resulting in producers being unable to connect to the broker for a long time.

Contributor guide

Open the contributing guide

Research direction

Trace internalCreatePartitionsProducers and checkServerError in the Go client to determine how a timeout closes producer connections. Reproduce or inspect the reconnection path described in the issue, then verify that partition-producer creation no longer disconnects existing producers and that reconnection does not report an already-connected producer.

Written by the indexing model from the issue text.

Assessment

Tech stack
go
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.