[krbdev.mit.edu #8632] make check breaks in AIX

Greg Hudson via RT rt-comment at KRBDEV-PROD-APP-1.mit.edu
Tue Jan 16 11:40:18 EST 2018


I see two potential candidates for the failing k5_mutex_lock() call, 
based on the k5_mutex_lock() calls which occur in test_et after the 
last line of output is written:

1. com_err_terminate() -> krb5int_key_delete() -> 
k5_mutex_lock(&key_lock)
2. com_err_terminate() -> k5_mutex_lock(&et_list_lock)

Candidate 2 seems unlikely as the destruction of et_list_lock clearly 
happens after the k5_mutex_lock() call.

For candidate 1, If the libkrb5support finalizer runs before the 
libcom_err finalizer, key_lock would be destroyed before we lock it 
and we would get an EINVAL.  Since AIX doesn't seem to do shared 
library dependencies, I guess it's not surprising that it would also 
not do library finalizer ordering.  The best workaround is probably 
to avoid running library finalizers on AIX.


More information about the krb5-bugs mailing list