Live data from Hacker News

A Google Cloud support engineer solves a tough DNS case

cloud.google.com

41–50 of 283 posts

Re: A Google Cloud support engineer solves a tough DNS case

#41
post #22

This is a fun debugging story, but is a great example why servers should be cattle not pets. Having trouble with a VM? Blow it up and get a fresh one. Still having trouble? The provisioning steps are codified, you can walk through them and find the one that causes the issue.

That's awfully convenient, and I can't deny having done this, but it's also a great way to never understand what went wrong.

Re: A Google Cloud support engineer solves a tough DNS case

#42
post #4

that’s a pretty good and detailed explanation. 2 things: 1) i hope they have a runbook for situations like this (ie the support engineer does not have to figure all this on the fly) 2) the customer should have provides more details and maybe should have thought of the tweaks they made (classic solution is to compare 2 instances - one works one does not)

1) you cannot have a runbook for everything, and even if you have a runbook you the best you could have found in this case is that something weird was happening in the VM. The setting had an insanely big value but it was accepted by the kernel, so you would assume it was a valid one. 2) the customer provided a huge amount of details, but it is usually very hard to explain what did you change from the base image. Most…

i’m not saying a runbook will catch everything. but it will give you a chance to solve the problem quicker.

Re: A Google Cloud support engineer solves a tough DNS case

#43
post #41
post #22

This is a fun debugging story, but is a great example why servers should be cattle not pets. Having trouble with a VM? Blow it up and get a fresh one. Still having trouble? The provisioning steps are codified, you can walk through them and find the one that causes the issue.

That's awfully convenient, and I can't deny having done this, but it's also a great way to never understand what went wrong.

Re-provisioning a failed server to solve the problem and taking a deep dive to find the root cause are not mutually exclusive. Essentially all VM software will allow you to snapshot/backup/clone the VM for later analysis, while also fixing your production environment _now_.

Re: A Google Cloud support engineer solves a tough DNS case

#44

> After another spin around the world the case comes back to our team. So basically, follow the sun doesn't work for hard problems? Can you really say the people are working on this 24/7 if progress is only made in one time zone?

Follow the sun has a lot of overhead: imagine having to dump the engineers' thoughts and current hypothesis and load them in the brain of the next oncallers. Also it only really works if also the customer is active 24/7, as often you might need the customer to perform some action on their systems. Once the time pressure is off you might get better results dedicating the engineer who is best suited to work on the case (both from the point of view of the timezone and skill set) and give them the time needed to troubleshoot the issue.

Re: A Google Cloud support engineer solves a tough DNS case

#46
post #22

This is a fun debugging story, but is a great example why servers should be cattle not pets. Having trouble with a VM? Blow it up and get a fresh one. Still having trouble? The provisioning steps are codified, you can walk through them and find the one that causes the issue.

If a freshly provisioned VM doesn't have the same issue, then they're not using automated configuration management (Puppet, Chef, or similar) for these settings, and then they have a more serious problem, as nothing in their runtime environment is "codified" or predictable.

plenty of issues are not deterministic, even with 100% of everything managed by configuration management software.

Re: A Google Cloud support engineer solves a tough DNS case

#47
post #31

if (rmem > (size + sk->sk_rcvbuf)) goto uncharge_drop; What is rmem in this case? I'm a bit confused as to why it is written that way. This drops the packet right when it overflows the buffer?

It's not very literate, is it? rmem is initially the sk_backlog.rmem_alloc field of struct sock. There is no comment in net/sock.h what this field might mean. People who modify this function just have to guess. I also appreciate that this function adds |size| to rmem_alloc, tests for limits, then later it subtracts |truesize| from rmem_alloc. This happens to seem correct, but it's just asking for someone to accidentally screw up the accounting in a later change. Reading this function only reinforces my view of Linux code quality.

Re: A Google Cloud support engineer solves a tough DNS case

#48

> they use raw sockets! Raw sockets are different than normal sockets: they bypass iptables But this bugreport says raw sockets would be filtered by the OUTPUT chain of iptables: https://bugzilla.redhat.com/show_bug.cgi?id=1269914#c4 Is that accurate across distros? It does make sense for some socket types, like device sockets, to not be routed through iptables.

I think that bug report is misleading. Raw sockets do bypass iptables but they still go through ebtables. They hook in at the ebtables NAT OUTPUT chain. See the diagram here https://erlerobotics.gitbooks.io/erle-robotics-introduction-...

Re: A Google Cloud support engineer solves a tough DNS case

#49

Earlier quoted context omitted.

1) you cannot have a runbook for everything, and even if you have a runbook you the best you could have found in this case is that something weird was happening in the VM. The setting had an insanely big value but it was accepted by the kernel, so you would assume it was a valid one. 2) the customer provided a huge amount of details, but it is usually very hard to explain what did you change from the base image. Most…

i’m not saying a runbook will catch everything. but it will give you a chance to solve the problem quicker.

I totally agree, but keep in mind that it is an iterative process: you have a case, you apply the runbook/playbook you have, if they are not enough you use your skill/knowledge to solve the case, then you update the playbooks.
Post reply on HN