Skip to content

Apply tracing to all lock uses.#19

Merged
Lyrenhex merged 1 commit intomainfrom
fix-dualchannel-deadlock
Feb 17, 2024
Merged

Apply tracing to all lock uses.#19
Lyrenhex merged 1 commit intomainfrom
fix-dualchannel-deadlock

Conversation

@Lyrenhex
Copy link
Copy Markdown
Owner

An issue was observed where, if the Memes & Nickname Announcements channels were the same, the nickname failure announcement would consistently trigger a deadlock.

The cause of this is not very logical to me, beyond appearing that the waiting write handle from the memes subsystem's New Message handler prevents additional read handles required by the nickname lottery error handling, thereby preventing execution. (Surely the read handles should be allowed to simply execute, not be blocked by the waiting write handle? Is it a queue...? I didn't think it was, but perhaps I'm wrong.)

This addresses the issue in this case by sharing the existing read handle to ensure that the function can finish (and thereby drop the read handle!).

An issue was observed where, if the Memes & Nickname Announcements channels were the same, the nickname announcement would consistently trigger a deadlock.

The cause of this is not very clear, beyond appearing that the waiting write handle from the memes subsystem's New Message handler prevents additional read handles required by the nickname lottery error handling, thereby preventing execution.

This addresses the issue in this case by sharing the existing read handle to ensure that the function can finish (and thereby drop the read handle!).
@Lyrenhex Lyrenhex merged commit 4ba3fed into main Feb 17, 2024
@Lyrenhex Lyrenhex deleted the fix-dualchannel-deadlock branch February 17, 2024 18:04
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant