summaryrefslogtreecommitdiffstats
path: root/src/tests
diff options
context:
space:
mode:
authorGreg Hudson <ghudson@mit.edu>2013-01-22 17:42:37 -0500
committerGreg Hudson <ghudson@mit.edu>2013-01-22 17:49:50 -0500
commit7665c0677b59574c2c7ccd016221f8f4beafd279 (patch)
treed1ec1717f811370bc9e0fdd0262ea7086dfd0055 /src/tests
parent4b3937182b75e08eaf8f259828b018a2b6d2c111 (diff)
downloadkrb5-7665c0677b59574c2c7ccd016221f8f4beafd279.tar.gz
krb5-7665c0677b59574c2c7ccd016221f8f4beafd279.tar.xz
krb5-7665c0677b59574c2c7ccd016221f8f4beafd279.zip
Fix iprop log reinitialization
If the master iprop log is reinitialized to serial number 0, slaves will need to take a full dump--but after that happens, we need to know whether the slave has taken that full dump, we we don't offering full dumps indefinitely. So, record a timestamp in kdb_last_time when we reinitialize the log header, and compare the slave timestamp to kdb_last_time whenever it has the current serial number, even if it's 0. Test this by performing a propagation with sno 0 in t_iprop.py and detecting whether kpropd gets a second UPDATE_FULL_RESYNC_NEEDED response from kadmind. ticket: 7550 (new)
Diffstat (limited to 'src/tests')
-rw-r--r--src/tests/t_iprop.py8
1 files changed, 3 insertions, 5 deletions
diff --git a/src/tests/t_iprop.py b/src/tests/t_iprop.py
index df97b9224..08d3872b3 100644
--- a/src/tests/t_iprop.py
+++ b/src/tests/t_iprop.py
@@ -32,6 +32,8 @@ def wait_for_prop(kpropd, full_expected):
kpropd.send_signal(signal.SIGUSR1)
# Detect some failure conditions.
+ if 'Still waiting for full resync' in line:
+ fail('kadmind gave consecutive full resyncs')
if 'Rejected connection' in line:
fail('kpropd rejected kprop connection')
if 'get updates failed' in line:
@@ -156,16 +158,12 @@ realm.run([kproplog, '-R'])
out = realm.run([kproplog, '-h'])
if 'Last serial # : None' not in out:
fail('Reset of update log on master failed')
-realm.run_kadminl('modprinc -allow_tix w')
-out = realm.run([kproplog, '-h'])
-if 'Last serial # : 1' not in out:
- fail('Update log on master has incorrect last serial number')
# Get and check a full resync.
kpropd.send_signal(signal.SIGUSR1)
wait_for_prop(kpropd, True)
out = realm.run([kproplog, '-h'], slave)
-if 'Last serial # : 1' not in out:
+if 'Last serial # : None' not in out:
fail('Update log on slave has incorrect last serial number')
success('iprop tests')