3 ms·
* Works on my machine: You can't repro a customer bug in-house. Something about your internal setup is making a difference. Even worse: You work for a big-cor
by Splines 11y ago
* Works on my machine: You can't repro a customer bug in-house. Something about your internal setup is making a difference. Even worse: You work for a big-corp that is a platform for said customers, and so god knows what another team has running in your environment in the name of "dogfood all the things"
- jschwartzi 11y agoI saw one once where the cell carrier actually made the difference. As in I had to fly to a foreign country before I was able to reproduce the bug.
- lotharbot 11y agoYears ago, my wife had a bug that only happened in a non-debug build and only on one specific system. It was a recursive tree traversal algorithm, written in C, with an OB1 error in some pointer arithmetic. If memory was allocated in a particular order, the function would read off the end of level X's data and find level X+1's data, which was structured exactly as expected, so it would end up processing certain nodes twice. In the debug build there was a debug variable being initialized to null, which was in between the two blocks of data and therefore got interpreted as a terminator.
- hacknat 11y agoWhat a horrible coincidence. I'm surprised they found it.
- jacquesm 11y agoSomething like this happened a few months ago, only this time I was the user and I drove the person writing the system up the wall because initially he couldn't reproduce it. After writing a test script and letting it sit in a loop the bug became reproducible: 1152 times got a replication. https://github.com/spf13/hugo/issues/1293 https://github.com/spf13/hugo/issues/1293
- TheOtherHobbes 11y agoWhat amazes me about CS - and this almost literally leaves me speechless - is how little interest there is in classifying and avoiding bugs, and working towards a General Theory of Why Stuff Might Not Work. Even a set of basic widely accepted heuristics would be good. Instead of real observation, there's a lot of leaning on type theory, OOP, immutability, and other ideas that scratch some sort of neatness itch and/or advance the careers of opinionated language creators, but have little/no empirical support to prove they actually produce more reliable code. Meanwhile formal techniques and languages that do have empirical support are sidelined and ignored. Bugs like yours are not uncommon. If anything, because of Darwinian debugging - the obvious ones die first - you'd expect a good proportion of hard-to-reproduce bugs in any code base. So they shouldn't be considered weird aberrations. I'm not sure why CS theory doesn't have a better handle on them.
- jacquesm 11y agoYes, this amazes me as well. Shallow bugs are many and are fixed quickly and easily so in the end the ones that remain are nasty and hard to fix. Every anti-bug measure tends to work like yet another brush aimed at a wall. But most brushes overlap partially or even wholly with areas of the wall already painted with previous brushes. The only strategy that would really work would cover all of the wall in a very systematic fashion.