On Jul 7, 2005, at 17:46, Phil Dibowitz wrote:
Things worked well, except that on Solaris 2.6, several applications,
including openssh and a homegrown app through this:

Assertion failed: i->did_run != 0, file
../../../../src/lib/krb5/../../include/k5-platform.h, line 232

And for reference, that's:

static inline int k5_call_init_function(k5_init_t *i)
{
    int err;
    err = k5_once(&i->once, i->fn);
    if (err)
        return err;
    assert (i->did_run != 0);
    return i->error;
}

Depending on the configuration properties and options, a couple of things are likely to be happening here:

* initializers are set up to run when the shared library is loaded because of configure options, and it's not happening, or the various initializers aren't running in the order expected, so one runs and tries to use some other interface that was supposed to have been initialized already but wasn't

* initializers are running via pthread_once, but somehow you've got a version of pthread_once that never calls the supplied function (some OS vendors seem to think this is a reasonable thing to put in libc for when you don't link in the pthread library, but it's not really POSIX compliant, which would require that either the function be present and behave correctly, or that it not be present)

Without a bit more data, it's hard to tell. Do these applications link against the pthread library? Did you give any interesting options when configuring the Kerberos code? What did configure report when it went looking for pthread_once?

Anyone have any ideas? Note that solaris 2.6 is the ONLY version that runs
this - and we have two servers we haven't been able to upgrade yet...

We haven't got Solaris 2.6 installed anywhere any more for testing...

Ken

________________________________________________
Kerberos mailing list           Kerberos@mit.edu
https://mailman.mit.edu/mailman/listinfo/kerberos

Reply via email to