On Tuesday 23 January 2001 10:25, Andris Pavenis wrote:
> On Friday 12 January 2001 13:35, Andris Pavenis wrote:
> > On Saturday 06 January 2001 15:28, Andris Pavenis wrote:
> > > Noticed following devfs related problems with kernel version 2.4.0 on
> > > one Pentium 200MMX box (the same problem with 2.4.0-ac2, but earlier
> > > 2.4.0-test10 doesn't have this problem)
> > >
> > > I was able to reproduce it reliably by following steps:
> > > ???????? - booted machine in runlevel 3
> > > ???????? - logged in as user and started MC (on first console)
> > > ???????? - logged out
> > > ???????? - logged in as different user (in this case root) and tried to
> > > start MC again
> > >
> > > This time it hangs. The source of problem appears to be devfs related
> > > as devfsd exited with error message that it cannot state vcc/1 as there
> > > is no such file or directory. Related parts of log files (boot
> > > parameter devfs=dall) and other related information (I hope...) is in
> > > attachment. Of course MC is not behaving nicely, but the primary source
> > > of problem seems to be devfs
> >
> > As I tested devfsd dies after I'm logging out (very often on P200MMX,
> > much more seldom on P3 700). I suspect some devfs related race
> >
> > > On this machine kernel was compiled for Pentium CPUs. I tried to
> > > reproduce the same on a different machine with Pentium III 700 using
> > > kernel 2.4.0. It took more relogging as on Pentium 200, but I got the
> > > same problem once (on slower machine I was able to reproduce it more
> > > reliably).
> >
> > I tries 2.4.1-pre3 and got the same. Modifying devfsd.c to retry stating
> > some times before giving up workarounds the problem (As far as I tested
> > I'm getting only one retry ...)
> >
> > Perhaps it's kernel's bug anyway, but I think it's doesn't harm to make
> > devfsd slightly more errorproof. I'm including patch for devfsd (I had
> > also to define __USE_GNU to get devfsd compile with glibc-2.2 at all ...)
> >
> > Of course best solution would be to fix the race itself (it appeared
> > sometimes between 2.4.0-test10 and 2.4.0-test12, first one is OK) ....
>
> I spent some time building various kernels on P200MMX box I have this
> problem to happen more often. It looks that problem appears in
> 2.4.0-test12-pre8 but is not present in 2.4.0-test12-pre7
>
Forgot to mention: I have line
REGISTER vcc/a* PERMISSIONS root.vcsa rw-rw----
REGISTER vcc/[0-9] PERMISSIONS root.tty rw-rw----
in /etc/devfsd.conf (to change permissions for vcc/* as I don't want to make
some applications suid root)
So perhaps after logout current of vcc/[0-9] is reregistered, but sometimes
devfsd suceeds to try to change permissions before the new node is created
and stat() fails (ENOENT) in action_permissions(), as result unpached
devfsd-1.3.11 exits with error message. Adding code to retry stat() after
some small delay (usleep(1000)) workarounds problem.
I'm including full /etc.devfsd in attachment.
Andris