Heisenbug
On Monday mornings, I send out a story via email: ultra-brief tales of 1,000 words or more, usually in genres including horror, science fiction, and the supernatural. Those stories collectively are called Once Upon A Time. I’ve also published several ebooks and compendium volumes of those stories so far.
I’d love to have you as a subscriber to the weekly free story. You can subscribe via email here. Unsubscribe any time, from the link in every issue.
Heisenbug
Fourteen hours and counting. Almost unprecedented, Tomasz thought.
The office was quiet, with even the most painfully single of his fellow programmers having gone home for dinner long ago. It was fully dark outside, and Tomasz’s desk was littered with empty soft drink cans, crumpled food wrappers, and no fewer than three paper cups of vending machine coffee, each with his usual centimetre or so of dark liquid left in the bottom.
“What am I missing?” he muttered to himself, and he was startled to receive a reply from over his shoulder.
“Talent, attractiveness, and work-life balance,” Gareth said, causing Tomasz to shake his head without even looking up from his screen.
Gareth had been working at the company for four years longer than Tomasz, and was nominally his manager. The two were friends, though, and if anything, it was Gareth who was envious of how much time Tomasz got to spend writing code, instead of dealing with HR complications and endless planning documents.
“You might be right about that first one after all,” Tomasz replied. “Been hitting my head off this bug all day.”
“Rubber duck it,” Gareth said, checking his phone quickly for messages, and seeing there were none. He pocketed the device again and sat down on the edge of a desk opposite. “Talk me through the problem.”
Tomasz sighed. “It’s the goddamned q-box. Of course.”
Gareth grimaced. Quantum computers were in their absolute infancy, and were currently mostly the subject of experimentation in order to learn how to harness their unique strengths. The potential was enormous, but the hardware design was progressing slowly, and there were new programming disciplines to be learned in order to take advantage of what was there, and what would be there in the future.
“I passed on that project for a reason,” Gareth said. “It hurts my head.”
Tomasz nodded absent-mindedly, still focused on his screen. He knew that part of the problem was that debugging tools hadn’t caught up to quantum technologies. It was still difficult enough to inspect even multi-threaded code on regular computers, much less distributed code, and quantum computing opened up whole new vistas of thorny problems. Their equivalent of bits — called qubits, pronounced like cubits — could be in a superposition of states at the same time, hence their attractiveness as a means to potentially make multiple calculations simultaneously.
And to add to the complexity, the particular computer they were using had memory registers which could be programmatically entangled in pairs, ensuring that their contents would be instantly identical to each other with zero delay — as long as the registers weren’t actually read by the program.
“I long for the good old days of the non-literal Heisenbug,” Tomasz replied.
The term was a pun on the name of the father of quantum uncertainty, used to refer to coding bugs that seemed to change their behaviour when you started trying to track them down. With quantum computing, though, the joke was less funny, taking on a troublingly literal aspect. Looking at the values held in a quantum computer really did change them — or at least collapse them into a single result rather than many possible ones.
“Is anyone else using the machine?” Gareth asked, but Tomasz was already shaking his head.
“No way,” he replied. “I’ve had it to myself all week. It doesn’t work that way, anyhow. Can’t separate the sessions when the thing is entangled. It’d get messed up right away. That’s what I can’t work out, though; I’m definitely getting the wrong return value for this vector calculation it’s doing, but I know why that is, at least.”
“And why is it?”
Tomasz pointed his middle finger towards the screen, combining an indication to look with an expression of frustration. Gareth leaned forward a little and peered at the line of red text in the console towards the bottom of the display.
“State read error,” he read aloud. “Which means what?”
Tomasz ran his hands through his already-tousled hair. “It’s kind of like this thing’s version of a page fault, in a way,” he said. “But not that you accessed memory you don’t have permission for, or that doesn’t exist. In this case, it means you accessed memory that had already been accessed.”
“Which is a no-no for quantum stuff,” Gareth said, his voice slightly uncertain, but Tomasz nodded firmly.
“If you had two people logged in, and they inspected the same program instance, it would definitely break things. It’s just how the system works,” Tomasz said, gesturing as he spoke. “Everyone knows it’s one login at a time; that’s why I have sole access while I work on this.”
“Alright,” Gareth said, pushing away from the desk to stand up fully. “Let me check my admin console. I can see some stuff you can’t.”
He walked over to his own desk, which was set aside from the others, at the end of the row. He unlocked his computer, tapped a few keys, then grabbed his mouse and began methodically clicking his way through the interface. He was silent for almost a minute as he worked, and then Tomasz heard him snort with laughter.
“What?” Tomasz asked, swivelling his chair to face the other man without actually leaving his desk.
“I was right about lacking talent,” Gareth replied. He was still facing his own screen, but Tomasz could hear the grin in his voice. “You’re slipping.” Gareth turned to face his friend once more.
“Two debug sessions logged in,” he said smugly.
“Not a chance,” Tomasz said, standing up immediately and striding over to where Gareth stood. “No-one else has access right now. You’re wrong.”
Gareth shrugged. “See for yourself.” He turned to point to his own screen, just as Tomasz arrived at his side. It only took five seconds before Tomasz spoke.
“I’m an idiot,” he said. Gareth laughed again, and nodded.
“Just remember to log out tonight before you leave, and it’ll be fine,” he said.
Tomasz slapped his own forehead without replying, then trudged back to his desk, leaving Gareth to look once again at the admin display and the two session entries for the quantum computer. One had Tomasz’s username, and a timestamp of early that morning, when he had started work for the day.
The second entry had the same username, and was timestamped tomorrow.
Did you enjoy this brief tale?
I'd also love to hear any feedback or other thoughts; you can find my contact info here.
I encourage you to share this story with anyone you think would enjoy it. If you’d like to receive a tale like this via email every week, you can sign up to receive them here.
Thanks for reading.