News: 1718004609

  ARM Give a man a fire and he's warm for a day, but set fire to him and he's warm for the rest of his life (Terry Pratchett, Jingo)

Seething CEO shoulder surfed techie after mistaken takedown of production server

(2024/06/10)


Who, Me? Hold your nose, gentle reader, as we dive headlong into the bucket of ice water that is the start of the working week. But fear not, for The Reg is here to warm your innards with a dose of Who, Me? – our weekly tale of technical shenanigans gone wrong.

This week our hero is a reader we'll Regomize as "Emily" who worked at a stock trading firm as an application engineer – but, as Emily points out, when she started there the company was small enough that the tech team needed to know how to do just about everything. So the job title is more or less symbolic.

The firm at which Emily worked acquired a global unlimited license for its trading software, meaning it could run the code on as many servers as it wished.

[1]

The trick was that each license had to be tied to a hostname, and the hostnames had to be registered with the vendor. And while the license was unlimited, it wasn’t perpetual. Occasional renewals were therefore necessary.

[2]

[3]

And that got messy when renewals were requested for the wrong hostname, causing emails to bounce back and forth to the vendor in an attempt to activate the right licence on the right host.

The situation became so tiresome that someone had the bright idea to apply one name to all the servers. And the name that was chosen was “server”.

[4]

That may sound daft, but it’s worth stressing at this point that this was a stock trading firm, so time was very much of the essence. A day when a server was not operating because of an expired license cost money. While calling every server “server” seemed fraught with danger, there was a certain logic at work.

The firm’s tech team also felt that it could differentiate each box thanks to info in its internal DNS table. And the vendor didn’t care what its clients called their servers.

Emily joined shortly after the shift to all the hostnames being called "server".

[5]

Part of her task was to fine tune the trading software. You know the old saying "there's time, money, and quality, pick any two"? Well, that's kind of how this software worked. On the one hand, time was of the above mentioned essence – so the software could be tuned to be very, very responsive. But that had a cost in terms of stability.

And we've already mentioned what happens when there's downtime.

[6]Screwdrivers: is there anything they can't do badly? Maybe not

[7]A thump with the pointy end of a screwdriver will fix this server! What could possibly go wrong?

[8]Techie invented bits of the box he was fixing, still botched the job

[9]One bank's brilliant upgrade was another bank's crash

So Emily was tasked with tweaking instances of the trading software, seeking that sweet spot between speed and stability. Typically, she told Who, Me? she would have as many as 50 instances open at once in the test environment – each one easily identifiable to the trained observer, but all called "server".

And so it was during one of these tweaking sessions that she made an adjustment, then restarted the server to test the change.

The silence that followed was chilling. It was followed by a great deal of yelling, which confirmed Emily's worst fear: the server she had just restarted was not in the test environment.

The CEO even came running in, to find out what on Earth had just happened to stop the trading. And here is where the story is perhaps not quite a case of "Who, Me?" – because the ring of angry traders surrounding the red-faced application engineer on the IT desk made it very clear whose fault it all was.

What's worse, there was absolutely nothing Emily could do to speed up the restart process. While she waited for the "ping" to indicate success (the longest few minutes she had experienced before or since), it looked to all the world (and the CEO) like she was doing absolutely nothing about the crisis she had triggered.

A lesson was learned out of it all, thankfully. Emily's next task was to ensure that each server's prompt and background clearly identified it at a glance – including whether it was in production or test.

We're always on the hunt for tales like Emily's – whether you got away with your goof or not, we want to know. [10]Click here to send an email to Who, Me? and we may immortalize your shenanigans one Monday morn. ®

Get our [11]Tech Resources



[1] https://pubads.g.doubleclick.net/gampad/jump?co=1&iu=/6978/reg_software/front&sz=300x50%7C300x100%7C300x250%7C300x251%7C300x252%7C300x600%7C300x601&tile=2&c=2ZmbOxcm1Pxh4-YSwxomY0AAAAE0&t=ct%3Dns%26unitnum%3D2%26raptor%3Dcondor%26pos%3Dtop%26test%3D0

[2] https://pubads.g.doubleclick.net/gampad/jump?co=1&iu=/6978/reg_software/front&sz=300x50%7C300x100%7C300x250%7C300x251%7C300x252%7C300x600%7C300x601&tile=4&c=44ZmbOxcm1Pxh4-YSwxomY0AAAAE0&t=ct%3Dns%26unitnum%3D4%26raptor%3Dfalcon%26pos%3Dmid%26test%3D0

[3] https://pubads.g.doubleclick.net/gampad/jump?co=1&iu=/6978/reg_software/front&sz=300x50%7C300x100%7C300x250%7C300x251%7C300x252%7C300x600%7C300x601&tile=3&c=33ZmbOxcm1Pxh4-YSwxomY0AAAAE0&t=ct%3Dns%26unitnum%3D3%26raptor%3Deagle%26pos%3Dmid%26test%3D0

