Re: A module bug in 2.2.1?

H.J. Lu (hjl@lucon.org)
Thu, 4 Feb 1999 09:15:52 -0800 (PST)


>
> On Thu, 4 Feb 1999, H.J. Lu wrote:
>
> > > kmod in the kernel is trying to demand load unix domain sockets with
> > > 'modprobe -s -k unix'. modprobe gets some error. Because modprobe
> > > was given "-s", it calls syslog to record the error. syslog tries to
> > > use a unix domain socket, causing the kernel to again 'modprobe -s -k unix'
> > > again, continuing the recursive cycle.
> > >
> > > I am not sure why you are getting an error in the first place though,
> > > especially that error. Do you perhaps have a custom module of your own
> > > named "unix"?
> > >
> >
> > I upgraded to modutils 2.1.121. This message is gone. Now I get
> >
> > request_module[net-pf-1]: fork failed, errno 11
> > NET4: Unix domain sockets 1.0 for Linux NET4.0.
> >
> > during the boot. I guess the bug may be in kernel and modutils. The
> > "unix" module is used by many programs. Everyone tries to load the
> > same thing at the same time. I will take a look to see if I can
> > fix it.
>
> If you run glibc 2.1 by any chance, the reason is /bin/sh querying some
> of NSS databases on startup. The NSS subsystem of glibc 2.1 tries to
> contact nscd via a Unix socket. As a result modprobe is being called
> again. This creates an infinite loop which is terminated upon memory
> exhaustion which makes the last socket() fail and the shell continues. As
> the purpose of the shell is to invoke insmod on unix.o (modprobe uses
> system() to facilitate shell expansion of entries from modules.conf), the
> module is finally inserted and processing continues.
>
> A temporary workaround is to place an entry like
> "un::sysinit:/sbin/insmod unix" as the first of "sysinit" type in inittab.
>

That is exactly what happened. We need to find a real fix for it.

Thanks.

H.J.

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/