Kerberos failing pthreads assert when running in php+Apache2? (Mac OS X 10.4.5)

Ken Raeburn raeburn at MIT.EDU
Wed Mar 15 14:40:14 EST 2006


On Mar 15, 2006, at 11:44, Jonathan Williams wrote:
> I've been using a port of phpkrb5 (PHP3/4) to PHP5 (http://
> homepages.nyu.edu/~jcw9/phpkrb5php5.tar.gz ~12 K, run `phpize` to
> make all the Makefiles, etc.). This is *REALLY SIMPLE* code.
>
> One of Apple's most recent updates to Tiger seems to have caused
> Kerberos within the Apache2 context to fail a pthreads assertation.
> (However, applications using mod_auth_kerberos for HTTP
> Authentication are working fine still.)

 From the fact that you mention disabling thread support in Kerberos,  
I assume you're building and installing a copy of krb5 from MIT,  
rather than using the version of KfM included with the operating system?

It occurs to me that the problems you describe could arise if two  
versions of the Kerberos libraries were loaded into the same address  
space, and symbol name resolution pointed some of the MIT functions  
at support symbols provided by the KfM framework.  I.e., we call a  
routine for initializing a mutex, the routine is in one library  
version and initializes that library's copy of the mutex, then we  
directly examine the mutex, but we get pointed to the other copy of  
the mutex in the other library.

If you built krb5 from MIT, I assume you wound up linking static  
libraries into your PHP module rather than linking against dynamic  
libraries, since our last release should only build static libraries  
for the Mac?

Is it possible that both the Kerberos framework and your freshly  
built krb5 library are being loaded into the same process?  (What is  
mod_auth_kerberos using?)  Ideally, that ought to work okay, if  
dynamic objects are loaded in a way that keeps the namespaces  
separated.  But I don't have a convenient apache+php build setup  
lying around to test what might be happening in your case.

Ken



More information about the Kerberos mailing list