← Back to context

Comment by Animats

10 years ago

Did this get fixed, 7 years later?

Yesterday, we had a story about Microsoft's disk management service using lots of CPU time if the username contained "user". Microsoft's official reply was not to do that.

I once found a bug in Coyote Systems' load balancers where, if the USER-AGENT ended with "m", all packets were dropped. They use regular expressions for various rules, and I suspect someone typed "\m" where they meant "\n". Vendor denied problem, even after I submitted a test case which failed on their own web site's load balancer.

Many, many years ago, I found a bug in 4.3BSD which prevented TCP connections from establishing with certain other systems during odd numbered 4 hour periods. It took three days to find the bug in BSD's sequence number arithmetic. A combination of signed and unsigned casts was doing the wrong thing.

My favorite was a story from the 1980s of a program which would crash depending on the phase of the Moon!

Turned out to be because it was generating a date by calling a general purpose astronomical routine, then parsing the date out of that. The astronomical routine among other things included the phase of the moon, and during some phases you would overflow the buffer that was passed in.

Another classic was a tech support call from the 1990s where the person's computer rebooted every time they flushed the toilet. Turns out that the person was at the end of the electrical line..and on a septic system. Flush the toilet, the septic system came online, causing a power dip, and that was enough to reboot the computer. A UPS fixed that.

  • I heard a story about a terminal in a public terminal room that a user was able to consistently log in to if they were sitting down in a chair in front if the terminal, but never if they were standing up.

    They thought it might be static electricity, or some mechanical problem, or "problem exists between keyboard and chair", but finally they noticed something else was amiss...

    It turns out some joker had re-arranged the 1234567890 keys to be 0123456789, so when the user was standing up, they looked down at the keyboard and typed their password (which contained a digit, of course) by looking at the keys. But when they were sitting down, they touch typed without looking at the keys, and got their password correct!

    • I have a slightly more boring anecdote. We were making a 2 Mbit/s multiplexer (E1 to POTS and ISDN lines thing) and ISDN lines worked fine during the day in the test lab but they were always dead the next morning. The unit was otherwise running fine the following day but ISDN was stuck. We never got this to repeat at other times. If you booted it at midnight and came to work at 6AM, it was stuck. But it would run OK from 6AM to midnight so it wasn't any buffer overflow or such.

      So, eventually, just decided to stay at lab for the night. At 5AM the air conditioning came on (it was shut for the night). The ISDN circuit got stuck.

      It was electromagnetic interference from the massive AC unit fan which was not too far above our lab table. Improving the grounding of the ISDN chip helped.

  • My favorite was the server that couldn't send email further than 500 miles away.

    http://www.ibiblio.org/harris/500milemail.html

    • That story was what got me using GNU Units. Which turns out to be a surprisingly powerful, and very much units aware, calculator.

      Want to convert acreage into MWh of annual solar electric potential, or figure out the oil equivalent energy in a nation's poop? Units can do that. And much more.

  • A BeOS bug story similar to the phase of the Moon:

      Two [BeOS] test engineers were in a crunch. The floppy drive they were currently
      testing would work all day while they ran a variety of stress tests, but the
      exact same tests would run for only eight hours at night.
    
      After a few days of double-checking the hardware, the testing procedure, and the
      recording devices, they decided to stay the night and watch what happened. For
      eight hours they stared at the floppy drive and drank espresso. The long dark
      night slowly turned into day and the sun shone in the window. The angled sunlight
      triggered the write-protection mechanism, which caused a write failure. A new
      casing was designed and the problem was solved.
    

    https://www.haiku-os.org/legacy-docs/benewsletter/Issue4-22....

  • > My favorite was a story from the 1980s of a program which would crash depending on the phase of the Moon!

    Do you have a name for this program? It sounds a lot like an urban legend - when would you ever find it easier to parse a date out of an astronomical program than to use actual date handing capabilities from the system or a library?

    • Here is a reference to a program that crashed based on the phase of the moon for slightly different reasons: http://www.catb.org/jargon/html/P/phase-of-the-moon.html

      The one that I described I first remember hearing about in undergrad. I heard it from an astronomy student. I guess that makes it an urban legend, but a highly believable one. In my experience inexperienced programmers are very good at unexpectedly repurposing whatever they happen to know for new purposes. And in an astronomy department it is easy to find inexperienced programmers with astronomical routines at hand.

    • More that it was including the phase of the moon in the output and it would crash of the output ended up being too long.

    • I've never heard of this either but early programmers did creative things to work around limitations. It might not be as complicated as we imagine. The first "computer", the Antikythera, was designed for this very purpose.

