The Most Insidious Bug Ever - Why Dependencies Are Evil

Written by: Michael Neale

(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.



Stay up to date

We'll never share your email address and you can opt out at any time, we promise.