The Most Insidious Bug Ever - Why Dependencies Are Evil

(no connection to cloud)

When I was at University - one of the lab exercises was to build and program a network - this included wiring up to the motorola based teaching “motherboard” some networking chips, via a breadboard, and then programming a simple network driver that would allow one computer to send text messages to another (all programmed in Motorola 68000 assembler) .

One of the requirements was to use a CRC algorithm to “checksum” the message to ensure it was transmitted correctly. Thankfully we didn’t have to write this - the subroutine was provided for us, saving time.

The total lab took quite a few hours - a bit of a marathon - and these were known for being pass/fail affairs (or so we were told). I usually did the software, my colleague did the hardware (cross checking each other).

We did everything, tested what we could - then tried sending “hello world”. CRC fail. Check wiring, still CRC fail. Check software, switch a few things around we weren’t sure of, try “hello world” - CRC fail.

This went on, frantically, for some time (felt like a while) - checking and rechecking. Finally one of us typed in some naughty words - and, suddenly, it worked, the message went through. We tried all sorts of messages - all passed the CRC check. Finally, we circled back to “hello world” - CRC fail. Yep, not a bug, a deliberate “feature”.

A feature designed to teach us a lesson (I presume) - don’t trust libraries, and learn to feel frustrated often.

Grrr….

Michael.

Comments

I was in the same class, and had no idea about that for what is going on 20 years now .... scary

Hey Rick - yeah it was weird - variations of strings were fine. We asked the lab supervisor who Paul and I (and others) nicknamed "God" (for his asm abilities) and he nodded and smiled. Do you remember seeing that effect or were you smart enough to try different strings from the start?

Add new comment