Skip to contentSkip to conversation

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]

DISCUSSION Chip Salzenberg 3 participants 4 messages Sep 15, 2003 – Sep 20, 2003

Subsystems (2)
lore
Share & tools
lore
#0 lore raw

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]
#1 lore raw
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/
#2 lore raw

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 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?

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
#3 lore raw
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=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

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