News: 1644571808

  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)

Real-time software? How about real-time patching?

(2022/02/11)


On Call Sometimes some systems just have to work, and there is always a Register reader to save the day. Welcome to [1]On Call .

Our story today takes us back to the 1990s and involves "Paul", who had just joined the industry after university.

His employer produced command-and-control systems for public services (think fire brigades and police). He had a one-year contract developing drivers for alarm hardware such as pagers and sirens to let all concerned know that something bad was happening and needed dealing with.

[2]

"The technical setup was mostly HP, Sun and Motorola Unix workstations with QNX servers doing the dirty work, my products being located on the QNX realtime servers doing all the alarming whenever something alarming happened," said Paul.

[3]

[4]

He also did some work connecting to various shouty devices using C and C++.

This all took place on the European mainland, and our hero's office was located in a country famed for sausage, beer, and industrial metal. Every few weeks Paul would visit a client site to make sure the system worked correctly with whatever was installed at the local fire station, police HQ and so on.

[5]

And so it was that he headed off, just before Christmas, to a neighbouring country to check things were ticking over at the new "centre for catastrophe protection and emergency services."

His task was, as Paul put it, to ensure the code "would finally pass… the really final attempt at passing the acceptance tests at the end of the year." No pressure, and when things are getting a bit squeaky, who would you call? The youth fresh out of university, of course.

He packed up his "portable computer" (a sewing-machine sized contraption with twin 5 1/4" floppy drives and a 7" CRT) and headed out to the site, nestled in the mountains.

[6]

The new system was already up and running but was not working well. Paul was stationed in a conference room, looking at the logs in real time and patching things as they went wrong. Every time the system crashed, the emergency services crew had to switch to the old backup system and send out alarm calls manually. There was a lot of manual intervention, and the customer was not happy.

"You had phenomena such as 'snow', 'cold', 'avalanches', 'parties with very drunk people in houses in the mountains where you had a precipice behind the backyard where you might erroneously try to take the last open-air piss of your life'..." explained Paul, with a little too much detail.

"I saw all those funny test notifications they sent for my personal amusement," he went on. "General alarm – explosion in an iron foundry – send EVERONE – SIGSEGV in ...

For the uninitiated (and bless you if you are – we envy you), a SIGSEGV is usually a segmentation fault or violation and happens when some code tries to go stomping around in memory where it shouldn't.

"Only those weren't test messages – that was the live emergency system for the [region] crashing completely when it tried to send out the rescue teams (including helicopters and all) after a major event."

[7]No, I've not read the screen. Your software must be rubbish

[8]Bouncing cheques or a bouncy landing? All in a day's work for the expert pilot

[9]Why should I pay for that security option? Hijacking only happens to planes

[10]Nothing's working, and I've checked everything, so it must be YOUR fault

Desperately, as the gap between Christmas and New Year wore on, Paul tried to solve the problem. Emergency calls were flooding in around him, and his employer's system was disgracing itself.

He, meanwhile, "was debugging through a rather complex Medusa's head of recursively stacked C functions with not very self-explanatory names to find out what exactly the whole rat's spaghetti nest of code did..."

As he peered blearily at the source, the system SIGSEGVed once again.

It transpired that a predecessor had needed to convert (in C) an integer value into a binary value and opted to temporarily convert to a hexadecimal value on the way through some decidedly iffy pointer-based bit juggling operations. Yet such a conversion wasn't really needed – the value was already stored in binary format.

However, the original coder hadn't been fully aware of that (and had likely been parachuted into the job with precious little C experience) so had tried his hardest to make the conversion work... but it didn't. Not all the time. And C, as programmers know all too well, can be cruel to the unwary. Hence SIGSEGV.

Paul simply removed the whole complicated chunk of code and the SIGSEGV just went away.

"I think I whittled down the remaining problems quite nicely during that week," he said, "but whether they got the final approval or not, nobody ever bothered to tell me."

His efforts were rewarded with a visit to the recruitment agencies. "A month later or so the company was sold to their competition," he went on, "and as a recent university graduate with neither seniority nor family I was one of the first to get fired in the takeover cleanup."

Ever been called upon to support those who really are On Call? Been on the receiving end of messages that you thought might be gallows humour but turned out to be something quite different? Tell your tale with an email to [11]On Call . ®

Get our [12]Tech Resources



[1] https://www.theregister.com/Tag/on-call

