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: The named return variable 'result' was being mutated after the deferred function was set up, leading to an incorrect final value being returned.
The fix: Ensure that the named return variable is only set once, after all operations including deferred functions are complete.
Remember: Deferred functions in Go execute in LIFO order and can capture and use variables defined before them, leading to unexpected results if those variables are mutated afterward.
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/fc4fb32b-f8d1-4fb1-9afd-1514e8c116e4" title="Debugging challenge: Unexpected Result from Resource Cleanup in Go Function" 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/fc4fb32b-f8d1-4fb1-9afd-1514e8c116e4">TryBugHunt</a></p>