Skip to content

Commit

Permalink
Test the inconsistent locking fix and svc unavail
Browse files Browse the repository at this point in the history
Test the fix for https://bugzilla.redhat.com/show_bug.cgi?id=586032 .

Also test that krb5kdc can return svc unavailable
  • Loading branch information
nicowilliams authored and greghudson committed Sep 12, 2012
1 parent 29ee39b commit b2e7deb
Show file tree
Hide file tree
Showing 2 changed files with 40 additions and 0 deletions.
1 change: 1 addition & 0 deletions src/tests/Makefile.in
Expand Up @@ -68,6 +68,7 @@ check-pytests:: hist
$(RUNPYTEST) $(srcdir)/t_anonpkinit.py $(PYTESTFLAGS)
$(RUNPYTEST) $(srcdir)/t_lockout.py $(PYTESTFLAGS)
$(RUNPYTEST) $(srcdir)/t_kadm5_hook.py $(PYTESTFLAGS)
$(RUNPYTEST) $(srcdir)/t_kdb_locking.py $(PYTESTFLAGS)
$(RUNPYTEST) $(srcdir)/t_keyrollover.py $(PYTESTFLAGS)
$(RUNPYTEST) $(srcdir)/t_allowed_keysalts.py $(PYTESTFLAGS)
$(RUNPYTEST) $(srcdir)/t_renew.py $(PYTESTFLAGS)
Expand Down
39 changes: 39 additions & 0 deletions src/tests/t_kdb_locking.py
@@ -0,0 +1,39 @@
#!/usr/bin/python

# This is a regression test for
# https://bugzilla.redhat.com/show_bug.cgi?id=586032 .
#
# We start a KDC, remove the kadm5 lock file, use the KDC, re-create the
# kadm5 lock file, and use kadmin.local. The kinit should fail, and the
# kadmin.local should succeed.


import os

from k5test import *

kdc_conf = {
'all' : { 'libdefaults' : { 'default_realm' : 'KRBTEST.COM'}}
}

p = 'foo'
realm = K5Realm(kdc_conf=kdc_conf, create_user=False)
realm.addprinc(p, p)

kadm5_lock = os.path.join(realm.testdir, 'master-db.kadm5.lock')
if not os.path.exists(kadm5_lock):
fail('kadm5 lock file not created: ' + kadm5_lock)
os.unlink(kadm5_lock)

output = realm.kinit(p, p, [], expected_code=1)
if 'A service is not available' not in output:
fail('krb5kdc should have returned service not available error')

f = open(kadm5_lock, 'w')
f.close()

output = realm.run_kadminl('modprinc -allow_tix ' + p)
if 'Cannot lock database' in output:
fail('krb5kdc still holds a lock on the principal db')

success('KDB locking tests')

0 comments on commit b2e7deb

Please sign in to comment.