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