You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pulsar.apache.org by GitBox <gi...@apache.org> on 2020/10/01 02:47:00 UTC

[GitHub] [pulsar-client-go] merlimat opened a new pull request #375: Fixed deadlock in DLQ ack processing

merlimat opened a new pull request #375:
URL: https://github.com/apache/pulsar-client-go/pull/375


   ### Motivation
   
   When acking the original message, after sending to the DLQ, there is a potential deadlock if the producer is sharing the same connection as the consumer.  The problem is we're trying to write on the connection event channel from the same go-routine that's handling the connection.
   
   ```
   1 @ 0x4038f00 0x400774d 0x4007515 0x4606e8d 0x4613487 0x4603456 0x461cf4c 0x4619ab8 0x45f8bde 0x45f805e 0x45f737d 0x45fed61 0x4068bb1
   #	0x4606e8c	github.com/apache/pulsar-client-go/pulsar.(*partitionConsumer).AckID+0x25c			/Users/mmerli/go/src/github.com/apache/pulsar-client-go/pulsar/consumer_partition.go:279
   #	0x4613486	github.com/apache/pulsar-client-go/pulsar.trackingMessageID.Ack+0x106				/Users/mmerli/go/src/github.com/apache/pulsar-client-go/pulsar/impl_message.go:55
   #	0x4603455	github.com/apache/pulsar-client-go/pulsar.(*consumer).AckID+0x165				/Users/mmerli/go/src/github.com/apache/pulsar-client-go/pulsar/consumer_impl.go:371
   #	0x461cf4b	github.com/apache/pulsar-client-go/pulsar.(*dlqRouter).run.func1+0x19b				/Users/mmerli/go/src/github.com/apache/pulsar-client-go/pulsar/dlq_router.go:104
   #	0x4619ab7	github.com/apache/pulsar-client-go/pulsar.(*partitionProducer).ReceivedSendReceipt+0x3a7	/Users/mmerli/go/src/github.com/apache/pulsar-client-go/pulsar/producer_partition.go:510
   #	0x45f8bdd	github.com/apache/pulsar-client-go/pulsar/internal.(*connection).handleSendReceipt+0xed		/Users/mmerli/go/src/github.com/apache/pulsar-client-go/pulsar/internal/connection.go:599
   #	0x45f805d	github.com/apache/pulsar-client-go/pulsar/internal.(*connection).internalReceivedCommand+0x1cd	/Users/mmerli/go/src/github.com/apache/pulsar-client-go/pulsar/internal/connection.go:518
   #	0x45f737c	github.com/apache/pulsar-client-go/pulsar/internal.(*connection).run+0x33c			/Users/mmerli/go/src/github.com/apache/pulsar-client-go/pulsar/internal/connection.go:378
   #	0x45fed60	github.com/apache/pulsar-client-go/pulsar/internal.(*connection).start.func1+0x70		/Users/mmerli/go/src/github.com/apache/pulsar-client-go/pulsar/internal/connection.go:231
   ```
   


----------------------------------------------------------------
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:
users@infra.apache.org



[GitHub] [pulsar-client-go] srkukarni merged pull request #375: Fixed deadlock in DLQ ack processing

Posted by GitBox <gi...@apache.org>.
srkukarni merged pull request #375:
URL: https://github.com/apache/pulsar-client-go/pull/375


   


----------------------------------------------------------------
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:
users@infra.apache.org