[4] https://pubads.g.doubleclick.net/gampad/jump?co=1&iu=/6978/reg_software/front&sz=300x50%7C300x100%7C300x250%7C300x251%7C300x252%7C300x600%7C300x601&tile=4&c=44ZmbOxcm1Pxh4-YSwxomY0AAAAE0&t=ct%3Dns%26unitnum%3D4%26raptor%3Dfalcon%26pos%3Dmid%26test%3D0

[5] https://pubads.g.doubleclick.net/gampad/jump?co=1&iu=/6978/reg_software/front&sz=300x50%7C300x100%7C300x250%7C300x251%7C300x252%7C300x600%7C300x601&tile=3&c=33ZmbOxcm1Pxh4-YSwxomY0AAAAE0&t=ct%3Dns%26unitnum%3D3%26raptor%3Deagle%26pos%3Dmid%26test%3D0

[6] https://www.theregister.com/2024/06/03/who_me/

[7] https://www.theregister.com/2024/05/27/who_me/

[8] https://www.theregister.com/2024/05/20/who_me/

[9] https://www.theregister.com/2024/05/13/who_me/

[10] mailto:whome@theregister.com

[11] https://whitepapers.theregister.com/



Calling all servers "server"

Michael H.F. Wilkinson

is a bit like the situation on Sqornshellous Zeta, where all mattresses are called "Zem". Makes it impossible for them to find out which one has been captured and killed.

I'd better be going. Mine's the one with the HHGTTG radioplay cassette tapes in the pocket

Re: Calling all servers "server"

Korev

You could also give each server the IP address 42.42.42.42

Re: Calling all servers "server"

Unoriginal Handle

The answer is South Korea Telecom.

Mine's the one with the complete Internet DNS registry printed out and bound, in the pocket ...

Korev

I'm pleased they didn't appear to punish Emily to server right...

The commentard formerly known as Mister_C

The punnish meant that she remained in servitude.

Korev

Hopefully the server didn't have to wait too long

Wanders off to wash mouth out with soap after making a pun in American "English"...

Labelling production

ColinPa

A colleague of mine went to a customer post mortem as to why they lost their primary server during production. It turned out that they did not identify which system/screen was production and which which was test, and someone had shutdown production by accident.

The top recommendation was to colour code the production systems so this could not happen again.

He went back 6 months later for another reason, and spotted they had not enabled the colour coding of production.

He pointed this out (forcefully!) and the customer quietly ignored it (this was Asia).

Two weeks later he was on a plane again to do another post-morten on why they had lost heir primary server during production - again!

This meeting was pretty short. There was one chart (so he said) saying "do the recommendations from 6 months ago"

I heard heads rolled - and he was not invited back again (which pleased him)

Re: Labelling production

Killfalcon

It's such a silly seeming thing ("make production red"), but colour coding works astonishingly well. Even if you don't consciously notice it, opening the wrong environment _feels_ off.

Might be one of the best time-returns there is in terms of preventing downtime. Simple to implement, simple to explain, basically no cost at all.

Re: Labelling production

Tim99

^This^. Many years ago I saw that a colleague had set a Windows admin account screen background to a bright red. I thanked them, stole the idea, and have used it on everything "admin" ever since.

Re: Labelling production

Korev

It's such a silly seeming thing ("make production red"), but colour coding works astonishingly well. Even if you don't consciously notice it, opening the wrong environment _feels_ off.

Just make sure that the colours you choose are colourblind safe

Re: Labelling production

blackcat

Long ago I worked for a very small company and we had a windows server and a couple of linux servers in a room on a KVM. The person who looked after the windows server had a bad habit of giving the keyboard the three fingered salute to wake the server from screen powersave. Until one day the KVM had been left on one of the linux servers, which promptly rebooted itself.

Avon calling

that one in the corner

The only way to tame a server-LAN.

Re: Avon calling

Chloe Cresswell

Upvote, standard by 2

License tied to host name?

Bebu

I thought the classic flex lmgrd licenses tied to the hostid (normally one of the host's ethernet interface's MAC address) was pretty feeble (and easily subverted.)

I assume Emily's software used gethostname(3)/uname(3) etc to retrieve the host name rather than retrieving the host's IP address(es) and doing a reverse (IN PTR) lookup(s) for the (FQ) host name. Either way fairly easy to subvert just for the applications benefit. :)

DEC's lmf and hardware dongles were the only two that I declare no contest.

Always had (more than) enough licenses but trying to move/modify the licenses, typically when a motherboard or ethernet interface has been replaced, makes having teeth pulled seem pleasurable.

The main problem is that application developers know SFA™ about the licensing code which was normally purchased (licensed) as a secret sauce library that was added to the application code without further thought or understanding.

The license file generation application from the secret sauce package is given to support with even less understanding so that new licenses or renewals are mostly fine but anything else gets duck shoved back on to the developers who likely being a new crop have even less idea again.

The application's vendor usually being on another continent (arguably another planet in many instances) it is rather difficult to turf them out the window so the thwarted BOFH is compelled to exercise his or her powers of deviousness to keep critical applications running.

(Having an intimate knowledge of the toolchain, truss/strace and adb are very devious enabling. :)

"All we are given is possibilities -- to make ourselves one thing or another."
-- Ortega y Gasset