diff options
| author | Greg Hudson <ghudson@mit.edu> | 2013-01-22 17:42:37 -0500 |
|---|---|---|
| committer | Greg Hudson <ghudson@mit.edu> | 2013-01-22 17:49:50 -0500 |
| commit | 7665c0677b59574c2c7ccd016221f8f4beafd279 (patch) | |
| tree | d1ec1717f811370bc9e0fdd0262ea7086dfd0055 /src/tests | |
| parent | 4b3937182b75e08eaf8f259828b018a2b6d2c111 (diff) | |
| download | krb5-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.py | 8 |
1 files changed, 3 insertions, 5 deletions
diff --git a/src/tests/t_iprop.py b/src/tests/t_iprop.py index df97b9224c..08d3872b34 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') |
