Rule 9 from Agans’s Debugging: If you didn’t fix it, it ain’t fixed
Intermittent problems are the worst…
The problem is, how do you fix it if you can’t make it break?
The worst thing is when somebody comes to you saying “yeah, I had this problem yesterday, but it’s working now”.
You should have a unit test you can run until failure
Fully agree, but they’re usually kind of annoying to track regardless. On the opposite side, sometimes even getting it to trigger on purpose to be able to add a regression test can be pretty tricky, depending on the cause. Timing or time/date based stuff is a common culprit…
Don’t tell me about time and date, I am still recovering from some moron that used datetime.now() for some unit test data setup and sometimes two records (which needed to have the same time) had very slightly varying time which caused all sorts of intermittent test failures that were very tricky to nail down. Database triggers were failing causing failures in all sorts of tests in a random fashion
ngl my programming career helped me stay grounded in reality. Every impossible issue turned out to always have a cause, a reason to be there. Could have taken weeks to track down the issue, but there was always a cause.
But still… every 3 or so years… something actually impossible pops-up. Impossible to fix, impossible to reproduce, and suddenly gone from existence, as if it was never there.
Cosmic radiation! Bit flips! Quantum tunneling! Who TF knows…
If only consumer hardware had ECC memory
It ran outta gas. It had a flat tire. It didn’t have enough money for cab fare. Its tux didn’t come back from the cleaners. An old friend came in from outta town. Someone stole its car. There was an earthquake, a terrible flood, locusts!
Given how software is a giant Jenga tower made of smaller Jenga towers it’s amazing any of it works at all
Well at least some of the Jenga towers have redundant Jenga tower replicas, and that Jenga tower over there has a bunch of other Jenga towers ready to be propped up by a PAASser-by given a small cold start penalty. And this one? Nobody knows how it works, but it always worked.
Right? … Right?
Relavent article: How one programmer broke the internet by deleting a tiny piece of code
Oh yeah the leftpad incident. Was fun watching that from a distance
Yeah. First instinct in this case makes me think somebody that owns a product upstream saw a failure log and fixed the issue (I’d still want to confirm that, though)
deleted by creator
deleted by creator
Removed by mod
Because you gotta go fast.
Wonderful comment, solid laugh out of me.
The longer I’m in IT, the more I realize that the adeptus mechanicus might be on to something with beseeching the machine spirit.
A lot of people think I’m joking when I say I’m a good at what I do because I’m a witch doctor with computers. Software Engineering requires experience with the occult, at a minimum.
“In my professional opinion, this network is haunted.”
…haunted?
(Points to various certifications) “HAUNTED.”And for some reason printers seem to be the place where the spirits are strongest
I think you mean demons
The demons are attracted to doorways, passages between spaces, worlds, and realms. And printers are the ultimate doorway: a portal through which ideas and concepts can leave the software realm and enter the physical
In effect, we conjure the spirits of the computer with our spells.
I actually had a concept for a fantasy world, where magicians craft spells much the same way software devs do. So you make your spell and publish it to the ether, and then anyone can invoke it using the magic word (package name), assuming the have the right dependencies available (eye of newt or whatever). But spells might have bugs. So if you used eye of red newt while the spell smith built it with the expectation you had eye of blue newt you might get unintended consequences
i mean it’s pretty common for runes to just be conceptual programming languages and if you do something wrong then instead of having a lighter you get a bomb
The other day I launched an old game and got met with an error, something about directX9 and missing a redistributable file or something. Decided not to fuck with it.
Yesterday I launched it again to take a closer look at the error message to see if I could fix it. No error message, game booted without issues.
My confusion.
Did you reboot your PC after installing? Games often included DirectX redistributables which required a reboot to fully install.
Don’t forget them cosmic rays flipping bits in your memory.
It got scared and decided to fix itself.
if (new Date().getDay() % 2) { runCode(); }
I have this issue once in a while with PowerShell.
The environment gets f’up as you develop. You get strange shit happening or it blows up.
Restart PowerShell or reboot and it’s all good
I also want to know
lucky, you have code gnomes. leave out an offering of mountain dew and pizza rolls to appease the spirits.
Still better than my Go experience 2 years ago.
- fails when deployed, after adding debug statements looks like in one structure there’s 2 instead of 1, and looking at the code that should be impossible. Issue happens every single time.
- the same exact unmodified container when downloaded and run locally works correctly every time.
Build caches are a bitch.
I had that happen with embedded programming when you forget to flush the eeprom after changing your saved values.
I know some of these words
On small computers like Arduino there is a very small memory called eeprom that stays when powered off. It saves ultra low level data (at the bit and byte level) if you don’t “format” after changing what is being saved where it then tries to read gibberish and things go bonk.
Cosmic radiation could always wreak havock by simply switching a 0 to a 1. It appears The Universe is Hostile to Computers.
Maybe it only works on even dates, which is, you know, perfectly normal.
So… Network issue. I’m not falling for those ever again.
As a network engineer, I hate you. Everyone blames network, even when the program/code/script/etc is the only thing that won’t work on it.
deleted by creator
I’ve recently had the opposite: code worked then the next day without anything changing it didn’t.
Turned out the J-Link programmer always needs the license check to work, but that expires every day at midnight. It only prompts again if you choose the app and restart it. So I couldn’t get my debugger to work and spent hours trying to figure it out until I did the best thing. I turned it off and on again.