[OpenAFS] Re: AFS Perl module and threaded Perl

Russ Allbery rra@stanford.edu
Fri, 03 Dec 2004 12:01:37 -0800


Norbert Gruener <nog@MPA-Garching.MPG.DE> writes:

> With this hint I tried to provoke the same error with the OpenAFS "vos"
> binary.  Therefore I linked the OpenAFS "vos" binary against the
> "libpthread" library in order to force the "vos" binary to use the
> "threaded" version of the system function "longjmp". And, voila,...  the
> "vos" binary crashed exactly at the same place.

>   #0  0x400257c3 in pthread_cleanup_upto () from /lib/libpthread.so.0
>   #1  0x40025874 in longjmp () from /lib/libpthread.so.0
>   #2  0x08082aea in returnto ()
>   #3  0x080825f1 in Dispatcher ()
>   #4  0x08082a2d in savecontext ()
>   #5  0x08082430 in Create_Process_Part2 ()
>   #6  0x08082a79 in savecontext ()
>   #7  0x08081e43 in LWP_CreateProcess ()
>   #8  0x0808336b in IOMGR_Initialize ()
>   #9  0x080814be in rxi_InitializeThreadSupport ()
>   #10 0x0807470e in rx_Init ()
>   #11 0x0805dad2 in vsu_ClientInit (...)    at vsutils.c:407
>   #12 0x0805101b in MyBeforeProc (as=0x80ab5e0, arock=0x0) at vos.c:4026
>   #13 0x0806b045 in cmd_Dispatch ()
>   #14 0x08052e3f in main (argc=3, argv=0xbffffa04) at vos.c:4282

> As you can see from the traces the "problem" is deep in the LWP package
> of OpenAFS.  And my conclusion is that the "LWP" package and the
> "threaded" version of "longjmp" are not compatible.  But I do not have
> any influence on this part of the code since this is deep in OpenAFS
> land.  So all I can do is to state that the AFS::VOS module is not
> working when used with a "threaded" Perl version.

Well, I think the most basic question here is why is vsu_ClientInit
calling LWP_CreateProcess at all.  Does the client really need to be
threaded?

Is someone who knows the OpenAFS code better than I able to fill us in off
the top of their head?  Do the client binaries really use LWP threads to
handle the network conversations with the servers?

-- 
Russ Allbery (rra@stanford.edu)             <http://www.eyrie.org/~eagle/>