Python threading sucks

Recently, when testing the installer, we noticed a weird issue. When ’emerge sync’ is run, rsync would complete the sync but not exit, which caused the install to hang. It took 2 days and a lot of frustration to finally track this one down. We owe the answer to d_m (on freenode).

The installer runs with 2 separate threads. The frontend is the main thread and the backend starts up a second thread to run the commands that perform the install. It turns out that when python creates a new thread, it blocks all signals for that thread. I’m not quite sure why. This has the side effect of blocking all signals for any processes that are fork()ed and/or exec()ed from that child thread.

Rsync fork()s when it’s doing it’s thing. One process waits for a USR2 signal from the other before they mutually exit. Since python had blocked all signals, the signal wasn’t getting from one process to another so they could exit. d_m’s solution was to write a small C program that resets the signal mask when running external programs. While this works, it is a huge hack. Although, this bug should be fixed in python 2.4 :-/

Installer FAQ

I just finished putting together a FAQ (URL changed) for the Installer project. We’ve been getting asked these questions over and over again, and it was starting to get a little bit annoying. Questions, comments, additions, etc. are welcome.

C3600 joys

After all my frustration with the original C3600, I found a barebones (no video, memory, or disks) C3600 on eBay for $100 (~$150 after shipping). I’ve frankensteined (I love that term) them together and now once again have a working C3600. Hurray!

Yet another arch

The other day, I obtained a cute little 333MHz iMac via eBay to use for installer work. After getting it, I find out that it uses SO-DIMM instead of SDRAM, so I can’t pull memory from my other boxes to upgrade it from the 64MB it has now. I’ve got a laptop, but it only has 28+128 currently, so I don’t want to pull any from that. Back to eBay, I guess. Isn’t it cute?

imac front   imac front

GLI

In the interest of fairness, I’ve done a review of the Gentoo Linux Installer to complement the “review” I did of the Genux installer the other day. I tried to point out as many flaws and weaknesses as I could, since I gave the Genux installer the same “courtesy”.