Valid. You need to know if it’s a sometimes bug or an always bug.
post
Happy debugging if it works on the second try... 😬
Best things are, when you throw in some debug output and that changes the timings just as much to not make the bug happen anymore
I've lost more hair to that, than my age...
Well, better than the other way around:
Code works perfectly on your test device but breaks down when deployed to field devices with slightly different timing characteristics or whatever.
Bonus points if it only occurs every few weeks, preferably at night shift and crashes a whole production line... 🫣
(Incident totally fictitious, definitely no people out of this thread involved, just move on, really nothing to see here!)
True that...
Happens too fucking often as well
I'm currently hunting a bug that happens like every 1000 iteration of the thing happening.
Like, I'm telling the hardware to do something and it works pretty much all the time, but over the day, the errors add up
I have no clue why it happens, but can't really turn up the debug logs that much, because with so many things happening, I'd produce like a shitload of data.
But I can't really narrow it down otherwise
And it seems we're in the same kind of shit business ;-)
Real time processes and automation, with customers having problems at night shift, because the maintenance guys during that shift are usually not as good - or it's just bad luck
At one of my last business trips I was already at the airport on my happily way home, when I've got call.
Needed to get my luggage back, new rental car and get a place at the hotel.
Just to discover, that after 15 years the hardware acted up in a way it never did before.
At least I could now include a warning message, if this weird situation ever happens again, but that was a tough one to swallow...
Very true, especially when working with recursion. (Debugging recursion sucks)
Or the code you are working on is calling a system that is currently unreliable which you cannot be responsible for.
Fuck test automation, it's a fucking trap get out of it as soon as you can
EDIT : that is to say, test automation as in automation that a tester does, instead of unit tests. If you have started a career as a software tester , get out ASAP.
The first time, I just saw it's not working; the second time, I was paying attention to the details to see what specific parts aren't working and clues as to how/why.
Due to the non zero ammount of times this happened to me... this is like pressing ctrl+c multiple times to make sure you copied the thing. And then pressing shift+ctrl+c cause you aren't sure if that works in this terminal emulator.
But sometimes it works the second time because it loaded something in the bg.
You'd be surprised at how many times this would help. Sometimes data could be in garbage state and would change between execution.
xkcd 242 obviously

I feel called out. I'm not sure which way I'd go.
You make a change. It doesn't fix it.
You change it back. The code now works.
The usual for me is that I flip back over to my editor and hit ctrl+save, cause heaven forbid I ever remember to do that before running.
Trying to debug race conditions be like
The first one is to warm up the engine. Like getting your car ignition to kick over in the winter
Code doesn't work; don't know why.
Code works; don't know why.
The absolute worst thing that can happen is if it suddenly starts working without doing anything
The error message goes stale when it's been sitting for a while. I need to see a fresh one.
Ah, come on this is valid investigation.
If you get the same error every time, you know you can find it and debug it, somewhat with ease.
If you don’t, you might have a thornier issue at hand.
You jest but “wait and retry” is such a powerful tool in my DevOps toolbox. First thing I tell junior engineers when they run across anything weird
Not sure which is worse. When you know you changed nothing and it inexplicably starts|stops working compared to yesterday
Running the code again is fast and requires no thinking. Finding the problem is slow and requires a lot of thinking.
It's worth looking under the light-post in case your keys somehow rolled there. Just not for long.
I started coding professionally using Visual Basic (3!). Everybody made fun of VB's On Error Resume Next "solution" to error handling, which basically said if something goes wrong just move on to the next line of code. But apparently nobody knew about On Error Resume, which basically said if something goes wrong just execute the offending line again. This would of course manifest itself as a locked app and usually a rapidly-expanding memory footprint until the computer crashed. Basically the automated version of this meme.
BTW just to defend VB a little bit, you didn't actually have to use On Error Resume Next, you could do On Error Goto errorHandler and then put the errorHandler label at the bottom of your routine (after an Exit Sub) and do actual structured error handling. Not that anybody in the VB world ever actually did this.
When your Makefile is so fucked up that you have to run it multiple times to get everything to build and link properly.
Or the code you are working on is calling a system that is currently unreliable which you cannot be responsible for.
Fuck test automation, it's a fucking trap get out of it as soon as you can
Fuck test automation, it’s a fucking trap get out of it as soon as you can
lol.
Meanwhile, the org I work at has no test automation, so things that should be trivial require hours of tedious, error-prone, manual testing. Also they break stuff and don't find out until after it's merged.
This post has appeared in multiple places. It's useful , but it ruins the development career potential of people that stick with it, because any subsequent job application just sees "TESTER" and not "DEVELOPER" and bars you from changing specialization.
I've known several people who moved from QA and testing to developer roles, but usually as an internal transfer.
Most recruiters and management don't know shit about fuck when it comes to technical details, so it's not surprising a lot of them think "Oh the guy who knows how software works and how to handle edge cases? No, we don't want him"
Most applications aren't written to compile deterministically so there is always a chance.
top 22 comments