2003-09-15 02:14:27

by Chip Salzenberg

[permalink] [raw]
Subject: Bug#202756: [[email protected]: Re: Bug#202756: nfs-kernel-server: 1.0.5-1 works with libc6 from unstable but fails with libc6 2.3.2-1 from experimental]

I'm not sure this information made it to the NFS list, so here it is.
Key points:

* 1.0.6 does _not_ fix the crash.

* preloading libpthread.so.0 is still an effective workaround
(well, more of a diagnostic, really - we can't do it for production)

Juergen's conclusion seems disturbingly true:
> There must be something else in libpthread that is needed either by
> mountd or glibc's RPC code.


----- Forwarded message from Juergen Kreileder <[email protected]> -----

Subject: Re: Bug#202756: nfs-kernel-server: 1.0.5-1 works with libc6 from
unstable but fails with libc6 2.3.2-1 from experimental
From: Juergen Kreileder <[email protected]>
To: Philip Blundell <[email protected]>
Cc: [email protected], Chip Salzenberg <[email protected]>
Date: Wed, 10 Sep 2003 08:10:22 +0200

Philip Blundell <[email protected]> writes:

> On Mon, 2003-09-08 at 01:57, Juergen Kreileder wrote:
>> With LD_PRELOAD=libpthread.so.0, mountd works fine. I'm not sure
>> whether this is a glibc or an nfs-kernel-server bug: AFAIK mountd
>> doesn't use threads and should be OK with the functions from libc,
>> but it looks like it needs some of the overriden functions from
>> libpthread.
>>
>> If mountd doesn't use threads and if RPC doesn't require linking
>> with libpthread, then this is a glibc bug.
>
> Aha, okay. Yes, I think this is a known bug, and we have a fix for
> it. I'll check the patch in later today and make a -6 release.
>
> Thanks for investigating!

-6 does NOT fix the problem!

Preloading libpthread.so.0 still works around the problem.

After reading Jakub's explanation for the patch...

,----[ http://sources.redhat.com/ml/libc-hacker/2003-09/msg00002.html ]
| B0rken software, which doesn't link shared libraries which use
| pthread_cond_timedwait against -lpthread is bitten by this. With the
| exception of pthread_cond_timedwait, all pthread_cond_* routines have
| stubs in libc.so, so they are given @@GLIBC_2.3.2 version during
| linking. pthread_cond_timedwait doesn't have the stub, so unless
| -lpthread is specified (certainly the right thing to do), it remains
| unversioned. Mixing pthread_cond_*@GLIBC_2.3.2 and
| pthread_cond_timedwait@GLIBC_2.0 on one pthread_cond_t is deadly.
`----

...I don't think this patch applies to problem: mountd doesn't use
Pthreads at all and should work fine with linking libpthread or this
patch.

There must be something else in libpthread that is needed either by
mountd or glibc's RPC code.


Juergen

--
Juergen Kreileder, Blackdown Java-Linux Team
http://www.blackdown.org/java-linux/java2-status/

----- End forwarded message -----

--
Chip Salzenberg - a.k.a. - <[email protected]>
"I wanted to play hopscotch with the impenetrable mystery of existence,
but he stepped in a wormhole and had to go in early." // MST3K


--
To UNSUBSCRIBE, email to [email protected]
with a subject of "unsubscribe". Trouble? Contact [email protected]


2003-09-20 05:48:53

by Juergen Kreileder

[permalink] [raw]
Subject: Bug#202756: [[email protected]: Re: Bug#202756: nfs-kernel-server: 1.0.5-1 works with libc6 from unstable but fails with libc6 2.3.2-1 from experimental]

Chip Salzenberg <[email protected]> writes:

> I'm not sure this information made it to the NFS list, so here it
> is. Key points:
>
> * 1.0.6 does _not_ fix the crash.
>
> * preloading libpthread.so.0 is still an effective workaround
> (well, more of a diagnostic, really - we can't do it for production)
>
> Juergen's conclusion seems disturbingly true:
>> There must be something else in libpthread that is needed either by
>> mountd or glibc's RPC code.

Looks like a glibc problem, it's triggered by using lwres in nsswitch.conf.
See http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=211621


Juergen

--
Juergen Kreileder, Blackdown Java-Linux Team
http://www.blackdown.org/java-linux/java2-status/

2003-09-20 17:23:09

by Chip Salzenberg

[permalink] [raw]
Subject: Re: [[email protected]: Re: Bug#202756: nfs-kernel-server: 1.0.5-1 works with libc6 from unstable but fails with libc6 2.3.2-1 from experimental]

According to Juergen Kreileder:
> Chip Salzenberg <[email protected]> writes:
> > * 1.0.6 does _not_ fix the crash.
> > * preloading libpthread.so.0 is still an effective workaround
>
> Looks like a glibc problem, it's triggered by using lwres in nsswitch.conf.
> See http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=211621

Ah, that's excellent news from our end.

Have you verified that avoiding lwres allows mountd to keep working?
Or is that not a practical test for you?
--
Chip Salzenberg - a.k.a. - <[email protected]>
"I wanted to play hopscotch with the impenetrable mystery of existence,
but he stepped in a wormhole and had to go in early." // MST3K


-------------------------------------------------------
This sf.net email is sponsored by:ThinkGeek
Welcome to geek heaven.
http://thinkgeek.com/sf
_______________________________________________
NFS maillist - [email protected]
https://lists.sourceforge.net/lists/listinfo/nfs

2003-09-20 18:01:27

by Juergen Kreileder

[permalink] [raw]
Subject: Bug#202756: [[email protected]: Re: Bug#202756: nfs-kernel-server: 1.0.5-1 works with libc6 from unstable but fails with libc6 2.3.2-1 from experimental]

Chip Salzenberg <[email protected]> writes:

> According to Juergen Kreileder:
>> Chip Salzenberg <[email protected]> writes:
>>> * 1.0.6 does _not_ fix the crash.
>>> * preloading libpthread.so.0 is still an effective workaround
>>
>> Looks like a glibc problem, it's triggered by using lwres in
>> nsswitch.conf. See
>> http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=211621
>
> Ah, that's excellent news from our end.
>
> Have you verified that avoiding lwres allows mountd to keep working?

Yes, mountd works fine when I disable lwres.


Juergen

--
Juergen Kreileder, Blackdown Java-Linux Team
http://www.blackdown.org/java-linux/java2-status/