Older blog entries for green (starting at number 1)

Well, I had a weird problem yesterday. It seems FreeBSD's NFS really isn't as robust as it should be (*cough* not as if I think NFS is robust itself...). I was testing an ISO9660 image to be burned by vnconfig(8)ing it on /dev/vn0 and mount_cd9660(8)ing it on. Well, I meant to unmount it, but I typed "mount /mnt" instead of "umount /mnt" and didn't notice until the morning.

By the morning, my computer's internet connection, a sad/lowly modem, had been disconnected. I went to do things on the box, and things tried to work with /mnt. Well, what /mnt was defined as was a hard NFS mount of sunsite (uk) :( The logs showed that there was an error 65 looking up the host (No route to host) due to the PPP disconnection.

I spent about 30 minutes trying to unmount that bastard. It really must be a bug that makes things stick on the "nfsrcvlk" wait channel. Long story short, after everything, I could not unmount it, and had to shutdown -r (while the bufdaemon couldn't be stopped because of the broken NFS mount...), and I ended up having the disks fscked before the system next started up.

I've learned a few things from this. One, there are big problems with hard mounts. It's definitely a bug that the NFS mount doesn't start working again after the network connection returns, and things just keep getting wedged. I think I shut down the machine with >5 wedged processes in the "nfsrcvlk" wchan... Two, hard mounts are WAY too much trouble to be the default. I'm going to immediately start lobbying for changing the default to a soft or intr mount. Three, mount(8) lets you make mistakes too easily. The mistake in question is mounting something directly over something else, non-union. This capability is almost always a mistake, and I can see other people facing the same problem. My solution here is to make it an error in mount(8) to mount something directly over an already mounted mount point, but of course create an option to force it. It should be allowed by default to mount something with the "union" option over another mount point, as that is a valid layering technique (when working?). It's just not right to allow someone to mount something directly over something else without a fuss!

I hope that some good will come of the mess I got myself into!

In the past week, I've been able to do a bit of work on closing PRs assigned to me. I've decided to give away a few ports to other committers, because due to unknown issues I have very little energy most days ;-(

The brighter parts of the week have included obtaining a new mpg123 (0.59s in the CVS) which has a good 10-20% improvement in decoding speed for the 3DNow! core, getting friends at school (re)introduced to boggle, getting a cordless keyboard, and getting to be close again to an ex-girlfriend (which can be a very, very hard thing).

As far as FreeBSD goes, even with my little energy, I'd like to continue to do as much as I can find the motiviation to. Right now, I haven't figured out what I'm going to work on next. I've got a pet app, read_cd, which might do well to complement burncd(8) sometime soon, but I really haven't come up with many new interesting ideas. I'd love to have an idea for something new and interesting to come to me, but so far I've been drawing a blank.

It would help if there wasn't so much software already written, and there was really something I wanted so much that I'd have the inspiration to start it. Argh, too much good software already written =) I suppose right now I'm kinda relegated to supporting my existing areas (OpenSSH mainly, and some other ports which can be fussy), getting bugs fixed (Hmm... Snes9X on the Alpha wasn't working last time I checked...), and rejuvenating/cleaning up eclectic things.

I hope I get more energy instead of this fatigue soon; there's so much more I'd love to learn and do.

New Advogato Features

New HTML Parser: The long-awaited libxml2 based HTML parser code is live. It needs further work but already handles most markup better than the original parser.

Keep up with the latest Advogato features by reading the Advogato status blog.

If you're a C programmer with some spare time, take a look at the mod_virgule project page and help us with one of the tasks on the ToDo list!