(Illustration by Gaich Muramatsu)
On Wed, Nov 02, 2005 at 09:01:21PM +0300, mkondrin wrote: > Recently I have a lot of fun trying to build coda-6.0.12 with > heimdal-0.7.1 (the latest version). Coda compiles fine with it but auth2 > can not start. It dies from the beggining somewhere in LWP while doing > swapcontext. The problem was that the new heimdal is automatically built > with pthread support if pthread library is found. Heimdal is functional > in either case (with pthread support enabled or explicitely disabled > during configuration) but coda works only with heimdal without pthreads. > Don't know whose bug this is, but I decide to post this message for > those who would like to step over rakes after me. I knew that mixing Coda's threads and pthreads doesn't work well. But I didn't know that heimdal started using pthreads. I kind of hoped that the new thread switching code in LWP-2.0 would interact a bit better, but hadn't tested it. There is an implementation of LWP over pthreads which I used at one time to debug some memory problems in the Coda client with valgrind, valgrind really disliked LWP threads :) It is a bit of a hassle to get going and the locking is subtly different, so I'm not sure how stable the client is when built that way. When building LWP, there is a configure option '--enable-pthread' which builds liblwp_pt. Then there is a configure option (--with-lwp-pt) for rpc2/rvm and coda which will force the build to include -D_REENTRANT in the cflags and link the final binaries against the _pt version of lwp. It will fix the mixing of pthreads and lwp threads, but again, I am not sure how stable the result is since this code hasn't been used in a while. JanReceived on 2005-11-02 13:55:46