A flaky test exposed a Redis client use-after-free
46 points
1 day ago
| 4 comments
| buildkite.engineering
| HN
toast0
23 hours ago
[-]
> Harder still is when the cause of the bug happens prior to its manifestation.

I've yet to debug a big where the manifestation happens prior to the cause... Sounds even harder. :p

reply
lelanthran
22 hours ago
[-]
> I've yet to debug a big where the manifestation happens prior to the cause... Sounds even harder. :p

UB in C++ can have the manifestation occur prior to the cause :-/

reply
StilesCrisis
17 hours ago
[-]
Paragraphs and paragraphs of shaggy-dog setup, then "a coworker enabled ASAN and reported a bug [here]" with no elucidation. Disappointing.
reply
serious_angel
1 day ago
[-]
Thank you very much! This is great read! Though, no actual steps mentioned, including the:

> From this, he ascertained that the exception was triggered by a call to the C function memmove. While the source and destination addresses for this call looked sane, the size field was set to...

I do get the most of these stated, but it would be awesome to know more about how he did actually find it, and with what toolset. Was is gdb, Valgrind, JetBrains, IDA Pro, or some another general/complex dump viewer/toolset?

And, the interactive miracle, at the top of the website is freaking marvelous... It reminded me of the articles of the fluid simulation algorithms of Yusuke Endoh! Heartfelt gratitude to the developer, the artist who implemented it!

Apparently, behind the scene, the fluid colors are contained in an array where every single color has a defined meaning!

     // categories in STACK order: index 0 at the floor → 4 at the surface
     const CATS = [
       { key: "Code", rgb: [133, 232, 157] },
       { key: "Craft", rgb: [179, 146, 240] },
       { key: "Lessons", rgb: [249, 117, 131] },
       { key: "Story", rgb: [255, 171, 112] },
       { key: "Opinion", rgb: [158, 203, 255] },
     ];
reply
pinzonjulian
1 day ago
[-]
> And, the interactive miracle, at the top of the website is freaking marvelous

That's the work of https://x.com/CoreyGinnivan.

reply
serious_angel
1 day ago
[-]
Roger that! Thank you for the reference to the Artist!
reply
DrNemski
1 day ago
[-]
Thanks! This happened two years ago and it took me quite some time to piece together all the information of when it happened. I will see if I can get the original gdb output and add it to the blog post.
reply
serious_angel
1 day ago
[-]
Roger that! I'll look forward for an update, and hope to catch the moment and learn from it!

Meanwhile, I do wish you, and the whole team, success, stability, and peace!

reply
DrNemski
21 hours ago
[-]
Thanks! I’ve added a screenshot of the gdb output to the blog
reply
VerifiedReports
1 day ago
[-]
That makes no grammatical sense.
reply
paulannesley
1 day ago
[-]
A (flaky test) exposed a (Redis client) use-after-free [bug]
reply
Retr0id
1 day ago
[-]
Works on my machine. (Even though HN's filters removed the leading "How")
reply
VerifiedReports
1 day ago
[-]
I don't think you're replying to the right comment, since I didn't mention anything working.
reply
Retr0id
1 day ago
[-]
The "machine" in question is my brain (or at least, the part of it that parses grammar).
reply