[Buildbot-devel] Another test failure with buildbot-0.5.0

Brian Warner warner-buildbot at lothar.com
Wed Sep 1 18:14:34 UTC 2004

>   File "buildbot-0.5.0/buildbot/changes/maildir.py", line 48, in start
>     [DNotify.DN_CREATE])
>   File "buildbot-0.5.0/buildbot/changes/dnotify.py", line 66, in __init
> __  
>     fcntl.fcntl(self.fd, fcntl.F_NOTIFY, self.flags)
> IOError: [Errno 22] Invalid argument
> This machine is running a Linux 2.2 kernel, so it won't have kernel
> support for dnotify (that was added in 2.4.19 according to a quick poke
> on google).

Ah, now there's a case I hadn't considered. It sounds like the DN_CREATE and
F_NOTIFY constants are present in your fcntl module, so 'import dnotify' will
work, and that's the test that the maildir module uses to decide whether to
use dnotify or if it ought to fall back to polling every 10 seconds.

I'll make some changes to Maildir.start so that it detects this sort of
failure and falls back to polling. I'll also see about skipping that test if
dnotify support isn't really available.

Meanwhile, this bug will only cause you problems if you're using a
maildir-based ChangeSource, for example something from buildbot.changes.mail
like FCMaildirSource, SyncmailMaildirSource, or BonsaiMaildirSource . It
won't affect TCP-based change sources, or periodic builds.

As a workaround, just change buildbot/changes/maildir.py to make sure that
have_dnotify is always 0, regardless of whether the 'from dnotify import
DNotify' worked or not. That will disable dnotify and fall back to polling.


More information about the devel mailing list