Monday, February 06, 2006

The Difference A Queue Of . Makes

...

It's even more, how should I put it, dramatic/bad/stupid of me than I thought.

I just found a bug which has been extant for many many many months... delays, existing for no reason... strange effects with real-time messaging...
... all of which stands witness only to one all-encompassing theory:

Looking for a bug in your code, or any error in any system, is completely futile - or at the very least extremely inefficient - if the model underlying your assumptions about the suspected place of the initial mistake is wrong itself.

In less abstract terms, I thought the messages I send in from one end of a communications link always arrive within a certain finite time at the other end. Notwithstanding delays from computation load or anything, those messages should arrive, or get lost when hitting an overflowing buffer. However, with the framework I use, they end up being queued deep inside the system, without so much as a hint to the amount of data backed up. I can only fall to my knees and thank the camera that it offers me an easy way of interacting with the whole system - otherwise I'd never have found out about this, and this problem, permeating several communications links in my software, would have lain in hiding, waiting for me to trip over it... everything I'd have been building would have been faulty.
Incredible.

Labels: