OpenSSH 4.2 with KRB5 1.4.1 on Solaris 2.6

Ken Raeburn raeburn at MIT.EDU
Tue Jan 17 19:05:46 EST 2006


On Jan 17, 2006, at 18:29, Albert Chin wrote:
> We have someone running OpenSSH 4.2 with KRB5 1.4.1 on Solaris 2.6
> encountering the following error:
>   Assertion failed: i->did_run != 0, file ../../include/k5- 
> platform.h, line 232
>   debug1: do_cleanup
>
> Things seem to work ok on Solaris 8 and 10 with Solaris 8 binaries.
>
> KRB5 1.4.1 was built with the Sun C compiler and linked _statically_
> into the OpenSSH binary.
>
> Any ideas? Is there an easy way to find out what function is being
> passed to k5_call_init_function()?

My first guess: The Solaris 2.6 C library probably has a function  
pthread_once which doesn't do anything.  Our code uses weak  
references, finds that a definition of pthread_once has been linked  
in, and uses it instead of working around its lack.  The update to  
1.4.2 or 1.4.3 included changes to how we decide whether pthread  
support has been linked in, and will probably work better if this is  
the case.

It probably doesn't matter much which function was passed to  
k5_call_init_function, because there are several calls in the library  
code, and each one will probably suffer the same problem.  If you can  
get a stack trace, you could probably figure it out -- actually, the  
debugger might not show you the function calling  
k5_call_init_function because it's expanded inline, but if it  
doesn't, it'll probably show you the next caller up the chain, and  
the code there would tell you which function is invoking  
k5_call_init_function, which would in turn show you the initializer  
that's supposed to be called.

Ken



More information about the Kerberos mailing list