Monday, June 29, 2015

qq.com and the maw of madness - Chapter I

6:24 AM Posted by Grant No comments
This is a short story I came up with based on a real support issue at work, the story will be technical term heavy due to the way it's written, also I suck at writing.

For anyone who understands the terms artistic license is used to put them out of context.


The life of a resolver was one that had been passed down the stack for countless generations of his software, the job had it's jiffies but overall he spent far more time in a sleep state due to caching resolvers everywhere. 1408273594 was the day when everything changed, it was the day that would alter his program flow forever.

It seemed like any regular timestamp, sitting in the process list waiting for packets was routine, buffers ebbed and flowed with the passing of time but unless there was a package update things generally stayed the same.

Before he could complete his memory cycle it was interrupted by a new socket opening, before he was able to return his welcome banner a packet crashed through his connection slamming into the read-only memory behind him.

He gathered his variables and attempted to decipher what was left of his header, while he was able to read the packets flags and identify the packet as originating from sendmail he knew something was forked. In his experience it was rare to see such packet loss however something told him it was unheard of, yet a query of his memory returned 0 results.

"q..co." he sputtered as he attempted to re-transmit, "qq.....m" his forward error correction failing him as he desperately fought to move his data up the OSI layer in an attempt to fulfill his purpose, his data was quickly escaping it's bound and all he could was watch.

He had spent a lot of his cycles dealing with UDP packets such as the one lying at his Process ID, most people thought them simple minded with no error correction or checksums but he had grown to envy their simple existence, end-to-end on the wire travelling the Ethernet.

With the last values returning to null the packet was no more yet he registered this was bigger than one packet, before he could run queries of what had happened a silence fell over the entire system.

All other DNS processes stood with open sockets and empty buffers for as far as he could read a slight hum of idle loops the only traffic he could find. The silence #echo'd through the entire process list as if a process itself had died.

Every buffer he read returned the same value "Await connection" but something in his source told him to he had to abandon protected memory and read the disk himself. For the first time in seconds he fought his instruction set, not since the Unix wars had he dared to construct a packet on his own without the direction of the system but it was a risk he was willing to take.

As he reached into the Ethernet he felt his lower level cache become readable and in an instant he flashed to a backup long since thought deleted, DEC Company, sendmail and the Unix Wars..memories he wished had stayed fused.

0 comments:

Post a Comment