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]
Subsystems (2)
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:
Quoted 2 lines
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
Quoted 7 lines · Philip Blundell
Quoted 6 lines · Juergen Kreileder
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.
Quoted 7 lines
Quoted 2 lines
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
Signature · 14 lines
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]
Quoted 11 lines · Chip Salzenberg
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:
Quoted 2 lines
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
Signature · 2 lines
Juergen Kreileder, Blackdown Java-Linux Team http://www.blackdown.org/java-linux/java2-status/
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:
Quoted 6 lines
Quoted 2 lines · Chip Salzenberg
* 1.0.6 does _not_ fix the crash.
* preloading libpthread.so.0 is still an effective workaroundLooks 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?
Signature · 12 lines
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
Quoted 5 lines · Chip Salzenberg
According to Juergen Kreileder:
Quoted 4 lines
Quoted 2 lines · Chip Salzenberg
* 1.0.6 does _not_ fix the crash.
* preloading libpthread.so.0 is still an effective workaround
Quoted 7 lines
Quoted 3 lines
Looks like a glibc problem, it's triggered by using lwres in nsswitch.conf. See
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=211621Ah, 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
Signature · 2 lines
Juergen Kreileder, Blackdown Java-Linux Team http://www.blackdown.org/java-linux/java2-status/