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