fsprojects / pulsar-client-dotnet

Apache Pulsar native client for .NET (C#/F#/VB)
MIT License
301 stars 47 forks source link

Deadlock in UnackedMessageTracker? #212

Closed vaalkor closed 1 year ago

vaalkor commented 2 years ago

Hi there! I seem to be encountering a consumer hang when running this test project: https://github.com/vaalkor/PulsarTest

It hangs after printing this a few times: warn: PulsarLogger[0] mt/consumer(0, b016a) UnackedTracker 230 messages have timed-out

It hangs with pulsar.client 2.9 onwards. If I downgrade to 2.8.1 there's no hang. Turning off EnableRetry on the consumer changes the behaviour a lot. I'm not really sure what's happening here but I'd appreciate if you could shed any light on the matter. Thanks!

I'm running pulsar in docker and I've tried it with 2.8.3, 2.9.3, 2.10.1 and they all seem to behave similarly.

Lanayx commented 2 years ago

Hi! Thank you for reporting the issue. I'll look into the issue within several days. In 2.9 there was a major change in task library, this might be the cause. Right now task builders are context-sensitive, and we'll be able to move to context insensitive versions soon, since the fix landed 4 days ago. So once new fsharp compiler version is out (.net 7 rc2) , I'll release the version of Pulsar.Client with context-insensitive tasks anyway, and we'll be able to test your case again - will it help or not.

vaalkor commented 2 years ago

Interesting. That sounds like a plan. Thanks!

Lanayx commented 2 years ago

@vaalkor I think I've found the issue, published 2.10.3 with the fix, please test if it works for you

Lanayx commented 1 year ago

Closing as abandoned

vaalkor commented 1 year ago

Hi, sorry I didn't reply to this. Getting pulled in many directions at work and forgot about it! I did run it again and the deadlock seemed to be gone but things seemed quite slow. I didn't look too deeply into it though because of other concerns. I will have to do some proper testing and get back to you.

Lanayx commented 1 year ago

@vaalkor I see, you are welcome to create another issue about the slowness concern.