Threading support (on HP-UX)

Osipov, Michael (IN IT IN) michael.osipov at innomotics.com
Wed Sep 17 15:45:01 EDT 2025


On 2025-09-17 20:41, Greg Hudson wrote:
> On 9/17/25 06:31, Osipov, Michael (IN IT IN) wrote:
>>> if [ -r ../../lib/libgssapi_krb5.so ]; then SHLIB_PATH=`echo -L../../ 
>>> lib | sed -e "s/-L//g" -e "s/ /:/g"` KRB5_CONFIG=../../config-files/ 
>>> krb5.conf LC_ALL=C  ./reload; fi
>>> Assertion failed: destructors_set[keynum] == 0, file threads.c, line 351
> 
> This test program loads libgssapi_krb5, uses it minimally, and unloads 
> it, all repeated twice.  The assertion failure means that the library 
> initializer ran both times it was loaded, but the library finalizer 
> didn't run in between.  So something is wrong with the library finalizer 
> support for HP-UX as determined by include/k5-platform.h and the 
> autoconf stuff.  If there is a flag to block unloading when building a 
> shared library, like the ELF "-z nodelete" flag, that would be the best 
> fix; see the lib_unload_prevented variable in config/shlib.conf.

I have found a solution for that, will provide a PR.
Progress:
> PYTHONPATH=../util VALGRIND="" python3 ./t_authdata.py
> *** Skipping: anonymous ticket authdata tests: PKINIT not built
> *** Skipping: replaced_reply_key test: PKINIT not built
> *** Failure: /var/tmp/ports/work/krb5-1.22.1/src/clients/kvno/kvno failed with code 1.
> *** Last mark: S4U2Proxy with a foreign client
> *** Last command (#117): /var/tmp/ports/work/krb5-1.22.1/src/clients/kvno/kvno -C impersonator at A -c FILE:/var/tmp/ports/work/krb5-1.22.1/src/tests/testdir/2/usercache
> *** Output of last command:
> kvno: No credentials cache found (filename: /var/tmp/ports/work/krb5-1.22.1/src/tests/testdir/2/ccache) while getting client principal name
> For details, see: /var/tmp/ports/work/krb5-1.22.1/src/tests/testlog
> Or re-run this test script with the -v flag:
>     cd /var/tmp/ports/work/krb5-1.22.1/src/tests
>     PYTHONPATH=/var/tmp/ports/work/krb5-1.22.1/src/util /opt/ports/python/bin/python3 ./t_authdata.py -v
> 
> Use --debug=NUM to run a command under a debugger.  Use
> --stop-after=NUM to stop after a daemon is started in order to
> attach to it with a debugger.  Use --help to see other
> options.
> gmake[1]: *** [Makefile:791: check-pytests] Error 1
> gmake[1]: Leaving directory '/var/tmp/ports/work/krb5-1.22.1/src/tests'
> gmake: *** [Makefile:1537: check-recurse] Error 1

Michael


More information about the Kerberos mailing list