Hi folks,

As soon as I upgraded my system to new gcc and glibc, I started to get
a very weird problem at boot time. I'm using libnss-mysql to
authenticate users, and my nsswitch.conf is set to check files first,
then mysql.
At boot time, /usr is not yet mounted, and as such, anything that
would need to connect to mysql would fail (because libmysqlclient is
in /usr/lib). However, the problem is that udevd is not starting
without /usr mounted. A simple 'ls' on root dir fails as well, even
though all files and dirs there are owned by root:root (and of course,
root is on passwd and groups). An strace indicates that both of them
are trying to access /usr/lib/libmysqlclient.so, and when they get the
"No such file or directory", they fail with this message:

Inconsistency detected by ld.so: dl-open.c: 604: _dl_open: Assertion
`_dl_debug_initialize (0, args.nsid)->r_state == RT_CONSISTENT'
failed!

My workaround (and a kinda ugly one) was to edit /sbin/rc (the script
that calls udevd) and put there just before calling udevd:

mknod /dev/hda7 b 3 7
mount /usr   (my /usr is in /dev/hda7)

This makes it work, but I'm sure someone might have a better idea than
that, because I'll lose this as soon as the package that owns /sbin/rc
is updated.
This worked before the last update to glibc, I just don't know why it
tries to connect to mysql now (either it didn't before, or it did try
but would not fail like that).

Can anyone shed some light on this?

--
Bruno Lustosa <[EMAIL PROTECTED]>
http://www.lustosa.net/
--
gentoo-user@gentoo.org mailing list

Reply via email to