Using an automounter doesn't always help with bad NFS servers

Suppose, not entirely hypothetically, that you have a NFS fileserverthat is locking up every so often, that you statically mount itsfilesystems on your IMAP server, your mail server, your generallogin server, your web server, and so on, and that as a result whenit locks up many of your servers wind up grinding to a halt. Clearlythe workaround is to switch from static NFS mounts to an automounter,right?

Not so fast. Switching from static NFS mounts to using an automounterprobably won'


The puzzle of packets to your host that your host doesn't respond to

Today we tried to replace an old machine by having a newly builtversion of it take over from it. We built the new version using atemporary name and IP address, then at the transition time shutdown the old version, reconfigured the new version to use the realname, primary IP address, and IP aliases, and rebooted it so itwould come up with the new configuration. Unfortunately, when itcame up it had a very weird problem: machines on the local networkcould talk to all of its


My feelings about GRUB 1 versus GRUB 2

I have been dealing with CentOS 6 recently (since I didn't give into temptation ), which has beenan interesting experience. In many ways CentOS 6 is a real blastfrom the past, with all sorts of packages that I just don't useany more. One of those is that CentOS 6 still uses GRUB 1 (whichis really just plain 'GRUB') instead of GRUB 2, which basicallyall of our other Linux systems use.

Boy was fiddling with the machine's boot


The irritation of being told 'everyone who cares uses ECC RAM'

One of the hazards of hanging around ZFS circles is hearing, everyso often, that everyone who cares about their data uses ECC RAM andif you don't, you clearly don't care (and should take your problemreports and go away). With Rowhammer in the news, this attitude may get a boost from other sources aswell. Like other 'if you really care you'll do X' views, thisattitude makes me reflexively angry because, fundamentally, itpretends that the world is


Why installing packages is almost always going to be slow (today)

In a comment on my entry on how package installs are what limitsour machine install speed , Timmysuggested that there had to be a faster way to do package installs andupdates. As it happens, I think our systems can't do much here becauseof some fundamental limits in how we want package updates to behave,especially ones that are done live.

The basic problem on systems today is that we want package installsand updates to be as close to atomic transactions as possible. If youthink about it,


I should document my test plans and their results

Every so often I rebuild one of our servers because, for instance,we're moving it from Ubuntu 10.04 to Ubuntu 14.04 (seeing as 10.04is about to stop being supported). When I do this, of course I needto test that the new version of the server (and its services) worksproperly. So far this has been a basically ad-hoc process and Iusually haven't actually written down very much about it.


Why ZFS's 'directory must be empty' mount restriction is sensible

If you've used ZFS for a while, you may have run across the failuremode where some of your ZFS filesystems don't mount because themount point directories have accidentally wound up with somethingin them. This isn't a general Unix restriction (even on Solaris);it's an extra limit that ZFS has added. And I actually think thatit's a sensible restriction, although it gets in my way on rareoccasions.

The problem with mounting a filesystem over a directory that has


The simple way CPython does constant folding

When I looked into CPython's constant folding as part of writing yesterday's entry , I expected to findsomething clever and perhaps intricate, involving examining thetypes of constants and knowing about special combinations and soon. It turns out that CPython doesn't bother with all of this andit has a much simpler approach.

To do constant folding, CPython basically just calls the same generalcode that it would call to do, say, ' + ' on built in types duringexecution. There is no attempt


Our brute force solution for port isolation without port isolated switches

We have a problem: a number of our areas don't have anywhere near thenetwork jack density that people need. Sometimes this is easy to dealwith; if everyone in an office just needs one particular sandboxnetwork we can just deploy a dumb switch to addmore ports for it. But sometimes people need either multiple networksin one office or, more crucially, more ports on one of our portisolated networks , which we really want to staythat way (even between machines in the same office).


An interesting excursion with Python strings and is

Let's start with the following surprising interactive example from @xlerb's tweet :

>>> "foo" is ("fo" + "o")True>>> "foo" is ("fo".__add__("o"))False>>> "foo" == ("fo".__add__("o"))True

The last two case aren't surprising at all; they demonstrate thatequality is bigger