colo: Can not recover colo after svm failover twice
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
QEMU |
Fix Released
|
Undecided
|
Unassigned |
Bug Description
Hi Expert,
x-blockdev-change met some error, during testing colo
Host os:
CentOS Linux release 7.6.1810 (Core)
Reproduce steps:
1. create colo vm following https:/
2. kill secondary vm and remove the nbd child from the quorum to wait for recover
type those commands on primary vm console:
{ 'execute': 'x-blockdev-
{ 'execute': 'human-
{ 'execute': 'x-colo-
3. recover colo
4. kill secondary vm again after recover colo and type same commands as step 2:
{ 'execute': 'x-blockdev-
{ 'execute': 'human-
{ 'execute': 'x-colo-
but the first command got error
{ 'execute': 'x-blockdev-
{"error": {"class": "GenericError", "desc": "Node 'colo-disk0' does not have child 'children.1'"}}
according to https:/
Command: x-blockdev-change
Dynamically reconfigure the block driver state graph. It can be used to add, remove, insert or replace a graph node. Currently only the Quorum driver implements this feature to add or remove its child. This is useful to fix a broken quorum child.
It seems x-blockdev-change not worked as expected.
Thanks.
In step 3 I used following commands: 169.254. 66.10:9999/ parent0" , "mode": "existing" ,"format" :"raw", "sync": "full"} }
on primary vm console:
{"execute": "drive-mirror", "arguments":{ "device": "colo-disk0", "job-id": "resync", "target": "nbd://
// till the job ready
{ "execute": "query-block-jobs" }
{"execute": "stop"}
{"execute": "block-job-cancel", "arguments":{ "device": "resync"} }
{'execute': 'human- monitor- command' , 'arguments': {'command-line': 'drive_add -n buddy driver= replication, mode=primary, file.driver= nbd,file. host=169. 254.66. 10,file. port=9999, file.export= parent0, node-name= replication0' }} change' , 'arguments' :{'parent' : 'colo-disk0', 'node': 'replication0' } } set-capabilitie s', 'arguments': {'capabilities': [ {'capability': 'x-colo', 'state': true } ] } } 254.66. 10:9998' } } set-parameters" , "arguments":{ "x-checkpoint- delay": 10000 } }
{'execute': 'x-blockdev-
{'execute': 'migrate-
{'execute': 'migrate', 'arguments': {'uri': 'tcp:169.
{ "execute": "migrate-