Assertion failure advice

Simon Josefsson simon at josefsson.org
Mon Apr 16 09:43:04 CEST 2007


David Given <dg at cowlark.com> writes:

> My program, which uses gnutls, is very occasionally crashing for no apparent
> reason. After much effort (running it in a screen session for two weeks...)
> I've finally managed to get some tracing:

Thanks for debugging this.

> spey: ath.c:184: _gcry_ath_mutex_lock: Assertion `*lock == ((ath_mutex_t) 0)'
> failed.
>
> This appears to be an assertion failure inside gnutls. I can tell from the
> rest of the tracing that it's happening inside a call to gnutls_handshake().

This looks like a gcrypt and mutex related problem to me.  I'm cc'ing
the libgcrypt mailing list.  Werner, any ideas?  What would trigger
this assertion?

> Does anyone know what this might be signifying? It doesn't seem to be my
> fault, but I have had very little experience driving the GNUTLS API and I
> could easily be getting something wrong. It looks like a mutex failure, but
> while my program is multithreaded, I'm using a unique session object per
> socket, so I wouldn't have thought this would apply.

Does you program link to libgcrypt through some other dependency?
Think LDAP, etc.  Do you initialize libgcrypt/gnutls with mutexes?

/Simon



More information about the Gcrypt-devel mailing list