[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#202756: nfs-kernel-server: 1.0.5-1 works with libc6 from unstable but fails with libc6 2.3.2-1 from experimental



Philip Blundell <philb@gnu.org> 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/



Reply to: