Skip to content

[BUG] When reconnecting to the server, the old connection is not closed #676

@wenbingshen

Description

@wenbingshen

Expected behavior

When reconnecting to the server, the old connection should be closed.

Actual behavior

When reconnecting to the server, the old connection is not closed.

The following log progresses according to the timeline:

  1. First, there is an active channel and producer that is writing data to the broker
    image

  2. In the case that the previous connection has not been disconnected, the client sends an add producer operation for the same producerName
    image

  3. This addition operation comes from the same ip of the client, a different port connection, and the producerName is equal to the previous one
    image

  4. Remove the producer in ServerCnx from the pulsar server, Producer getting producer busy is removing existing producer from list pulsar#11804, this PR modified the equals method of the Producer, resulting in the inability to remove the producer from the topic's prodcuers map.
    image

  5. Then the old connection starts to be disconnected, and the producer status of the server on the connection is cleared
    image

image

  1. The new channel connection keeps retrying addProducer, and the producer is added successfully after closing the old connection.

Steps to reproduce

System configuration

Pulsar version: x.y

pulsar-client-go: 0.7.0
pulsar broker: 2.8.1

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions