Apparently only kadmind and kadmin.local mmap() in the iprop ulog, and only they log to the ulog. Evidently the intention was that kadm5srv consumers that want their transactions iprop'ed should call kadm5_init_iprop(), but that makes no sense: why would one want to modify the KDB on the master and not log then in the ulog? Also, if one might want to do that, then why doesn't kadmin.local have an option to not write transactions to the ulog? The fix is simple: make kadm5_init_iprop() a no-op and make kadm5_init() on the server-side do what kadm5_init_iprop() was doing.