It's a good idea to test your spare disks every so often

We have a reasonable sized fileserver infrastructure and as part of that,we have some hot spare disks sitting in iSCSI backends,waiting for the day that things will go wrong and they'llbe needed ( and that day does come ).However, it's possible to be reasonably lucky and have thatday not come for a fairly long time, especially for parts ofyour fleet.

There's a rule of thumb in programming to the effect that if you'renot testing it, it's


Trailing text, a subtle gotcha with Go's fmt.Sscanf

I've written some Go code that wanted to do some simple scanf-like parsing of strings. WhenI did this, I peered at the fmt package documentation for the Sscanf function and confidentlywrote something like the following code:

_, e := fmt.Sscanf(input, "%d:%d", &hr, &min)if e != nil {   return ..., e}

This code has a bug, or perhaps some people would call it anunintended feature (


One reason why user namespaces keep enabling Linux kernel security issues

If you've been following Linux kernel security issues over the pastfew years, you've probably noticed that one common element thatkeeps reappearing over and over is 'user namespaces' (most recentlyin CVE-2016-8655 ).At this point you may reasonably wonder not just what user namespacesare but why they keep being involved in so many security problems.

The general idea of kernel namespaces is covered in the namespaces(7) manpage and user namespaces have their own specific


My RPM build setup no longer works on Fedora for some packages

A decade ago I wrote up how I set up to build RPMs ,with sources for each RPM segregated into their own subdirectoryunder your RPM SOURCES directory instead of everything piled into SOURCES the way the default setup wants you to do it. I've usedthat RPM building setup ever since and it's worked for me over allof these years. The short version of what this looks like is:

%_topdir /some/where%_sourcedir %{_topdir}/SOURCES/%{name

One advantage of 'self-hosted' languages

One of the things that people like to do with languages ( andlanguage runtime environments ) is tomake them 'self-hosted'. A self-hosted language is one where thecompiler (or interpreter) is almost entirely written in the languageitself, instead of being written in another language such as C.

I don't know all of the reasons that people have for self-hostinglanguages, since I've never participated in language development.But from an outsider's perspective, I can think


Terminals are not enough (personal edition)

Over the years I've used any number of things at home to get accessto the outside world, and as you'd expect I've developed someopinions on the whole area (to go with my sysadmin-side opinions ). Because I love giving names tothings despite being not very good at it, I'm going to divide all ofthis into four levels:

  • pure terminals not only depend completely on the Internet (orthe outside world in general) but they restrict you to accessingit

One reason why rogue wireless access points are a bigger risk at universities

One of my opinions on rogue wireless access points is that they'rea bigger risk at universities than they probably generally are atcompanies. Even if they were set up at exactly the same rate andin the same relative places in your network at a company and at auniversity, the university has it worse.

The problem for universities in specific is that so much of ourbuilding space is in practice open to the public. Sure, theoreticallymaybe it's only supposed to be used by university students, staff


IPv6, point to point links, and subnet lengths

One of the things that my recent IPv6 work has given me is plenty of what we call 'learning experiences'. Thelatest one concerns a little detail of what I wrote earlier , where I casually said:

[...] I discovered my next configuration mistake, which was thesubnet length on my IPv6 address configured on my DSL PPPoE link;for reasons lost in the depths of history, it had been configuredwith a /64 subnet length instead of being set to be a single IPv


I suspect that lots of IPv6 hosts won't have reverse DNS

It's an article of faith that IPv4 hosts should mostly have validreverse DNS and that good sysadmins (and people in general) shouldset this up for their hosts. While support for this is not exactlyuniversal, it is reasonably common and many places have it. However,in light of my recent experiences with IPv6 I've come to believe that asignificant number of IPv6 hosts will probably not have reverseDNS.

When I was thinking that IPv6 hosts would acquire addresses throughDHCP(


Terminals are not enough (sysadmin version)

In a comment on yesterday's entry , Evaryont asked a good question:

Have you thought about the usecase of Chromebooks not as a fullyindependent machine, but something more akin to a thin-client remoteaccess device? [...]

(The difference between thin clients and Chromebooks is important,but I'll get to that later.)

Let us call such devices 'terminals', because that is what theyare. In the old days terminals worked over serial lines ( andstill might support windows