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 ________________________________________________ Kerberos mailing list [email protected] https://mailman.mit.edu/mailman/listinfo/kerberos
