The Most Insidious Bug Ever - Why Dependencies Are Evil

Written by: Michael Neale

Developer Zone

2 min read

Stay connected

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

Stay up to date

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

Loading form...
Your ad blocker may be blocking functionality on this page. Please disable for an improved experience.