Re: [Bisected] commit 71574865 (vfs: do_last(): common slow lookup)breaks CUPS printing

From: Al Viro
Date: Mon Jul 30 2012 - 04:26:07 EST


On Mon, Jul 30, 2012 at 10:05:36AM +0200, Markus Trippelsdorf wrote:
> On 2012.07.30 at 08:56 +0100, Al Viro wrote:
> > On Mon, Jul 30, 2012 at 09:10:23AM +0200, Markus Trippelsdorf wrote:
> > >
> > > Looks like you're right. The first warning happens during startup. The last one
> > > when I print a test page (which now succeeds).
> > > Thanks Al.
> >
> > > WTF: open("/dev/input/mice", 34946)
> > > WTF: open("/dev/usblp0", 32898)
> > > WTF: open("/dev/usb/lp0", 32898)
> >
> > Ahhh... OK, yes - it's the case we had missed (and where the manpage
> > needs correction, BTW). O_EXCL for *devices* has additional semantics;
> > it's not "fail if exists", it's "fail if already opened by somebody".
> > No need to pester CUPS folks (except that I really hope that this
> > open of /dev/input/mice does *not* come from them)...
>
> I've omitted some WTF's from my former reply, because they happend after
> I've sent it.

> Jul 30 09:07:19 x4 kernel: WTF: open("/var/spool/cups/a00018", 32897)
> Jul 30 09:30:40 x4 kernel: WTF: open("/var/cache/cups/job.cache.O", 32897)

> /var/spool/cups/a00018 & /var/cache/cups/job.cache.O are not devices AFAICS.

Yecch... AFAICS, there's a couple of places in CUPS likely to do that -
cupsGetFile() and cupsdRemoveFile(); this seems to be the former. In the best
case there's enough locking to make that a piece of harmless cargo-cult
programming. In the worst...
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/