Time: 0:00
Test a custom input to verify an edge case (e.g. empty lists, negative numbers, duplicates).
This bug belongs to the async and race conditions pattern
A missing await, unbuffered channel deadlocks, ConcurrentModificationException, and data races under load.
What went wrong: An mpsc channel only closes when all Sender (tx) handles are dropped. Because the main thread retained the original tx, the for msg in rx iterator hung forever waiting for more messages.
The fix: Explicitly call drop(tx) in the main thread after spawning the worker thread.
Remember: For an mpsc receiver loop to terminate, every clone of the transmitter must be dropped.
The pattern behind it: async and race conditions.
Paste this into any web page or blog post. Visitors fix the bug right there, in their browser.
<iframe src="https://trybughunt.com/embed/50ab059f-c371-4e0d-bbe5-9f236296c99b" title="Debugging challenge: Channel receiver hangs due to retained sender clone" width="100%" height="580" loading="lazy" style="border:1px solid #d4d4d8;border-radius:12px;max-width:760px"></iframe>
<p style="font-size:14px">Debugging challenge from <a href="https://trybughunt.com/challenges/50ab059f-c371-4e0d-bbe5-9f236296c99b">TryBugHunt</a></p>