The Butterfly Effect is a term from chaos theory that is designed to illustrate how one tiny change can have enormous consequences to the overall system down the line.
If we abstract butterfly to bug, it actually fits quite nicely within the realm of software development.
Today, I ran into a doozy of an error. I enabled a custom Drupal module I was tinkering with and all of a sudden a bunch of other modules started erroring out (most notably, Views). Disable the module and the problems went away. Re-enable and views broke. I was pulling my hair out trying to figure out what was wrong. I commented out the entire .module file to no avail. After calling in the cavalry, Drupalmeister Ethan Winn pointed out that in my hook_schema() function in the .install file was not returning a value.
Okay, put the return statement back and everything works again. A simple one-line bug in a small custom module. But the problems it caused were atypically massive for a Drupal module that has no dependencies or dependents.
It turns out that Drupal 6.x has a very tiny, miniscule little 7-character bug in one of the core files that allowed this widespread breakdown to occur.
Apparently, when you use Drupal's schema api, if one module's schema hook has a problem, it returns NULL, and when an array (say, from a successful schema call) is merged via array_merge with a NULL value, instead of ignoring the merge, it simply returns NULL and erases everything that had been generated thus far. This can cause things like views calls that rely on the schema api to get wiped out by a broken module.
The fix for this is extremely simple, which is to cast the result of the schema hook calls as an array so that instead of passing NULL to array_merge and wiping it out, you simply pass an empty array which is properly ignored.
This bug was reported way back in 2009 (http://drupal.org/node/287647), and while it looks as though the 7.x patch was tested, the 6.x patch is listed as "ignored" and nearly a year later the bug still remains in core.
287647.patch simply adds an (array) cast to contain the spread of a malformed schema. I have tested it and found it to be working flawlessly, and would like to see progress toward getting this bug fixed in the Drupal 6.x core.