reboot required - a short tale

Tagged:  •    •  

So here I am, happily hacking along at my first Iliad web application, when I get all fancy and want to set it up on a public server.

Heh ... a bit of fiddling required, since neither "my" Iliad nor "my" gst are out of the box anymore, but applying two patches is not too hard work.

Now I have everything ready: patched gst starts the REPL, gst-package builds, gst-load -viI OnlineTester ... throws an error, while starting Swazoo. Ah, yes, I think quickly, that port is already in use here. So I change, rinse and repeat ... and the error is still there. A FileError? When opening a socket. What?

I put on my Sherlock Holmes hat, mumble about a "two pipe problem" and start digging. After a while I end up in a function mySocket in sockets.c... It doesn't go down further and from my (inexperienced) point of view, there's nothing wrong with the code.

Starting on the second pipe, I declare to Dr. Watson's back (he's too easily bored with computers, the old chap) that once you have eliminated the impossible, one of the remaining solutions, however improbably they might be, must be the correct one.

I look into "man socket", under which conditions creating a socket will fail, and come upon the sentence "Since Linux 2.6.27, the ... SOCK_CLOEXEC", which I remember wondering about earlier.

"uname -a" reports, that the box is running 2.6.23, "eix headers" states that kernel-headers for 2.6.29 are installed. And this is the environment I compiled gst in ... poor thing, it never had a chance.

Well, obviously I had everything set up for working after a reboot during "quiet time" for this machine, but actually forgotten about it during normal chaos.

Reboot the box, continue with gst-load, run gst-remote --daemon -I and watch the site respond as it should in the browser.

There's no problem, a reboot can't fix. True.

User login