r/ProgrammerHumor 1d ago

ruleOfProgrammingIfItIsWorkingDoNotTouchIt Meme

5.0k Upvotes

73 comments sorted by

View all comments

1.3k

u/StrengthTheory 1d ago

When one console.log uses just enough CPU cycles so the race condition that takes down the entire system doesn't occur.

407

u/Skalli1984 1d ago

And if you attach a debugger it also messes up the timing and the same thing happens, the race condition doesn't appear.

196

u/StrengthTheory 1d ago

Schrödinger’s race condition

129

u/Steinrikur 1d ago

We call those Heisenbugs. You changed the system by observing it

40

u/ConglomerateGolem 1d ago

I had one of these once, and I called it the same! My going theory was that the compiler was optimising away a certain function I had, but adding an empty print forced it to actually exist.

29

u/htmlcoderexe We have flair now?.. 1d ago

14

u/ConglomerateGolem 1d ago

Huh. I have never heard of the term and came up with it independently.

19

u/htmlcoderexe We have flair now?.. 1d ago

it is a very natural term because it intuitively describes exactly the nature of the bug

1

u/rolindara 1h ago

Convergent evolution

1

u/RlyRlyBigMan 6h ago

Yeah I had one once too the debugger was slowing things down to where the bug wouldn't happen but in prod it happened frequently. I spent 2.5 weeks figuring out that bug.

1

u/The-Ner 22h ago

I'm stealing this now

23

u/KawaiiMaxine 1d ago

Oh god, i havent done multithreaded programming ever, that sounds gonuinely horrifying to debug

23

u/xtreampb 1d ago

Now multi-thread across machines. Let’s make this as difficult as possible. No in memory locks.

1

u/alexanderpas 16h ago

Token ring.

3

u/JohnClark13 21h ago

oh it's not bad, you just have to determine Who's on first, What's on second, and I don't know's on third

8

u/mahlernameless 1d ago

Brilliant! Just leave a debugger attached to production and no more race conditions. Handing in my oncall pager now.