Dependent Origination

I hate xmlsec

Posted on: September 27, 2008


My coworker is trying to implement pixels for my program so that we can launch a prettier product. He complained about libxmlsec to me yesterday but i was sick and working from home. So we started our debugging this afternoon, one day after the ship date of his pixels!

Initially, after checking the logs, I realized he was missing some config files. However, his version of the program was still crashing with internal server errors after all the config fixes. The cgi crashed because it was expecting the signature in the authenticaation response from the partner to be verified and it was not. I took the exact same response and ran it from unit tests on my machine. The signature was verified perfectly. The same unit test couldn’t even finish on his machine. Things started to become very very interesting.

So it must be some config problem. The question was what was wrong! I tried to gdb the unit test. It complained loading a public key failed. The interesting thing was before it actually failed the loading function, there was a complain saying libxmlsec crypoto library initialization error. Actually it was the second time i had seen this error, when libxmlsec complained before it reached the actual function. However, last time there were other leads on hand so i did not pursue this one. This time it was different : i had spent almost three hours on this and it was getting really late and i had no other leads on hand either.

So i asked the most important question of the evening or afternoon: is there anything wrong with your version of libxmlsec? It turned out my coworker was linking to a libxmlsec whose version was a couple notches higher than my machine. After switching backwards to the older library, everything works fine. So the libxmlsec either is really stupid that a newer version is not implementing features in an older version or it asks too many questions while compiling that my coworker missed couple of options to make it compile right.

Anyway, everytime libxmlsec throws some error, it means hours and hours of my time. Last time it threw an error complaining digest did not match data which cost me an entire day, only to figure out that i have to treat newlines in input packages really seriously. Now it is this. I cannot describe the despair i have felt during the course of debugging. The helplessness. The feeling that i had done everything i could and this damn thing was still not working, for no apparent reason. My boss was sitting besides the two of us working. I had every intention of asking him for help but i resisted the temptation. I have been working for a year and a half. I can solve problems by myself. I gotta prove this. Thank god in the end I picked up the clue that i ignored earlier and digged out the answer.

You know what. Debugging is really detective work. And maybe if something did not work out, I could become a homicide detective focusing on serial killers. Man that would be some profession. I am sure i am going to be really scared on the job.


Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s

September 2008
« Dec   Oct »


Flickr Photos

%d bloggers like this: