Add regression test for bug 1824435

This adds a regression test in our post test hook. We are not able to
do a similar test in the unit or functional tests because SQLite does
not provide any isolation between transactions on the same database
connection [1] and the bug can only be reproduced with the isolation
that is present when using a real MySQL database.

Related-Bug: #1824435

[1] https://www.sqlite.org/isolation.html

 Conflicts:
	gate/post_test_hook.sh

NOTE(melwitt): The conflict is due to change
I993c9661c37da012cc975ee8c04daa0eb9216744 which is not in Train.

Change-Id: I204361d6ff7c2323bc744878d8a9fa2d20a480b1
(cherry picked from commit 7c41365f19)
This commit is contained in:
melanie witt 2019-10-11 20:58:03 +00:00
parent ab6834145f
commit 73b6cb897e
1 changed files with 27 additions and 1 deletions

View File

@ -22,7 +22,10 @@ function archive_deleted_rows {
if [[ $RET -gt 1 ]]; then
echo Archiving failed with result $RET
return $RET
elif [[ $RET -eq 0 ]]; then
# When i = 1, we only archive cell0 (without --all-cells), so run at
# least twice to ensure --all-cells are archived before considering
# archiving complete.
elif [[ $RET -eq 0 && $i -gt 1 ]]; then
echo Archiving Complete
break;
fi
@ -150,3 +153,26 @@ if [[ "$allocations" == "" ]]; then
echo "Failed to heal allocations."
exit 2
fi
echo "Verifying online_data_migrations idempotence"
# We will re-use the server created earlier for this test. (A server needs to
# be present during the run of online_data_migrations and archiving).
# Run the online data migrations before archiving.
$MANAGE db online_data_migrations
# We need to archive the deleted marker instance used by the
# fill_virtual_interface_list online data migration in order to trigger
# creation of a new deleted marker instance.
set +e
archive_deleted_rows
# Verify whether online data migrations run after archiving will succeed.
# See for more details: https://bugs.launchpad.net/nova/+bug/1824435
$MANAGE db online_data_migrations
rc=$?
set -e
if [[ $rc -ne 2 ]]; then
echo "Expected return code 2 from online_data_migrations until bug 1824435 is fixed"
exit 2
fi