[2] 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=2YgZB20HwJqGO0HhN0xp1agAAAM0&t=ct%3Dns%26unitnum%3D2%26raptor%3Dcondor%26pos%3Dtop%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=4&c=44YgZB20HwJqGO0HhN0xp1agAAAM0&t=ct%3Dns%26unitnum%3D4%26raptor%3Dfalcon%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=3&c=33YgZB20HwJqGO0HhN0xp1agAAAM0&t=ct%3Dns%26unitnum%3D3%26raptor%3Deagle%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=4&c=44YgZB20HwJqGO0HhN0xp1agAAAM0&t=ct%3Dns%26unitnum%3D4%26raptor%3Dfalcon%26pos%3Dmid%26test%3D0

[6] 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=33YgZB20HwJqGO0HhN0xp1agAAAM0&t=ct%3Dns%26unitnum%3D3%26raptor%3Deagle%26pos%3Dmid%26test%3D0

[7] https://www.theregister.com/2022/02/04/on_call/

[8] https://www.theregister.com/2022/01/28/on_call/

[9] https://www.theregister.com/2022/01/21/on_call/

[10] https://www.theregister.com/2022/01/07/on_call/

[11] mailto:oncall@theregister.com

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



Korev

Poor "Paul", I C what he did there...

Korev

Hopefully he got some pointers for his future career

Pascal Monett

Yeah, like don't go to work for a company who sells software made by the summer intern ?

Site Acceptance Test

trevorde

Worked on a product where one of the engineers had to go to Monaco for a site acceptance test with the customer. We were all very envious until we found out that he spent all week in an airless, windowless room, without air conditioning, hacking the code to try and get it through the tests. As a bonus, there was a workman with a jack hammer, demolishing a wall about 6ft from him. It was hot, dusty and noisy. The kicker was the boss was downstairs at a slap up reception downstairs to celebrate the success of the project.

Re: Site Acceptance Test

GlenP

Business travel is almost never glamorous, whatever people think.

I once did a day trip to Paris, "Lucky you" from my friends.

Yes, airport, airport, office, hair-raising taxi ride, airport (for several hours), airport, home.

Lunch was quite nice but that was about it.

Re: Site Acceptance Test

jake

The first five times I went to Hawai'i, I landed at night, was met on the tarmac by a taxi & taken to the NOC, where I did what was needed in a locationless, windowless space, and then returned to the airport by taxi the following evening. I never saw a beach or any other scenery, not even from the air!

Re: Site Acceptance Test

Anonymous Coward

Doing some government work in the '80s we had to hook up a system from a government department in Northern Ireland to another government department, which meant we took to a trip to Belfast. We flew from Brize Norton to Aldergrove courtesy of the RAF. We were then bundled into the back of an army Land Rover and driven to a bland but well defended office building where we did our thing in a windowless room, before being taken back to Aldergrove in another Landie then flown back to the mainland. A long day with not much chance for tourism, or indeed interaction with many of the locals.

Re: Site Acceptance Test

Anonymous Coward

Likely safer that way, as interacting with too many of the locals could have "consequences" back in the day.

Re: Site Acceptance Test

AlanSh

I once did a weekend trip to Singapore for 1 meeting. Flew in. Had meeting. Slept for 4 hours. Caught plane home.

Yuk!

Portable? Shirley you mean luggable ...

jake

"He packed up his "portable computer" (a sewing-machine sized contraption with twin 5 1/4" floppy drives and a 7" CRT)"

Sounds like the [1]Panasonic Sr. Partner I lugged around the world for a few years, but that was back in the early-mid '80s, not the '90s.

All 38 pounds of her, including case, modem, manuals & floppies. At least she has a built-in printer. Yes, has. I still have her. You get attached to the daftest things after a quarter million air-miles together.

After a little gentle massaging, she now has an MFM controller in the expansion slot, a 20 meg hard drive in one of the floppy bays, and an aftermarket hack that upped the stock 256K of RAM to a more usable768K. I used an external modem. She still works. Came with Panasonic-labeled MS-DOS 2.2, but it currently boots MS-DOS 3.3 ... It might be hard for some of the younger readers to believe, but a LOT of RealWorld work was done with such primitive devices. Along with the usual office crap, she runs Mark Williams C perfectly ... which is more than I can say of the other luggables of the era.

[1] https://vintagecomputer.com/panasonic-sr-partner.html

Re: Portable? Shirley you mean luggable ...

Doctor Syntax

Also running Kermit?

For a while I ended up with an Osborne or similar luggable as an office terminal. I'm not sure it would have been as generous as a 7" screen but with MSDOS and Kermit as a terminal emulator it did the job. It might be the reason why to this day I find a 6" terminal window more than adequate for the command-line.

An economist is a man who would marry Farrah Fawcett-Majors for her money.