[lkml]   [2001]   [Feb]   [6]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
SubjectProblems with devfs [WAS: Re: devfs breakage in 2.4.0 release]
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.

# Sample /etc/devfsd.conf configuration file.
# Richard Gooch <> 3-FEB-2000
# Enable full compatibility mode for old device names. You may comment these
# out if you don't use the old device names. Make sure you know what you're
# doing!

# You may comment out the above and uncomment the following if you've
# configured your system to use the original "new" devfs names or the really
# new names

# Enable module autoloading. You may comment this out if you don't use
# autoloading

# You may comment these out if you don't use the original "new" names
REGISTER floppy/* PERMISSIONS root.floppy rw-rw----
REGISTER sound/audio PERMISSIONS root.sound rw-rw----
REGISTER sound/dsp PERMISSIONS root.sound rw-rw----
REGISTER sound/dspW PERMISSIONS root.sound rw-rw----
REGISTER sound/mixer PERMISSIONS root.sound rw-rw----
REGISTER misc/psaux EXECUTE /bin/ln -s /dev/misc/psaux /dev/mouse
REGISTER vcc/a* PERMISSIONS root.vcsa rw-rw----
REGISTER vcc/[0-9] PERMISSIONS root.tty rw-rw----
REGISTER ide/host0/bus1/target0/lun0/cd EXECUTE /bin/ln -s /dev/ide/host0/bus1/target0/lun0/cd /dev/cdrom
 \ /
  Last update: 2005-03-22 13:02    [W:0.078 / U:2.236 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site