Yes, it got fixed: https://bugs.launchpad.net/ubuntu/+source/file/+bug/248619

The `file` utility failed to recognize PostScript files due to conflicting signature data at the magic file. The issue has been resolved long ago.

  • If it was my software, I would not have accepted that as a proper fix though. For me, the real bug is to rely on the "file" command (a user diagnostic tool) to choose different code paths in a printing program.

    • i doubt that this was a 'system "file $my_file"' as i believe there is a library that contains the file determination functionality in it.i can definitely see this a being an intended use of the file library.

Used to own a PCMCIA wi-fi adapter that predated finalization of the 802.11b standard and which could reliably be induced to blue screen if I caused an HTTP request to be sent over the interface containing a lowercase x.

This reminds me of that old joke: "How many Microsoft engineers does it take to replace a broken light-bulb?"

The answer is "None - Microsoft simply change the standard to darkness"

------------------------------------------

Also reminds me of the fact that there are no bugs in Microsoft software - only "Features".

  • I think these are re-purposings of jokes about Unix, which is justly infamous for having lists of bugs that would've been easier to fix than to reproduce, for canonizing its bugs as standards of behavior to work around, and for having startlingly lazy components to begin with (especially the POSIX string-handling libraries -- strcmp() can be written in minutes).

    See _The UNIX-HATERS Handbook_ for more. https://en.wikipedia.org/wiki/The_Unix-Haters_Handbook

I have an Acer laptop (2008 model) which doesn't boot when pressing the power button (since a few years). Interestingly after pressing the power button you've to close the lid and then gentally press the closed lid once/twice (top center of lid where back of the camera is positioned) and then it immediately boots :)

The power button is on the opposite side (at the bottom left of the lid) so it can't be getting a pressure when lid is pressed after closed.

  • You might want to fix that "gentally" because it is easy to misread, and the instruction becomes definitely not office-safe.

These kinds of issues fascinate me, aside from how frustrating they can be. They highlight the immense complexity that underlies what I, a lowly web developer, do on a daily basis, and what effect some decisions can have. It definitely motivates me to be a lot more careful and thorough about the code I write, and that's probably a good thing considering that I'm a painfully self-aware javascript coder who eschews, among other things, writing tests for my code and who thoughtlessly uses modules that solve whatever problem I'm facing.

I could go on to write a love-letter to how a number of HN posts make me want to be a better programmer, but I'll keep it a simple as possible.

Being here, even now, and even though I do sort of feel like one of the 'older crew' suspiciously eyeing what appears to be an influx of 'others', to put it vaguely, ultimately what I love most about this place is reading about the 'old-timers' and how they worked, the 'oldest code that is still in use', the argument for and against LISPs, the problems of the JS/Node ecosystem (bit sick of that), the crazy shit some programmer created, and so on.

I'm pretty much addicted to HN, while I managed to cut out Facebook and Reddit. What keeps me here is the intense desire to be a hacker, and how, even now, HN fuels it. To not just make websites or work with the latest framework, but to geek out on things and become better at what I truly believe is a craft.

If at some point the noise overpowers the substance that I care for, I hereby request anyone who takes pity to let me know where to move on to. But so far, with dangs good moderation, I'm impressived with how well HN is holding out.

I had a bug with a Bank of America payment system which wouldn't accept registrations with upper-case Zs in the company name. I went into super sleuth mode and somehow found the company they hired to make it and got a number for their development department. After explaining the problem to the guy who answered his only response was, "How did you get this number??"