A terrible, horrible, no-good, very bad day at Slack
slack.engineering
A terrible, horrible, no-good, very bad day at Slack
1–10 of 282 posts
Re: A terrible, horrible, no-good, very bad day at Slack
#2[1] https://en.wikipedia.org/wiki/Alexander_and_the_Terrible,_Ho...
Re: A terrible, horrible, no-good, very bad day at Slack
#3> The program which synced the host list generated by consul template with the HAProxy server state had a bug. It always attempted to find a slot for new webapp instances before it freed slots taken up by old webapp instances that were no longer running. This program began to fail and exit early because it was unable to find any empty slots, meaning that the running HAProxy instances weren’t getting their state updated
Re: A terrible, horrible, no-good, very bad day at Slack
#4 The broken monitoring hadn’t been noticed partly because this system ‘just worked’ for a long time, and didn’t require any change.
Any experience on how to deal with it? Who watches the watchers?Re: A terrible, horrible, no-good, very bad day at Slack
#5Re: A terrible, horrible, no-good, very bad day at Slack
#6The title is an allusion to a popular children’s book[1]. I’m assuming that an automated algorithm pulled the “very;” hopefully the mods will consider restoring it. [1] https://en.wikipedia.org/wiki/Alexander_and_the_Terrible,_Ho...
Re: A terrible, horrible, no-good, very bad day at Slack
#7However, as far as I can read it, they have somewhat different views on the root cause?
"Soon, it became clear we had stale HAProxy configuration files, as a result of linting errors preventing re-rendering of the configuration."
vs.
"The program which synced the host list generated by consul template with the HAProxy server state had a bug. It always attempted to find a slot for new webapp instances before it freed slots taken up by old webapp instances that were no longer running. This program began to fail and exit early because it was unable to find any empty slots, meaning that the running HAProxy instances weren’t getting their state updated. As the day passed and the webapp autoscaling group scaled up and down, the list of backends in the HAProxy state became more and more stale."
Maybe a combination of the two?
Re: A terrible, horrible, no-good, very bad day at Slack
#8The title is an allusion to a popular children’s book[1]. I’m assuming that an automated algorithm pulled the “very;” hopefully the mods will consider restoring it. [1] https://en.wikipedia.org/wiki/Alexander_and_the_Terrible,_Ho...
Or Timbuktu.
Re: A terrible, horrible, no-good, very bad day at Slack
#9Sorry, I’m not very familiar with the terminology here; what is the “main webapp tier”?
Re: A terrible, horrible, no-good, very bad day at Slack
#10I've just been bitten by this too: The broken monitoring hadn’t been noticed partly because this system ‘just worked’ for a long time, and didn’t require any change. Any experience on how to deal with it? Who watches the watchers?