disgo: Deadlock Bug

After testing I found that rateLimiterImpl.doCleanup will delete expired buckets. Webhook limits 30 requests per minute. It will cause high concurrency. Because b.mu.CLock is locked. However, the deletion of expired buckets causes the previous request UnlockBucket to fail. Subsequent requests will be deadlocked.

About this issue

  • Original URL
  • State: closed
  • Created 2 years ago
  • Comments: 39 (39 by maintainers)

Most upvoted comments

After I changed to the tryLock version, I replaced the services of some online nodes. Let’s see if the above two problems will still occur.

I can change the webhook push of some online businesses to the TryLock version to test.