Live data from Hacker News

We built a self-healing system to survive a concurrency bug at Netflix

pushtoprod.substack.com

51–60 of 184 posts

Re: We built a self-healing system to survive a concurrency bug at Netflix

#51

My workplace currently has a similar problem where a resource leak can be greatly increased with certain unpredictable/unknown traffic conditions. Our half-day workaround implementation was the same thing, just cycle the cluster regularly automatically. Since we're running on AWS, we just double the size of the cluster, wait for the instances to initialize, then rapidly decommission the old instances. Every 2 hours.…

There's nothing as permanent as a temporary solution.

Re: We built a self-healing system to survive a concurrency bug at Netflix

#52

Earlier quoted context omitted.

"It's shockingly stable." You're running a soup. I'm not sure if this is satire or not. This reminds me of using a plug-in light timer to reboot your servers because some java program eats all the memory.

or installing software to jiggle the mouse every so often so that the computer with the spreadsheet that runs the company doesn't go to sleep

Still infinitely cheaper than rebuilding the spreadsheet tbh.

Re: We built a self-healing system to survive a concurrency bug at Netflix

#54

My workplace currently has a similar problem where a resource leak can be greatly increased with certain unpredictable/unknown traffic conditions. Our half-day workaround implementation was the same thing, just cycle the cluster regularly automatically. Since we're running on AWS, we just double the size of the cluster, wait for the instances to initialize, then rapidly decommission the old instances. Every 2 hours.…

> It's shockingly stable. So much so that resolving the root cause isn't considered a priority and so we've had this running for months.

I don't know why my senses tell me that this is wrong even if you can afford it

Re: We built a self-healing system to survive a concurrency bug at Netflix

#55

My workplace currently has a similar problem where a resource leak can be greatly increased with certain unpredictable/unknown traffic conditions. Our half-day workaround implementation was the same thing, just cycle the cluster regularly automatically. Since we're running on AWS, we just double the size of the cluster, wait for the instances to initialize, then rapidly decommission the old instances. Every 2 hours.…

There's nothing as permanent as a temporary solution.

Production environments are full of PoCs that were meant to be binned

Re: We built a self-healing system to survive a concurrency bug at Netflix

#57
This reminds me of a couple startups I knew running Node.js circa ~2014, where they would just restart their servers every night due to memory issues.

iirc it was mostly folks with websocket issues, but fixing the upstream was harder

10 years later and specific software has gotten better, but this type of problem is certainly still prevalent!

Re: We built a self-healing system to survive a concurrency bug at Netflix

#58
Title is grossly misleading.

That Netflix had already built a self-healing system means they were able to handle a memory leak by killing random servers faster than memory was leaking.

This post isn't about how they've managed that, it's just showing off that their existing system is robust enough that you can do hacks like this to it.

Re: We built a self-healing system to survive a concurrency bug at Netflix

#60

My workplace currently has a similar problem where a resource leak can be greatly increased with certain unpredictable/unknown traffic conditions. Our half-day workaround implementation was the same thing, just cycle the cluster regularly automatically. Since we're running on AWS, we just double the size of the cluster, wait for the instances to initialize, then rapidly decommission the old instances. Every 2 hours.…

People will argue you should spend time on something else once you put bandaid on a wooden leg.

You should do proper risk assessment, such bug may be leveraged by an attacker, that may actually be a symptom of a running attack. That may also lead to data corruption or exposure. That may mean some part of the system are poorly optimised and over-consuming resources, maybe impacting user-experience. With a dirty workaround, your technical debt increases, expect more and more random issues that requires aggressive "self-healing".

Post reply on HN