resize-volume fails after create from backup
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
OpenStack DBaaS (Trove) |
Fix Released
|
Medium
|
Simon Chang |
Bug Description
I did these steps:
$ trove create mydb 100 --size 2 --datastore mysql --datastore-version mysql-5.5 --databases custdemo --users doug:password
I loaded a small schema and small amount of data into the custdemo database (I don't really believe this was material to the isuse)
$ trove backup-create <uuid> mybkup
I decided to delete the instance (so I had room on my compute :) )
$ trove delete <uuid of mydb>
Create a new instance from backup
$ trove create mynew 100 --size 2 --datastore mysql --backup <uuid of mybkup>
Resize the volume
$ trove resize-volume <uuid of mynew> 3
Instance never returns from "RESIZE" state
Noticed this in trove-guestagen
2014-08-29 16:47:39.652 945 DEBUG trove.openstack
009-db57-
89ec044b1a5b5faf6 - - -] Running cmd (subprocess): sudo e2fsck -f -p /dev/vdb ex
ecute /usr/lib/
8
2014-08-29 16:47:40.372 945 DEBUG trove.openstack
009-db57-
89ec044b1a5b5faf6 - - -] Result was 1 execute /usr/lib/
rove/openstack/
2014-08-29 16:47:40.374 945 ERROR trove.guestagen
b-a141-58a664bacbfa 1afaeff0e5bb45c
5faf6 - - -] Error resizing file system.
2014-08-29 16:47:40.374 945 TRACE trove.guestagen
call last):
2014-08-29 16:47:40.374 945 TRACE trove.guestagen
n2.7/dist-
2014-08-29 16:47:40.374 945 TRACE trove.guestagen
root_helper="sudo")
2014-08-29 16:47:40.374 945 TRACE trove.guestagen
n2.7/dist-
2014-08-29 16:47:40.374 945 TRACE trove.guestagen
2014-08-29 16:47:40.374 945 TRACE trove.guestagen
Unexpected error while running command.
2014-08-29 16:47:40.374 945 TRACE trove.guestagen
f -p /dev/vdb
2014-08-29 16:47:40.374 945 TRACE trove.guestagen
2014-08-29 16:47:40.374 945 TRACE trove.guestagen
st+found not found. CREATED.\n/dev/vdb: 129/131072 files (10.9% non-contiguous)
, 56675/524288 blocks\n'
2014-08-29 16:47:40.374 945 TRACE trove.guestagen
2014-08-29 16:47:40.374 945 TRACE trove.guestagen
2014-08-29 16:47:40.429 945 ERROR trove.openstack
db57-498b-
044b1a5b5faf6 - - -] Exception during message handling
It looks like e2fsck is succeeding but return exit code 1 because of the "lost+found not found" warning. From what i can tell, Mysql doesn't like that there is a "lost+found" directory with its data and renames it.
Changed in trove: | |
assignee: | nobody → Simon Chang (changsimon) |
Changed in trove: | |
status: | New → Confirmed |
Changed in trove: | |
milestone: | none → juno-rc1 |
importance: | Undecided → Medium |
Changed in trove: | |
status: | Confirmed → Triaged |
Changed in trove: | |
milestone: | kilo-2 → kilo-3 |
Changed in trove: | |
milestone: | kilo-3 → kilo-rc1 |
Changed in trove: | |
milestone: | kilo-rc1 → liberty-1 |
Changed in trove: | |
milestone: | liberty-1 → liberty-2 |
Changed in trove: | |
milestone: | liberty-3 → liberty-2 |
Changed in trove: | |
status: | Fix Committed → Fix Released |
Changed in trove: | |
milestone: | liberty-2 → 4.0.0 |
The db volume is mounted under /var/lib/mysql. The xtrabackup restore function (trove/ guestagent/ strategies/ restore/ mysql_impl. py) restores the lost+found directory in the volume as lost@002bfound. When resize volume runs, the e2fsck step raise a warning saying the lost+found directory is not found, because the earlier restore named the "lost+found" directory as "lost@002bfound".