jonyhy96 opened a new issue #491: URL: https://github.com/apache/pulsar-client-go/issues/491
#### Expected behavior If producer.Close are called,it will close within configured OperationTimeout #### Actual behavior producer.Close may block forever and won't time out after configured OperationTimeout #### Steps to reproduce Just run the perf program for a while and send SIGINT or ctrl+c to it. This situation may be triggered. This is because the callback of [producer.SendAsyc](https://github.com/apache/pulsar-client-go/blob/master/perf/perf-producer.go#L132) contains a send behavior on a channel which under the same scope with [stopCh](https://github.com/apache/pulsar-client-go/blob/master/perf/perf-producer.go#L145-L162). When we trigger producer.Close, if `case <-stop:` happens before `case latency := <-ch:`, it will block forever because it may be block at [here](https://github.com/apache/pulsar-client-go/blob/master/pulsar/producer_partition.go#L700) and [RequestOnCnx](https://github.com/apache/pulsar-client-go/blob/master/pulsar/internal/rpc_client.go#L146-L165) has no time out guarantee. #### System configuration **Pulsar version**: any -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: [email protected]
