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
If the broker goes away or I spin down the (standalone local) cluster, the producer enters a loop like the following and becomes unresponsive to sigint. It must be killed:
INFO[29795] [Connection closed] remote_addr="pulsar://localhost:6650"
INFO[29803] [Connecting to broker] remote_addr="pulsar://localhost:6650"
WARN[29803] [Failed to connect to broker.] error="dial tcp [::1]:6650: connect: connection refused" remote_addr="pulsar://localhost:6650"
INFO[29803] [Connection closed] remote_addr="pulsar://localhost:6650"
INFO[29819] [Connecting to broker] remote_addr="pulsar://localhost:6650"
WARN[29819] [Failed to connect to broker.] error="dial tcp [::1]:6650: connect: connection refused" remote_addr="pulsar://localhost:6650"
INFO[29819] [Connection closed] remote_addr="pulsar://localhost:6650"
WARN[29819] [Failed to lookup topic] error="connection error" producerID=1 producer_name=standalone-0-0 topic="persistent://tn/ns/topic"
INFO[29819] [Reconnecting to broker in 1m0s] producerID=1 producer_name=standalone-0-0 topic="persistent://tn/ns/topic"
INFO[29820] [Connecting to broker] remote_addr="pulsar://localhost:6650"
WARN[29820] [Failed to connect to broker.] error="dial tcp [::1]:6650: connect: connection refused" remote_addr="pulsar://localhost:6650"
This means it gets into a state where the send is ignoring the context. This may be occurring in the marked location in producer_partition.go below. I haven't had the time to research it yet, but it looks like a likely candidate.
Infinite reconnection caused the message sending timeout checking doesn't work? If so, it is an known bug
Background
The context passed to Send is actually not used, send timeout checking will be done before batch flush which drivered by flush ticker
When broker connection broken, partition producer blocked to reconnect until succeed, and further blocked it's eventloop goroutine, eventually there is no chance to check send timeout
This feature introduced in #394, and it's my mistake, I tried fixed in #460
I have a producer set up like the following:
If the broker goes away or I spin down the (standalone local) cluster, the producer enters a loop like the following and becomes unresponsive to sigint. It must be killed:
This means it gets into a state where the send is ignoring the context. This may be occurring in the marked location in producer_partition.go below. I haven't had the time to research it yet, but it looks like a likely candidate.
The text was updated successfully, but these errors were encountered: