From: Eric Bollengier Date: Wed, 12 Dec 2018 10:06:27 +0000 (+0100) Subject: regress: Add test to reproduce #4449 about incorrect Pool with the restart command X-Git-Tag: Release-9.4.0~7 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=9d951a437a8192b921b586c4466dffce3a79f01d;p=thirdparty%2Fbacula.git regress: Add test to reproduce #4449 about incorrect Pool with the restart command --- diff --git a/regress/tests/stop-restart-test b/regress/tests/stop-restart-test new file mode 100755 index 000000000..a4b51057c --- /dev/null +++ b/regress/tests/stop-restart-test @@ -0,0 +1,95 @@ +#!/bin/sh +# +# Run a backup of the build directory but do a stop and restart in the middle +# and check that it restarts correctly. +# +TestName="stop-restart-job" +JobName=RestartJob +. scripts/functions + +scripts/cleanup +scripts/copy-test-confs + +setup_shstore # simulate shared storage if enabled + +echo "${cwd}/build" >${cwd}/tmp/file-list + +change_jobname NightlySave $JobName +start_test + +# We add a pool to the configuration that is not the default pool +# for the job +cat <> $conf/bacula-dir.conf +Pool { + Name = PoolA + Pool Type = Backup + Recycle = yes # Bacula can automatically recycle Volumes + AutoPrune = yes # Prune expired volumes + Volume Retention = 365d # one year + Label Format = "Vol" + Maximum Volume Bytes = 30MB +} +EOF + +# If needed, the job can create a volume in the Default pool +$bperl -e 'add_attribute("$conf/bacula-dir.conf", "LabelFormat", "Vol", "Pool", "Default")' + +cat <${cwd}/tmp/bconcmds +@output /dev/null +messages +@$out ${cwd}/tmp/log0.out +setbandwidth limit=3MB/s client +run job=$JobName yes pool=PoolA +@sleep 3 +stop jobid=1 +wait +messages +setbandwidth limit=0 client +@$out ${cwd}/tmp/log1.out +restart +1 +1 +wait +messages +@$out $tmp/log3.out +list pools +quit +END_OF_DATA + +run_bacula + +scripts/check_for_zombie_jobs storage=File + +cat <${cwd}/tmp/bconcmds +@output /dev/null +messages +@# +@# now do a restore +@# +@$out ${cwd}/tmp/log2.out +restore where=$tmp/bacula-restores storage=File select all done +yes +wait +messages +quit +END_OF_DATA + +run_bconsole +scripts/check_for_zombie_jobs storage=File +stop_bacula + +nb=`awk '/Default/ { print $6 }' $tmp/log3.out` +if [ "$nb" -ne 0 ]; then + print_debug "ERROR: volumes should come from PoolA in $tmp/log3.out" + estat=1 +fi + +nb=`awk '/PoolA/ { print $6 }' $tmp/log3.out` +if [ "$nb" -lt 1 ]; then + print_debug "ERROR: volumes should go to PoolA in $tmp/log3.out" + estat=1 +fi + +check_two_logs +check_restore_diff +end_test