1dfdc48d5SJohn Snow 20af2a09cSJohn Snow=== Mode bitmap; Bitmap Sync never with simulated failure === 3dfdc48d5SJohn Snow 4dfdc48d5SJohn Snow--- Preparing image & VM --- 5dfdc48d5SJohn Snow 6dfdc48d5SJohn Snow{"execute": "blockdev-add", "arguments": {"driver": "qcow2", "file": {"driver": "file", "filename": "TEST_DIR/PID-img"}, "node-name": "drive0"}} 7dfdc48d5SJohn Snow{"return": {}} 8dfdc48d5SJohn Snow 9dfdc48d5SJohn Snow--- Write #0 --- 10dfdc48d5SJohn Snow 11dfdc48d5SJohn Snowwrite -P0x49 0x0000000 0x10000 12dfdc48d5SJohn Snow{"return": ""} 13dfdc48d5SJohn Snowwrite -P0x6c 0x0100000 0x10000 14dfdc48d5SJohn Snow{"return": ""} 15dfdc48d5SJohn Snowwrite -P0x6f 0x2000000 0x10000 16dfdc48d5SJohn Snow{"return": ""} 17dfdc48d5SJohn Snowwrite -P0x76 0x3ff0000 0x10000 18dfdc48d5SJohn Snow{"return": ""} 19dfdc48d5SJohn Snow{ 205c4343b8SVladimir Sementsov-Ogievskiy "bitmaps": {} 21dfdc48d5SJohn Snow} 22dfdc48d5SJohn Snow 23dfdc48d5SJohn Snow--- Reference Backup #0 --- 24dfdc48d5SJohn Snow 25dfdc48d5SJohn Snow{} 26dfdc48d5SJohn Snow{"execute": "job-dismiss", "arguments": {"id": "bdc-file-job"}} 27dfdc48d5SJohn Snow{"return": {}} 28dfdc48d5SJohn Snow{} 29dfdc48d5SJohn Snow{} 30dfdc48d5SJohn Snow{"execute": "job-dismiss", "arguments": {"id": "bdc-fmt-job"}} 31dfdc48d5SJohn Snow{"return": {}} 32dfdc48d5SJohn Snow{} 332d0f32e3SVladimir Sementsov-Ogievskiy{"execute": "blockdev-backup", "arguments": {"device": "drive0", "filter-node-name": "backup-top", "job-id": "ref_backup_0", "sync": "full", "target": "ref_target_0", "x-perf": {"max-workers": 1}}} 34dfdc48d5SJohn Snow{"return": {}} 35dfdc48d5SJohn Snow{"data": {"device": "ref_backup_0", "len": 67108864, "offset": 67108864, "speed": 0, "type": "backup"}, "event": "BLOCK_JOB_COMPLETED", "timestamp": {"microseconds": "USECS", "seconds": "SECS"}} 36dfdc48d5SJohn Snow 37dfdc48d5SJohn Snow--- Add Bitmap --- 38dfdc48d5SJohn Snow 39dfdc48d5SJohn Snow{"execute": "block-dirty-bitmap-add", "arguments": {"granularity": 65536, "name": "bitmap0", "node": "drive0"}} 40dfdc48d5SJohn Snow{"return": {}} 41dfdc48d5SJohn Snow 42dfdc48d5SJohn Snow--- Write #1 --- 43dfdc48d5SJohn Snow 44dfdc48d5SJohn Snowwrite -P0x65 0x0000000 0x10000 45dfdc48d5SJohn Snow{"return": ""} 46dfdc48d5SJohn Snowwrite -P0x77 0x00f8000 0x10000 47dfdc48d5SJohn Snow{"return": ""} 48dfdc48d5SJohn Snowwrite -P0x72 0x2008000 0x10000 49dfdc48d5SJohn Snow{"return": ""} 50dfdc48d5SJohn Snowwrite -P0x69 0x3fe0000 0x10000 51dfdc48d5SJohn Snow{"return": ""} 52dfdc48d5SJohn Snow{ 53dfdc48d5SJohn Snow "bitmaps": { 545c4343b8SVladimir Sementsov-Ogievskiy "drive0": [ 55dfdc48d5SJohn Snow { 56dfdc48d5SJohn Snow "busy": false, 57dfdc48d5SJohn Snow "count": 393216, 58dfdc48d5SJohn Snow "granularity": 65536, 59dfdc48d5SJohn Snow "name": "bitmap0", 60dfdc48d5SJohn Snow "persistent": false, 6181cbfd50SDaniel P. Berrangé "recording": true 62dfdc48d5SJohn Snow } 63dfdc48d5SJohn Snow ] 64dfdc48d5SJohn Snow } 65dfdc48d5SJohn Snow} 66dfdc48d5SJohn Snow 67dfdc48d5SJohn Snow= Checking Bitmap bitmap0 = 68dfdc48d5SJohn Snowexpecting 6 dirty sectors; have 6. OK! 69dfdc48d5SJohn Snow 70dfdc48d5SJohn Snow--- Reference Backup #1 --- 71dfdc48d5SJohn Snow 72dfdc48d5SJohn Snow{} 73dfdc48d5SJohn Snow{"execute": "job-dismiss", "arguments": {"id": "bdc-file-job"}} 74dfdc48d5SJohn Snow{"return": {}} 75dfdc48d5SJohn Snow{} 76dfdc48d5SJohn Snow{} 77dfdc48d5SJohn Snow{"execute": "job-dismiss", "arguments": {"id": "bdc-fmt-job"}} 78dfdc48d5SJohn Snow{"return": {}} 79dfdc48d5SJohn Snow{} 802d0f32e3SVladimir Sementsov-Ogievskiy{"execute": "blockdev-backup", "arguments": {"device": "drive0", "filter-node-name": "backup-top", "job-id": "ref_backup_1", "sync": "full", "target": "ref_target_1", "x-perf": {"max-workers": 1}}} 81dfdc48d5SJohn Snow{"return": {}} 82dfdc48d5SJohn Snow{"data": {"device": "ref_backup_1", "len": 67108864, "offset": 67108864, "speed": 0, "type": "backup"}, "event": "BLOCK_JOB_COMPLETED", "timestamp": {"microseconds": "USECS", "seconds": "SECS"}} 83dfdc48d5SJohn Snow 840af2a09cSJohn Snow--- Test Backup #1 --- 85dfdc48d5SJohn Snow 86dfdc48d5SJohn Snow{} 87dfdc48d5SJohn Snow{"execute": "job-dismiss", "arguments": {"id": "bdc-file-job"}} 88dfdc48d5SJohn Snow{"return": {}} 89dfdc48d5SJohn Snow{} 90dfdc48d5SJohn Snow{} 91dfdc48d5SJohn Snow{"execute": "job-dismiss", "arguments": {"id": "bdc-fmt-job"}} 92dfdc48d5SJohn Snow{"return": {}} 93dfdc48d5SJohn Snow{} 942d0f32e3SVladimir Sementsov-Ogievskiy{"execute": "blockdev-backup", "arguments": {"auto-finalize": false, "bitmap": "bitmap0", "bitmap-mode": "never", "device": "drive0", "filter-node-name": "backup-top", "job-id": "backup_1", "sync": "bitmap", "target": "backup_target_1", "x-perf": {"max-workers": 1}}} 95dfdc48d5SJohn Snow{"return": {}} 96dfdc48d5SJohn Snow 97dfdc48d5SJohn Snow--- Write #2 --- 98dfdc48d5SJohn Snow 99dfdc48d5SJohn Snowwrite -P0x74 0x0010000 0x10000 100dfdc48d5SJohn Snow{"return": ""} 101dfdc48d5SJohn Snowwrite -P0x69 0x00e8000 0x10000 102dfdc48d5SJohn Snow{"return": ""} 103dfdc48d5SJohn Snowwrite -P0x6e 0x2018000 0x10000 104dfdc48d5SJohn Snow{"return": ""} 105dfdc48d5SJohn Snowwrite -P0x67 0x3fe0000 0x20000 106dfdc48d5SJohn Snow{"return": ""} 107dfdc48d5SJohn Snow{ 108dfdc48d5SJohn Snow "bitmaps": { 109af5bcd77SVladimir Sementsov-Ogievskiy "backup-top": [ 110af5bcd77SVladimir Sementsov-Ogievskiy { 111af5bcd77SVladimir Sementsov-Ogievskiy "busy": false, 112af5bcd77SVladimir Sementsov-Ogievskiy "count": 67108864, 113af5bcd77SVladimir Sementsov-Ogievskiy "granularity": 65536, 114af5bcd77SVladimir Sementsov-Ogievskiy "persistent": false, 115af5bcd77SVladimir Sementsov-Ogievskiy "recording": false 116af5bcd77SVladimir Sementsov-Ogievskiy }, 117af5bcd77SVladimir Sementsov-Ogievskiy { 118af5bcd77SVladimir Sementsov-Ogievskiy "busy": false, 119af5bcd77SVladimir Sementsov-Ogievskiy "count": 458752, 120af5bcd77SVladimir Sementsov-Ogievskiy "granularity": 65536, 121af5bcd77SVladimir Sementsov-Ogievskiy "persistent": false, 122af5bcd77SVladimir Sementsov-Ogievskiy "recording": false 123*006e845bSVladimir Sementsov-Ogievskiy }, 124dfdc48d5SJohn Snow { 125dfdc48d5SJohn Snow "busy": false, 126dfdc48d5SJohn Snow "count": 0, 127dfdc48d5SJohn Snow "granularity": 65536, 128dfdc48d5SJohn Snow "persistent": false, 12981cbfd50SDaniel P. Berrangé "recording": false 130*006e845bSVladimir Sementsov-Ogievskiy } 131*006e845bSVladimir Sementsov-Ogievskiy ], 132*006e845bSVladimir Sementsov-Ogievskiy "drive0": [ 133dfdc48d5SJohn Snow { 134dfdc48d5SJohn Snow "busy": false, 135dfdc48d5SJohn Snow "count": 458752, 136dfdc48d5SJohn Snow "granularity": 65536, 137dfdc48d5SJohn Snow "persistent": false, 13881cbfd50SDaniel P. Berrangé "recording": true 139dfdc48d5SJohn Snow }, 140dfdc48d5SJohn Snow { 141dfdc48d5SJohn Snow "busy": true, 142dfdc48d5SJohn Snow "count": 393216, 143dfdc48d5SJohn Snow "granularity": 65536, 144dfdc48d5SJohn Snow "name": "bitmap0", 145dfdc48d5SJohn Snow "persistent": false, 14681cbfd50SDaniel P. Berrangé "recording": true 147dfdc48d5SJohn Snow } 148dfdc48d5SJohn Snow ] 149dfdc48d5SJohn Snow } 150dfdc48d5SJohn Snow} 151dfdc48d5SJohn Snow 152dfdc48d5SJohn Snow= Checking Bitmap bitmap0 = 153dfdc48d5SJohn Snowexpecting 6 dirty sectors; have 6. OK! 154dfdc48d5SJohn Snow 155dfdc48d5SJohn Snow= Checking Bitmap (anonymous) = 156dfdc48d5SJohn Snowexpecting 7 dirty sectors; have 7. OK! 157dfdc48d5SJohn Snow 1580af2a09cSJohn Snow{"execute": "job-cancel", "arguments": {"id": "backup_1"}} 159dfdc48d5SJohn Snow{"return": {}} 1600af2a09cSJohn Snow{"data": {"id": "backup_1", "type": "backup"}, "event": "BLOCK_JOB_PENDING", "timestamp": {"microseconds": "USECS", "seconds": "SECS"}} 1610fff1f13SJohn Snow{"data": {"device": "backup_1", "len": 393216, "offset": 393216, "speed": 0, "type": "backup"}, "event": "BLOCK_JOB_CANCELLED", "timestamp": {"microseconds": "USECS", "seconds": "SECS"}} 162dfdc48d5SJohn Snow{ 163dfdc48d5SJohn Snow "bitmaps": { 1645c4343b8SVladimir Sementsov-Ogievskiy "drive0": [ 165dfdc48d5SJohn Snow { 166dfdc48d5SJohn Snow "busy": false, 167dfdc48d5SJohn Snow "count": 655360, 168dfdc48d5SJohn Snow "granularity": 65536, 169dfdc48d5SJohn Snow "name": "bitmap0", 170dfdc48d5SJohn Snow "persistent": false, 17181cbfd50SDaniel P. Berrangé "recording": true 172dfdc48d5SJohn Snow } 173dfdc48d5SJohn Snow ] 174dfdc48d5SJohn Snow } 175dfdc48d5SJohn Snow} 176dfdc48d5SJohn Snow 177dfdc48d5SJohn Snow= Checking Bitmap bitmap0 = 178dfdc48d5SJohn Snowexpecting 10 dirty sectors; have 10. OK! 179dfdc48d5SJohn Snow 180dfdc48d5SJohn Snow--- Write #3 --- 181dfdc48d5SJohn Snow 182dfdc48d5SJohn Snowwrite -P0xaa 0x0010000 0x30000 183dfdc48d5SJohn Snow{"return": ""} 184dfdc48d5SJohn Snowwrite -P0xbb 0x00d8000 0x10000 185dfdc48d5SJohn Snow{"return": ""} 186dfdc48d5SJohn Snowwrite -P0xcc 0x2028000 0x10000 187dfdc48d5SJohn Snow{"return": ""} 188dfdc48d5SJohn Snowwrite -P0xdd 0x3fc0000 0x10000 189dfdc48d5SJohn Snow{"return": ""} 190dfdc48d5SJohn Snow{ 191dfdc48d5SJohn Snow "bitmaps": { 1925c4343b8SVladimir Sementsov-Ogievskiy "drive0": [ 193dfdc48d5SJohn Snow { 194dfdc48d5SJohn Snow "busy": false, 195dfdc48d5SJohn Snow "count": 983040, 196dfdc48d5SJohn Snow "granularity": 65536, 197dfdc48d5SJohn Snow "name": "bitmap0", 198dfdc48d5SJohn Snow "persistent": false, 19981cbfd50SDaniel P. Berrangé "recording": true 200dfdc48d5SJohn Snow } 201dfdc48d5SJohn Snow ] 202dfdc48d5SJohn Snow } 203dfdc48d5SJohn Snow} 204dfdc48d5SJohn Snow 205dfdc48d5SJohn Snow= Checking Bitmap bitmap0 = 206dfdc48d5SJohn Snowexpecting 15 dirty sectors; have 15. OK! 207dfdc48d5SJohn Snow 208dfdc48d5SJohn Snow--- Reference Backup #2 --- 209dfdc48d5SJohn Snow 210dfdc48d5SJohn Snow{} 211dfdc48d5SJohn Snow{"execute": "job-dismiss", "arguments": {"id": "bdc-file-job"}} 212dfdc48d5SJohn Snow{"return": {}} 213dfdc48d5SJohn Snow{} 214dfdc48d5SJohn Snow{} 215dfdc48d5SJohn Snow{"execute": "job-dismiss", "arguments": {"id": "bdc-fmt-job"}} 216dfdc48d5SJohn Snow{"return": {}} 217dfdc48d5SJohn Snow{} 2182d0f32e3SVladimir Sementsov-Ogievskiy{"execute": "blockdev-backup", "arguments": {"device": "drive0", "filter-node-name": "backup-top", "job-id": "ref_backup_2", "sync": "full", "target": "ref_target_2", "x-perf": {"max-workers": 1}}} 219dfdc48d5SJohn Snow{"return": {}} 220dfdc48d5SJohn Snow{"data": {"device": "ref_backup_2", "len": 67108864, "offset": 67108864, "speed": 0, "type": "backup"}, "event": "BLOCK_JOB_COMPLETED", "timestamp": {"microseconds": "USECS", "seconds": "SECS"}} 221dfdc48d5SJohn Snow 2220af2a09cSJohn Snow--- Test Backup #2 --- 223dfdc48d5SJohn Snow 224dfdc48d5SJohn Snow{} 225dfdc48d5SJohn Snow{"execute": "job-dismiss", "arguments": {"id": "bdc-file-job"}} 226dfdc48d5SJohn Snow{"return": {}} 227dfdc48d5SJohn Snow{} 228dfdc48d5SJohn Snow{} 229dfdc48d5SJohn Snow{"execute": "job-dismiss", "arguments": {"id": "bdc-fmt-job"}} 230dfdc48d5SJohn Snow{"return": {}} 231dfdc48d5SJohn Snow{} 2322d0f32e3SVladimir Sementsov-Ogievskiy{"execute": "blockdev-backup", "arguments": {"auto-finalize": false, "bitmap": "bitmap0", "bitmap-mode": "never", "device": "drive0", "filter-node-name": "backup-top", "job-id": "backup_2", "sync": "bitmap", "target": "backup_target_2", "x-perf": {"max-workers": 1}}} 233dfdc48d5SJohn Snow{"return": {}} 2340af2a09cSJohn Snow{"execute": "job-finalize", "arguments": {"id": "backup_2"}} 235dfdc48d5SJohn Snow{"return": {}} 2360af2a09cSJohn Snow{"data": {"id": "backup_2", "type": "backup"}, "event": "BLOCK_JOB_PENDING", "timestamp": {"microseconds": "USECS", "seconds": "SECS"}} 2370fff1f13SJohn Snow{"data": {"device": "backup_2", "len": 983040, "offset": 983040, "speed": 0, "type": "backup"}, "event": "BLOCK_JOB_COMPLETED", "timestamp": {"microseconds": "USECS", "seconds": "SECS"}} 238dfdc48d5SJohn Snow{ 239dfdc48d5SJohn Snow "bitmaps": { 2405c4343b8SVladimir Sementsov-Ogievskiy "drive0": [ 241dfdc48d5SJohn Snow { 242dfdc48d5SJohn Snow "busy": false, 243dfdc48d5SJohn Snow "count": 983040, 244dfdc48d5SJohn Snow "granularity": 65536, 245dfdc48d5SJohn Snow "name": "bitmap0", 246dfdc48d5SJohn Snow "persistent": false, 24781cbfd50SDaniel P. Berrangé "recording": true 248dfdc48d5SJohn Snow } 249dfdc48d5SJohn Snow ] 250dfdc48d5SJohn Snow } 251dfdc48d5SJohn Snow} 252dfdc48d5SJohn Snow 253dfdc48d5SJohn Snow= Checking Bitmap bitmap0 = 254dfdc48d5SJohn Snowexpecting 15 dirty sectors; have 15. OK! 255dfdc48d5SJohn Snow 256dfdc48d5SJohn Snow--- Cleanup --- 257dfdc48d5SJohn Snow 258dfdc48d5SJohn Snow{"execute": "block-dirty-bitmap-remove", "arguments": {"name": "bitmap0", "node": "drive0"}} 259dfdc48d5SJohn Snow{"return": {}} 260dfdc48d5SJohn Snow{ 2615c4343b8SVladimir Sementsov-Ogievskiy "bitmaps": {} 262dfdc48d5SJohn Snow} 263dfdc48d5SJohn Snow 264dfdc48d5SJohn Snow--- Verification --- 265dfdc48d5SJohn Snow 266dfdc48d5SJohn Snowqemu_img compare "TEST_DIR/PID-bsync1" "TEST_DIR/PID-fbackup1" ==> Identical, OK! 267dfdc48d5SJohn Snowqemu_img compare "TEST_DIR/PID-bsync2" "TEST_DIR/PID-fbackup2" ==> Identical, OK! 268dfdc48d5SJohn Snowqemu_img compare "TEST_DIR/PID-img" "TEST_DIR/PID-fbackup2" ==> Identical, OK! 269dfdc48d5SJohn Snow 270dfdc48d5SJohn Snow 2710af2a09cSJohn Snow=== Mode bitmap; Bitmap Sync never with intermediate failure === 272dfdc48d5SJohn Snow 273dfdc48d5SJohn Snow--- Preparing image & VM --- 274dfdc48d5SJohn Snow 275dfdc48d5SJohn Snow{"execute": "blockdev-add", "arguments": {"driver": "qcow2", "file": {"driver": "blkdebug", "image": {"driver": "file", "filename": "TEST_DIR/PID-img"}, "inject-error": [{"errno": 5, "event": "read_aio", "immediately": false, "once": true, "state": 3}], "set-state": [{"event": "flush_to_disk", "new-state": 2, "state": 1}, {"event": "read_aio", "new-state": 3, "state": 2}]}, "node-name": "drive0"}} 276dfdc48d5SJohn Snow{"return": {}} 277dfdc48d5SJohn Snow 278dfdc48d5SJohn Snow--- Write #0 --- 279dfdc48d5SJohn Snow 280dfdc48d5SJohn Snowwrite -P0x49 0x0000000 0x10000 281dfdc48d5SJohn Snow{"return": ""} 282dfdc48d5SJohn Snowwrite -P0x6c 0x0100000 0x10000 283dfdc48d5SJohn Snow{"return": ""} 284dfdc48d5SJohn Snowwrite -P0x6f 0x2000000 0x10000 285dfdc48d5SJohn Snow{"return": ""} 286dfdc48d5SJohn Snowwrite -P0x76 0x3ff0000 0x10000 287dfdc48d5SJohn Snow{"return": ""} 288dfdc48d5SJohn Snow{ 2895c4343b8SVladimir Sementsov-Ogievskiy "bitmaps": {} 290dfdc48d5SJohn Snow} 291dfdc48d5SJohn Snow 292dfdc48d5SJohn Snow--- Reference Backup #0 --- 293dfdc48d5SJohn Snow 294dfdc48d5SJohn Snow{} 295dfdc48d5SJohn Snow{"execute": "job-dismiss", "arguments": {"id": "bdc-file-job"}} 296dfdc48d5SJohn Snow{"return": {}} 297dfdc48d5SJohn Snow{} 298dfdc48d5SJohn Snow{} 299dfdc48d5SJohn Snow{"execute": "job-dismiss", "arguments": {"id": "bdc-fmt-job"}} 300dfdc48d5SJohn Snow{"return": {}} 301dfdc48d5SJohn Snow{} 3022d0f32e3SVladimir Sementsov-Ogievskiy{"execute": "blockdev-backup", "arguments": {"device": "drive0", "filter-node-name": "backup-top", "job-id": "ref_backup_0", "sync": "full", "target": "ref_target_0", "x-perf": {"max-workers": 1}}} 303dfdc48d5SJohn Snow{"return": {}} 304dfdc48d5SJohn Snow{"data": {"device": "ref_backup_0", "len": 67108864, "offset": 67108864, "speed": 0, "type": "backup"}, "event": "BLOCK_JOB_COMPLETED", "timestamp": {"microseconds": "USECS", "seconds": "SECS"}} 305dfdc48d5SJohn Snow 306dfdc48d5SJohn Snow--- Add Bitmap --- 307dfdc48d5SJohn Snow 308dfdc48d5SJohn Snow{"execute": "block-dirty-bitmap-add", "arguments": {"granularity": 65536, "name": "bitmap0", "node": "drive0"}} 309dfdc48d5SJohn Snow{"return": {}} 310dfdc48d5SJohn Snow 311dfdc48d5SJohn Snow--- Write #1 --- 312dfdc48d5SJohn Snow 313dfdc48d5SJohn Snowwrite -P0x65 0x0000000 0x10000 314dfdc48d5SJohn Snow{"return": ""} 315dfdc48d5SJohn Snowwrite -P0x77 0x00f8000 0x10000 316dfdc48d5SJohn Snow{"return": ""} 317dfdc48d5SJohn Snowwrite -P0x72 0x2008000 0x10000 318dfdc48d5SJohn Snow{"return": ""} 319dfdc48d5SJohn Snowwrite -P0x69 0x3fe0000 0x10000 320dfdc48d5SJohn Snow{"return": ""} 321dfdc48d5SJohn Snow{ 322dfdc48d5SJohn Snow "bitmaps": { 3235c4343b8SVladimir Sementsov-Ogievskiy "drive0": [ 324dfdc48d5SJohn Snow { 325dfdc48d5SJohn Snow "busy": false, 326dfdc48d5SJohn Snow "count": 393216, 327dfdc48d5SJohn Snow "granularity": 65536, 328dfdc48d5SJohn Snow "name": "bitmap0", 329dfdc48d5SJohn Snow "persistent": false, 33081cbfd50SDaniel P. Berrangé "recording": true 331dfdc48d5SJohn Snow } 332dfdc48d5SJohn Snow ] 333dfdc48d5SJohn Snow } 334dfdc48d5SJohn Snow} 335dfdc48d5SJohn Snow 336dfdc48d5SJohn Snow= Checking Bitmap bitmap0 = 337dfdc48d5SJohn Snowexpecting 6 dirty sectors; have 6. OK! 338dfdc48d5SJohn Snow 339dfdc48d5SJohn Snow--- Reference Backup #1 --- 340dfdc48d5SJohn Snow 341dfdc48d5SJohn Snow{} 342dfdc48d5SJohn Snow{"execute": "job-dismiss", "arguments": {"id": "bdc-file-job"}} 343dfdc48d5SJohn Snow{"return": {}} 344dfdc48d5SJohn Snow{} 345dfdc48d5SJohn Snow{} 346dfdc48d5SJohn Snow{"execute": "job-dismiss", "arguments": {"id": "bdc-fmt-job"}} 347dfdc48d5SJohn Snow{"return": {}} 348dfdc48d5SJohn Snow{} 3492d0f32e3SVladimir Sementsov-Ogievskiy{"execute": "blockdev-backup", "arguments": {"device": "drive0", "filter-node-name": "backup-top", "job-id": "ref_backup_1", "sync": "full", "target": "ref_target_1", "x-perf": {"max-workers": 1}}} 350dfdc48d5SJohn Snow{"return": {}} 351dfdc48d5SJohn Snow{"data": {"device": "ref_backup_1", "len": 67108864, "offset": 67108864, "speed": 0, "type": "backup"}, "event": "BLOCK_JOB_COMPLETED", "timestamp": {"microseconds": "USECS", "seconds": "SECS"}} 352dfdc48d5SJohn Snow 353dfdc48d5SJohn Snow{"return": ""} 354dfdc48d5SJohn Snow 3550af2a09cSJohn Snow--- Test Backup #1 --- 356dfdc48d5SJohn Snow 357dfdc48d5SJohn Snow{} 358dfdc48d5SJohn Snow{"execute": "job-dismiss", "arguments": {"id": "bdc-file-job"}} 359dfdc48d5SJohn Snow{"return": {}} 360dfdc48d5SJohn Snow{} 361dfdc48d5SJohn Snow{} 362dfdc48d5SJohn Snow{"execute": "job-dismiss", "arguments": {"id": "bdc-fmt-job"}} 363dfdc48d5SJohn Snow{"return": {}} 364dfdc48d5SJohn Snow{} 3652d0f32e3SVladimir Sementsov-Ogievskiy{"execute": "blockdev-backup", "arguments": {"auto-finalize": false, "bitmap": "bitmap0", "bitmap-mode": "never", "device": "drive0", "filter-node-name": "backup-top", "job-id": "backup_1", "sync": "bitmap", "target": "backup_target_1", "x-perf": {"max-workers": 1}}} 366dfdc48d5SJohn Snow{"return": {}} 3670af2a09cSJohn Snow{"data": {"action": "report", "device": "backup_1", "operation": "read"}, "event": "BLOCK_JOB_ERROR", "timestamp": {"microseconds": "USECS", "seconds": "SECS"}} 3680fff1f13SJohn Snow{"data": {"device": "backup_1", "error": "Input/output error", "len": 393216, "offset": 65536, "speed": 0, "type": "backup"}, "event": "BLOCK_JOB_COMPLETED", "timestamp": {"microseconds": "USECS", "seconds": "SECS"}} 369dfdc48d5SJohn Snow{ 370dfdc48d5SJohn Snow "bitmaps": { 3715c4343b8SVladimir Sementsov-Ogievskiy "drive0": [ 372dfdc48d5SJohn Snow { 373dfdc48d5SJohn Snow "busy": false, 374dfdc48d5SJohn Snow "count": 393216, 375dfdc48d5SJohn Snow "granularity": 65536, 376dfdc48d5SJohn Snow "name": "bitmap0", 377dfdc48d5SJohn Snow "persistent": false, 37881cbfd50SDaniel P. Berrangé "recording": true 379dfdc48d5SJohn Snow } 380dfdc48d5SJohn Snow ] 381dfdc48d5SJohn Snow } 382dfdc48d5SJohn Snow} 383dfdc48d5SJohn Snow 384dfdc48d5SJohn Snow= Checking Bitmap bitmap0 = 385dfdc48d5SJohn Snowexpecting 6 dirty sectors; have 6. OK! 386dfdc48d5SJohn Snow 387dfdc48d5SJohn Snow--- Write #3 --- 388dfdc48d5SJohn Snow 389dfdc48d5SJohn Snowwrite -P0xaa 0x0010000 0x30000 390dfdc48d5SJohn Snow{"return": ""} 391dfdc48d5SJohn Snowwrite -P0xbb 0x00d8000 0x10000 392dfdc48d5SJohn Snow{"return": ""} 393dfdc48d5SJohn Snowwrite -P0xcc 0x2028000 0x10000 394dfdc48d5SJohn Snow{"return": ""} 395dfdc48d5SJohn Snowwrite -P0xdd 0x3fc0000 0x10000 396dfdc48d5SJohn Snow{"return": ""} 397dfdc48d5SJohn Snow{ 398dfdc48d5SJohn Snow "bitmaps": { 3995c4343b8SVladimir Sementsov-Ogievskiy "drive0": [ 400dfdc48d5SJohn Snow { 401dfdc48d5SJohn Snow "busy": false, 402dfdc48d5SJohn Snow "count": 917504, 403dfdc48d5SJohn Snow "granularity": 65536, 404dfdc48d5SJohn Snow "name": "bitmap0", 405dfdc48d5SJohn Snow "persistent": false, 40681cbfd50SDaniel P. Berrangé "recording": true 407dfdc48d5SJohn Snow } 408dfdc48d5SJohn Snow ] 409dfdc48d5SJohn Snow } 410dfdc48d5SJohn Snow} 411dfdc48d5SJohn Snow 412dfdc48d5SJohn Snow= Checking Bitmap bitmap0 = 413dfdc48d5SJohn Snowexpecting 14 dirty sectors; have 14. OK! 414dfdc48d5SJohn Snow 415dfdc48d5SJohn Snow--- Reference Backup #2 --- 416dfdc48d5SJohn Snow 417dfdc48d5SJohn Snow{} 418dfdc48d5SJohn Snow{"execute": "job-dismiss", "arguments": {"id": "bdc-file-job"}} 419dfdc48d5SJohn Snow{"return": {}} 420dfdc48d5SJohn Snow{} 421dfdc48d5SJohn Snow{} 422dfdc48d5SJohn Snow{"execute": "job-dismiss", "arguments": {"id": "bdc-fmt-job"}} 423dfdc48d5SJohn Snow{"return": {}} 424dfdc48d5SJohn Snow{} 4252d0f32e3SVladimir Sementsov-Ogievskiy{"execute": "blockdev-backup", "arguments": {"device": "drive0", "filter-node-name": "backup-top", "job-id": "ref_backup_2", "sync": "full", "target": "ref_target_2", "x-perf": {"max-workers": 1}}} 426dfdc48d5SJohn Snow{"return": {}} 427dfdc48d5SJohn Snow{"data": {"device": "ref_backup_2", "len": 67108864, "offset": 67108864, "speed": 0, "type": "backup"}, "event": "BLOCK_JOB_COMPLETED", "timestamp": {"microseconds": "USECS", "seconds": "SECS"}} 428dfdc48d5SJohn Snow 4290af2a09cSJohn Snow--- Test Backup #2 --- 430dfdc48d5SJohn Snow 431dfdc48d5SJohn Snow{} 432dfdc48d5SJohn Snow{"execute": "job-dismiss", "arguments": {"id": "bdc-file-job"}} 433dfdc48d5SJohn Snow{"return": {}} 434dfdc48d5SJohn Snow{} 435dfdc48d5SJohn Snow{} 436dfdc48d5SJohn Snow{"execute": "job-dismiss", "arguments": {"id": "bdc-fmt-job"}} 437dfdc48d5SJohn Snow{"return": {}} 438dfdc48d5SJohn Snow{} 4392d0f32e3SVladimir Sementsov-Ogievskiy{"execute": "blockdev-backup", "arguments": {"auto-finalize": false, "bitmap": "bitmap0", "bitmap-mode": "never", "device": "drive0", "filter-node-name": "backup-top", "job-id": "backup_2", "sync": "bitmap", "target": "backup_target_2", "x-perf": {"max-workers": 1}}} 440dfdc48d5SJohn Snow{"return": {}} 4410af2a09cSJohn Snow{"execute": "job-finalize", "arguments": {"id": "backup_2"}} 442dfdc48d5SJohn Snow{"return": {}} 4430af2a09cSJohn Snow{"data": {"id": "backup_2", "type": "backup"}, "event": "BLOCK_JOB_PENDING", "timestamp": {"microseconds": "USECS", "seconds": "SECS"}} 4440fff1f13SJohn Snow{"data": {"device": "backup_2", "len": 917504, "offset": 917504, "speed": 0, "type": "backup"}, "event": "BLOCK_JOB_COMPLETED", "timestamp": {"microseconds": "USECS", "seconds": "SECS"}} 445dfdc48d5SJohn Snow{ 446dfdc48d5SJohn Snow "bitmaps": { 4475c4343b8SVladimir Sementsov-Ogievskiy "drive0": [ 448dfdc48d5SJohn Snow { 449dfdc48d5SJohn Snow "busy": false, 450dfdc48d5SJohn Snow "count": 917504, 451dfdc48d5SJohn Snow "granularity": 65536, 452dfdc48d5SJohn Snow "name": "bitmap0", 453dfdc48d5SJohn Snow "persistent": false, 45481cbfd50SDaniel P. Berrangé "recording": true 455dfdc48d5SJohn Snow } 456dfdc48d5SJohn Snow ] 457dfdc48d5SJohn Snow } 458dfdc48d5SJohn Snow} 459dfdc48d5SJohn Snow 460dfdc48d5SJohn Snow= Checking Bitmap bitmap0 = 461dfdc48d5SJohn Snowexpecting 14 dirty sectors; have 14. OK! 462dfdc48d5SJohn Snow 463dfdc48d5SJohn Snow--- Cleanup --- 464dfdc48d5SJohn Snow 465dfdc48d5SJohn Snow{"execute": "block-dirty-bitmap-remove", "arguments": {"name": "bitmap0", "node": "drive0"}} 466dfdc48d5SJohn Snow{"return": {}} 467dfdc48d5SJohn Snow{ 4685c4343b8SVladimir Sementsov-Ogievskiy "bitmaps": {} 469dfdc48d5SJohn Snow} 470dfdc48d5SJohn Snow 471dfdc48d5SJohn Snow--- Verification --- 472dfdc48d5SJohn Snow 473dfdc48d5SJohn Snowqemu_img compare "TEST_DIR/PID-bsync1" "TEST_DIR/PID-fbackup1" ==> Mismatch, OK! 474dfdc48d5SJohn Snowqemu_img compare "TEST_DIR/PID-bsync2" "TEST_DIR/PID-fbackup2" ==> Identical, OK! 475dfdc48d5SJohn Snowqemu_img compare "TEST_DIR/PID-img" "TEST_DIR/PID-fbackup2" ==> Identical, OK! 476dfdc48d5SJohn Snow 477dfdc48d5SJohn Snow 4780af2a09cSJohn Snow=== Mode bitmap; Bitmap Sync never without failure === 479dfdc48d5SJohn Snow 480dfdc48d5SJohn Snow--- Preparing image & VM --- 481dfdc48d5SJohn Snow 482dfdc48d5SJohn Snow{"execute": "blockdev-add", "arguments": {"driver": "qcow2", "file": {"driver": "file", "filename": "TEST_DIR/PID-img"}, "node-name": "drive0"}} 483dfdc48d5SJohn Snow{"return": {}} 484dfdc48d5SJohn Snow 485dfdc48d5SJohn Snow--- Write #0 --- 486dfdc48d5SJohn Snow 487dfdc48d5SJohn Snowwrite -P0x49 0x0000000 0x10000 488dfdc48d5SJohn Snow{"return": ""} 489dfdc48d5SJohn Snowwrite -P0x6c 0x0100000 0x10000 490dfdc48d5SJohn Snow{"return": ""} 491dfdc48d5SJohn Snowwrite -P0x6f 0x2000000 0x10000 492dfdc48d5SJohn Snow{"return": ""} 493dfdc48d5SJohn Snowwrite -P0x76 0x3ff0000 0x10000 494dfdc48d5SJohn Snow{"return": ""} 495dfdc48d5SJohn Snow{ 4965c4343b8SVladimir Sementsov-Ogievskiy "bitmaps": {} 497dfdc48d5SJohn Snow} 498dfdc48d5SJohn Snow 499dfdc48d5SJohn Snow--- Reference Backup #0 --- 500dfdc48d5SJohn Snow 501dfdc48d5SJohn Snow{} 502dfdc48d5SJohn Snow{"execute": "job-dismiss", "arguments": {"id": "bdc-file-job"}} 503dfdc48d5SJohn Snow{"return": {}} 504dfdc48d5SJohn Snow{} 505dfdc48d5SJohn Snow{} 506dfdc48d5SJohn Snow{"execute": "job-dismiss", "arguments": {"id": "bdc-fmt-job"}} 507dfdc48d5SJohn Snow{"return": {}} 508dfdc48d5SJohn Snow{} 5092d0f32e3SVladimir Sementsov-Ogievskiy{"execute": "blockdev-backup", "arguments": {"device": "drive0", "filter-node-name": "backup-top", "job-id": "ref_backup_0", "sync": "full", "target": "ref_target_0", "x-perf": {"max-workers": 1}}} 510dfdc48d5SJohn Snow{"return": {}} 511dfdc48d5SJohn Snow{"data": {"device": "ref_backup_0", "len": 67108864, "offset": 67108864, "speed": 0, "type": "backup"}, "event": "BLOCK_JOB_COMPLETED", "timestamp": {"microseconds": "USECS", "seconds": "SECS"}} 512dfdc48d5SJohn Snow 513dfdc48d5SJohn Snow--- Add Bitmap --- 514dfdc48d5SJohn Snow 515dfdc48d5SJohn Snow{"execute": "block-dirty-bitmap-add", "arguments": {"granularity": 65536, "name": "bitmap0", "node": "drive0"}} 516dfdc48d5SJohn Snow{"return": {}} 517dfdc48d5SJohn Snow 518dfdc48d5SJohn Snow--- Write #1 --- 519dfdc48d5SJohn Snow 520dfdc48d5SJohn Snowwrite -P0x65 0x0000000 0x10000 521dfdc48d5SJohn Snow{"return": ""} 522dfdc48d5SJohn Snowwrite -P0x77 0x00f8000 0x10000 523dfdc48d5SJohn Snow{"return": ""} 524dfdc48d5SJohn Snowwrite -P0x72 0x2008000 0x10000 525dfdc48d5SJohn Snow{"return": ""} 526dfdc48d5SJohn Snowwrite -P0x69 0x3fe0000 0x10000 527dfdc48d5SJohn Snow{"return": ""} 528dfdc48d5SJohn Snow{ 529dfdc48d5SJohn Snow "bitmaps": { 5305c4343b8SVladimir Sementsov-Ogievskiy "drive0": [ 531dfdc48d5SJohn Snow { 532dfdc48d5SJohn Snow "busy": false, 533dfdc48d5SJohn Snow "count": 393216, 534dfdc48d5SJohn Snow "granularity": 65536, 535dfdc48d5SJohn Snow "name": "bitmap0", 536dfdc48d5SJohn Snow "persistent": false, 53781cbfd50SDaniel P. Berrangé "recording": true 538dfdc48d5SJohn Snow } 539dfdc48d5SJohn Snow ] 540dfdc48d5SJohn Snow } 541dfdc48d5SJohn Snow} 542dfdc48d5SJohn Snow 543dfdc48d5SJohn Snow= Checking Bitmap bitmap0 = 544dfdc48d5SJohn Snowexpecting 6 dirty sectors; have 6. OK! 545dfdc48d5SJohn Snow 546dfdc48d5SJohn Snow--- Reference Backup #1 --- 547dfdc48d5SJohn Snow 548dfdc48d5SJohn Snow{} 549dfdc48d5SJohn Snow{"execute": "job-dismiss", "arguments": {"id": "bdc-file-job"}} 550dfdc48d5SJohn Snow{"return": {}} 551dfdc48d5SJohn Snow{} 552dfdc48d5SJohn Snow{} 553dfdc48d5SJohn Snow{"execute": "job-dismiss", "arguments": {"id": "bdc-fmt-job"}} 554dfdc48d5SJohn Snow{"return": {}} 555dfdc48d5SJohn Snow{} 5562d0f32e3SVladimir Sementsov-Ogievskiy{"execute": "blockdev-backup", "arguments": {"device": "drive0", "filter-node-name": "backup-top", "job-id": "ref_backup_1", "sync": "full", "target": "ref_target_1", "x-perf": {"max-workers": 1}}} 557dfdc48d5SJohn Snow{"return": {}} 558dfdc48d5SJohn Snow{"data": {"device": "ref_backup_1", "len": 67108864, "offset": 67108864, "speed": 0, "type": "backup"}, "event": "BLOCK_JOB_COMPLETED", "timestamp": {"microseconds": "USECS", "seconds": "SECS"}} 559dfdc48d5SJohn Snow 5600af2a09cSJohn Snow--- Test Backup #1 --- 561dfdc48d5SJohn Snow 562dfdc48d5SJohn Snow{} 563dfdc48d5SJohn Snow{"execute": "job-dismiss", "arguments": {"id": "bdc-file-job"}} 564dfdc48d5SJohn Snow{"return": {}} 565dfdc48d5SJohn Snow{} 566dfdc48d5SJohn Snow{} 567dfdc48d5SJohn Snow{"execute": "job-dismiss", "arguments": {"id": "bdc-fmt-job"}} 568dfdc48d5SJohn Snow{"return": {}} 569dfdc48d5SJohn Snow{} 5702d0f32e3SVladimir Sementsov-Ogievskiy{"execute": "blockdev-backup", "arguments": {"auto-finalize": false, "bitmap": "bitmap0", "bitmap-mode": "never", "device": "drive0", "filter-node-name": "backup-top", "job-id": "backup_1", "sync": "bitmap", "target": "backup_target_1", "x-perf": {"max-workers": 1}}} 571dfdc48d5SJohn Snow{"return": {}} 572dfdc48d5SJohn Snow 573dfdc48d5SJohn Snow--- Write #2 --- 574dfdc48d5SJohn Snow 575dfdc48d5SJohn Snowwrite -P0x74 0x0010000 0x10000 576dfdc48d5SJohn Snow{"return": ""} 577dfdc48d5SJohn Snowwrite -P0x69 0x00e8000 0x10000 578dfdc48d5SJohn Snow{"return": ""} 579dfdc48d5SJohn Snowwrite -P0x6e 0x2018000 0x10000 580dfdc48d5SJohn Snow{"return": ""} 581dfdc48d5SJohn Snowwrite -P0x67 0x3fe0000 0x20000 582dfdc48d5SJohn Snow{"return": ""} 583dfdc48d5SJohn Snow{ 584dfdc48d5SJohn Snow "bitmaps": { 585af5bcd77SVladimir Sementsov-Ogievskiy "backup-top": [ 586af5bcd77SVladimir Sementsov-Ogievskiy { 587af5bcd77SVladimir Sementsov-Ogievskiy "busy": false, 588af5bcd77SVladimir Sementsov-Ogievskiy "count": 67108864, 589af5bcd77SVladimir Sementsov-Ogievskiy "granularity": 65536, 590af5bcd77SVladimir Sementsov-Ogievskiy "persistent": false, 591af5bcd77SVladimir Sementsov-Ogievskiy "recording": false 592af5bcd77SVladimir Sementsov-Ogievskiy }, 593af5bcd77SVladimir Sementsov-Ogievskiy { 594af5bcd77SVladimir Sementsov-Ogievskiy "busy": false, 595af5bcd77SVladimir Sementsov-Ogievskiy "count": 458752, 596af5bcd77SVladimir Sementsov-Ogievskiy "granularity": 65536, 597af5bcd77SVladimir Sementsov-Ogievskiy "persistent": false, 598af5bcd77SVladimir Sementsov-Ogievskiy "recording": false 599*006e845bSVladimir Sementsov-Ogievskiy }, 600dfdc48d5SJohn Snow { 601dfdc48d5SJohn Snow "busy": false, 602dfdc48d5SJohn Snow "count": 0, 603dfdc48d5SJohn Snow "granularity": 65536, 604dfdc48d5SJohn Snow "persistent": false, 60581cbfd50SDaniel P. Berrangé "recording": false 606*006e845bSVladimir Sementsov-Ogievskiy } 607*006e845bSVladimir Sementsov-Ogievskiy ], 608*006e845bSVladimir Sementsov-Ogievskiy "drive0": [ 609dfdc48d5SJohn Snow { 610dfdc48d5SJohn Snow "busy": false, 611dfdc48d5SJohn Snow "count": 458752, 612dfdc48d5SJohn Snow "granularity": 65536, 613dfdc48d5SJohn Snow "persistent": false, 61481cbfd50SDaniel P. Berrangé "recording": true 615dfdc48d5SJohn Snow }, 616dfdc48d5SJohn Snow { 617dfdc48d5SJohn Snow "busy": true, 618dfdc48d5SJohn Snow "count": 393216, 619dfdc48d5SJohn Snow "granularity": 65536, 620dfdc48d5SJohn Snow "name": "bitmap0", 621dfdc48d5SJohn Snow "persistent": false, 62281cbfd50SDaniel P. Berrangé "recording": true 623dfdc48d5SJohn Snow } 624dfdc48d5SJohn Snow ] 625dfdc48d5SJohn Snow } 626dfdc48d5SJohn Snow} 627dfdc48d5SJohn Snow 628dfdc48d5SJohn Snow= Checking Bitmap bitmap0 = 629dfdc48d5SJohn Snowexpecting 6 dirty sectors; have 6. OK! 630dfdc48d5SJohn Snow 631dfdc48d5SJohn Snow= Checking Bitmap (anonymous) = 632dfdc48d5SJohn Snowexpecting 7 dirty sectors; have 7. OK! 633dfdc48d5SJohn Snow 6340af2a09cSJohn Snow{"execute": "job-finalize", "arguments": {"id": "backup_1"}} 635dfdc48d5SJohn Snow{"return": {}} 6360af2a09cSJohn Snow{"data": {"id": "backup_1", "type": "backup"}, "event": "BLOCK_JOB_PENDING", "timestamp": {"microseconds": "USECS", "seconds": "SECS"}} 6370fff1f13SJohn Snow{"data": {"device": "backup_1", "len": 393216, "offset": 393216, "speed": 0, "type": "backup"}, "event": "BLOCK_JOB_COMPLETED", "timestamp": {"microseconds": "USECS", "seconds": "SECS"}} 638dfdc48d5SJohn Snow{ 639dfdc48d5SJohn Snow "bitmaps": { 6405c4343b8SVladimir Sementsov-Ogievskiy "drive0": [ 641dfdc48d5SJohn Snow { 642dfdc48d5SJohn Snow "busy": false, 643dfdc48d5SJohn Snow "count": 655360, 644dfdc48d5SJohn Snow "granularity": 65536, 645dfdc48d5SJohn Snow "name": "bitmap0", 646dfdc48d5SJohn Snow "persistent": false, 64781cbfd50SDaniel P. Berrangé "recording": true 648dfdc48d5SJohn Snow } 649dfdc48d5SJohn Snow ] 650dfdc48d5SJohn Snow } 651dfdc48d5SJohn Snow} 652dfdc48d5SJohn Snow 653dfdc48d5SJohn Snow= Checking Bitmap bitmap0 = 654dfdc48d5SJohn Snowexpecting 10 dirty sectors; have 10. OK! 655dfdc48d5SJohn Snow 656dfdc48d5SJohn Snow--- Write #3 --- 657dfdc48d5SJohn Snow 658dfdc48d5SJohn Snowwrite -P0xaa 0x0010000 0x30000 659dfdc48d5SJohn Snow{"return": ""} 660dfdc48d5SJohn Snowwrite -P0xbb 0x00d8000 0x10000 661dfdc48d5SJohn Snow{"return": ""} 662dfdc48d5SJohn Snowwrite -P0xcc 0x2028000 0x10000 663dfdc48d5SJohn Snow{"return": ""} 664dfdc48d5SJohn Snowwrite -P0xdd 0x3fc0000 0x10000 665dfdc48d5SJohn Snow{"return": ""} 666dfdc48d5SJohn Snow{ 667dfdc48d5SJohn Snow "bitmaps": { 6685c4343b8SVladimir Sementsov-Ogievskiy "drive0": [ 669dfdc48d5SJohn Snow { 670dfdc48d5SJohn Snow "busy": false, 671dfdc48d5SJohn Snow "count": 983040, 672dfdc48d5SJohn Snow "granularity": 65536, 673dfdc48d5SJohn Snow "name": "bitmap0", 674dfdc48d5SJohn Snow "persistent": false, 67581cbfd50SDaniel P. Berrangé "recording": true 676dfdc48d5SJohn Snow } 677dfdc48d5SJohn Snow ] 678dfdc48d5SJohn Snow } 679dfdc48d5SJohn Snow} 680dfdc48d5SJohn Snow 681dfdc48d5SJohn Snow= Checking Bitmap bitmap0 = 682dfdc48d5SJohn Snowexpecting 15 dirty sectors; have 15. OK! 683dfdc48d5SJohn Snow 684dfdc48d5SJohn Snow--- Reference Backup #2 --- 685dfdc48d5SJohn Snow 686dfdc48d5SJohn Snow{} 687dfdc48d5SJohn Snow{"execute": "job-dismiss", "arguments": {"id": "bdc-file-job"}} 688dfdc48d5SJohn Snow{"return": {}} 689dfdc48d5SJohn Snow{} 690dfdc48d5SJohn Snow{} 691dfdc48d5SJohn Snow{"execute": "job-dismiss", "arguments": {"id": "bdc-fmt-job"}} 692dfdc48d5SJohn Snow{"return": {}} 693dfdc48d5SJohn Snow{} 6942d0f32e3SVladimir Sementsov-Ogievskiy{"execute": "blockdev-backup", "arguments": {"device": "drive0", "filter-node-name": "backup-top", "job-id": "ref_backup_2", "sync": "full", "target": "ref_target_2", "x-perf": {"max-workers": 1}}} 695dfdc48d5SJohn Snow{"return": {}} 696dfdc48d5SJohn Snow{"data": {"device": "ref_backup_2", "len": 67108864, "offset": 67108864, "speed": 0, "type": "backup"}, "event": "BLOCK_JOB_COMPLETED", "timestamp": {"microseconds": "USECS", "seconds": "SECS"}} 697dfdc48d5SJohn Snow 6980af2a09cSJohn Snow--- Test Backup #2 --- 699dfdc48d5SJohn Snow 700dfdc48d5SJohn Snow{} 701dfdc48d5SJohn Snow{"execute": "job-dismiss", "arguments": {"id": "bdc-file-job"}} 702dfdc48d5SJohn Snow{"return": {}} 703dfdc48d5SJohn Snow{} 704dfdc48d5SJohn Snow{} 705dfdc48d5SJohn Snow{"execute": "job-dismiss", "arguments": {"id": "bdc-fmt-job"}} 706dfdc48d5SJohn Snow{"return": {}} 707dfdc48d5SJohn Snow{} 7082d0f32e3SVladimir Sementsov-Ogievskiy{"execute": "blockdev-backup", "arguments": {"auto-finalize": false, "bitmap": "bitmap0", "bitmap-mode": "never", "device": "drive0", "filter-node-name": "backup-top", "job-id": "backup_2", "sync": "bitmap", "target": "backup_target_2", "x-perf": {"max-workers": 1}}} 709dfdc48d5SJohn Snow{"return": {}} 7100af2a09cSJohn Snow{"execute": "job-finalize", "arguments": {"id": "backup_2"}} 711dfdc48d5SJohn Snow{"return": {}} 7120af2a09cSJohn Snow{"data": {"id": "backup_2", "type": "backup"}, "event": "BLOCK_JOB_PENDING", "timestamp": {"microseconds": "USECS", "seconds": "SECS"}} 7130fff1f13SJohn Snow{"data": {"device": "backup_2", "len": 983040, "offset": 983040, "speed": 0, "type": "backup"}, "event": "BLOCK_JOB_COMPLETED", "timestamp": {"microseconds": "USECS", "seconds": "SECS"}} 714dfdc48d5SJohn Snow{ 715dfdc48d5SJohn Snow "bitmaps": { 7165c4343b8SVladimir Sementsov-Ogievskiy "drive0": [ 717dfdc48d5SJohn Snow { 718dfdc48d5SJohn Snow "busy": false, 719dfdc48d5SJohn Snow "count": 983040, 720dfdc48d5SJohn Snow "granularity": 65536, 721dfdc48d5SJohn Snow "name": "bitmap0", 722dfdc48d5SJohn Snow "persistent": false, 72381cbfd50SDaniel P. Berrangé "recording": true 724dfdc48d5SJohn Snow } 725dfdc48d5SJohn Snow ] 726dfdc48d5SJohn Snow } 727dfdc48d5SJohn Snow} 728dfdc48d5SJohn Snow 729dfdc48d5SJohn Snow= Checking Bitmap bitmap0 = 730dfdc48d5SJohn Snowexpecting 15 dirty sectors; have 15. OK! 731dfdc48d5SJohn Snow 732dfdc48d5SJohn Snow--- Cleanup --- 733dfdc48d5SJohn Snow 734dfdc48d5SJohn Snow{"execute": "block-dirty-bitmap-remove", "arguments": {"name": "bitmap0", "node": "drive0"}} 735dfdc48d5SJohn Snow{"return": {}} 736dfdc48d5SJohn Snow{ 7375c4343b8SVladimir Sementsov-Ogievskiy "bitmaps": {} 738dfdc48d5SJohn Snow} 739dfdc48d5SJohn Snow 740dfdc48d5SJohn Snow--- Verification --- 741dfdc48d5SJohn Snow 742dfdc48d5SJohn Snowqemu_img compare "TEST_DIR/PID-bsync1" "TEST_DIR/PID-fbackup1" ==> Identical, OK! 743dfdc48d5SJohn Snowqemu_img compare "TEST_DIR/PID-bsync2" "TEST_DIR/PID-fbackup2" ==> Identical, OK! 744dfdc48d5SJohn Snowqemu_img compare "TEST_DIR/PID-img" "TEST_DIR/PID-fbackup2" ==> Identical, OK! 745dfdc48d5SJohn Snow 746dfdc48d5SJohn Snow 7470af2a09cSJohn Snow=== Mode bitmap; Bitmap Sync on-success with simulated failure === 748dfdc48d5SJohn Snow 749dfdc48d5SJohn Snow--- Preparing image & VM --- 750dfdc48d5SJohn Snow 751dfdc48d5SJohn Snow{"execute": "blockdev-add", "arguments": {"driver": "qcow2", "file": {"driver": "file", "filename": "TEST_DIR/PID-img"}, "node-name": "drive0"}} 752dfdc48d5SJohn Snow{"return": {}} 753dfdc48d5SJohn Snow 754dfdc48d5SJohn Snow--- Write #0 --- 755dfdc48d5SJohn Snow 756dfdc48d5SJohn Snowwrite -P0x49 0x0000000 0x10000 757dfdc48d5SJohn Snow{"return": ""} 758dfdc48d5SJohn Snowwrite -P0x6c 0x0100000 0x10000 759dfdc48d5SJohn Snow{"return": ""} 760dfdc48d5SJohn Snowwrite -P0x6f 0x2000000 0x10000 761dfdc48d5SJohn Snow{"return": ""} 762dfdc48d5SJohn Snowwrite -P0x76 0x3ff0000 0x10000 763dfdc48d5SJohn Snow{"return": ""} 764dfdc48d5SJohn Snow{ 7655c4343b8SVladimir Sementsov-Ogievskiy "bitmaps": {} 766dfdc48d5SJohn Snow} 767dfdc48d5SJohn Snow 768dfdc48d5SJohn Snow--- Reference Backup #0 --- 769dfdc48d5SJohn Snow 770dfdc48d5SJohn Snow{} 771dfdc48d5SJohn Snow{"execute": "job-dismiss", "arguments": {"id": "bdc-file-job"}} 772dfdc48d5SJohn Snow{"return": {}} 773dfdc48d5SJohn Snow{} 774dfdc48d5SJohn Snow{} 775dfdc48d5SJohn Snow{"execute": "job-dismiss", "arguments": {"id": "bdc-fmt-job"}} 776dfdc48d5SJohn Snow{"return": {}} 777dfdc48d5SJohn Snow{} 7782d0f32e3SVladimir Sementsov-Ogievskiy{"execute": "blockdev-backup", "arguments": {"device": "drive0", "filter-node-name": "backup-top", "job-id": "ref_backup_0", "sync": "full", "target": "ref_target_0", "x-perf": {"max-workers": 1}}} 779dfdc48d5SJohn Snow{"return": {}} 780dfdc48d5SJohn Snow{"data": {"device": "ref_backup_0", "len": 67108864, "offset": 67108864, "speed": 0, "type": "backup"}, "event": "BLOCK_JOB_COMPLETED", "timestamp": {"microseconds": "USECS", "seconds": "SECS"}} 781dfdc48d5SJohn Snow 782dfdc48d5SJohn Snow--- Add Bitmap --- 783dfdc48d5SJohn Snow 784dfdc48d5SJohn Snow{"execute": "block-dirty-bitmap-add", "arguments": {"granularity": 65536, "name": "bitmap0", "node": "drive0"}} 785dfdc48d5SJohn Snow{"return": {}} 786dfdc48d5SJohn Snow 787dfdc48d5SJohn Snow--- Write #1 --- 788dfdc48d5SJohn Snow 789dfdc48d5SJohn Snowwrite -P0x65 0x0000000 0x10000 790dfdc48d5SJohn Snow{"return": ""} 791dfdc48d5SJohn Snowwrite -P0x77 0x00f8000 0x10000 792dfdc48d5SJohn Snow{"return": ""} 793dfdc48d5SJohn Snowwrite -P0x72 0x2008000 0x10000 794dfdc48d5SJohn Snow{"return": ""} 795dfdc48d5SJohn Snowwrite -P0x69 0x3fe0000 0x10000 796dfdc48d5SJohn Snow{"return": ""} 797dfdc48d5SJohn Snow{ 798dfdc48d5SJohn Snow "bitmaps": { 7995c4343b8SVladimir Sementsov-Ogievskiy "drive0": [ 800dfdc48d5SJohn Snow { 801dfdc48d5SJohn Snow "busy": false, 802dfdc48d5SJohn Snow "count": 393216, 803dfdc48d5SJohn Snow "granularity": 65536, 804dfdc48d5SJohn Snow "name": "bitmap0", 805dfdc48d5SJohn Snow "persistent": false, 80681cbfd50SDaniel P. Berrangé "recording": true 807dfdc48d5SJohn Snow } 808dfdc48d5SJohn Snow ] 809dfdc48d5SJohn Snow } 810dfdc48d5SJohn Snow} 811dfdc48d5SJohn Snow 812dfdc48d5SJohn Snow= Checking Bitmap bitmap0 = 813dfdc48d5SJohn Snowexpecting 6 dirty sectors; have 6. OK! 814dfdc48d5SJohn Snow 815dfdc48d5SJohn Snow--- Reference Backup #1 --- 816dfdc48d5SJohn Snow 817dfdc48d5SJohn Snow{} 818dfdc48d5SJohn Snow{"execute": "job-dismiss", "arguments": {"id": "bdc-file-job"}} 819dfdc48d5SJohn Snow{"return": {}} 820dfdc48d5SJohn Snow{} 821dfdc48d5SJohn Snow{} 822dfdc48d5SJohn Snow{"execute": "job-dismiss", "arguments": {"id": "bdc-fmt-job"}} 823dfdc48d5SJohn Snow{"return": {}} 824dfdc48d5SJohn Snow{} 8252d0f32e3SVladimir Sementsov-Ogievskiy{"execute": "blockdev-backup", "arguments": {"device": "drive0", "filter-node-name": "backup-top", "job-id": "ref_backup_1", "sync": "full", "target": "ref_target_1", "x-perf": {"max-workers": 1}}} 826dfdc48d5SJohn Snow{"return": {}} 827dfdc48d5SJohn Snow{"data": {"device": "ref_backup_1", "len": 67108864, "offset": 67108864, "speed": 0, "type": "backup"}, "event": "BLOCK_JOB_COMPLETED", "timestamp": {"microseconds": "USECS", "seconds": "SECS"}} 828dfdc48d5SJohn Snow 8290af2a09cSJohn Snow--- Test Backup #1 --- 830dfdc48d5SJohn Snow 831dfdc48d5SJohn Snow{} 832dfdc48d5SJohn Snow{"execute": "job-dismiss", "arguments": {"id": "bdc-file-job"}} 833dfdc48d5SJohn Snow{"return": {}} 834dfdc48d5SJohn Snow{} 835dfdc48d5SJohn Snow{} 836dfdc48d5SJohn Snow{"execute": "job-dismiss", "arguments": {"id": "bdc-fmt-job"}} 837dfdc48d5SJohn Snow{"return": {}} 838dfdc48d5SJohn Snow{} 8392d0f32e3SVladimir Sementsov-Ogievskiy{"execute": "blockdev-backup", "arguments": {"auto-finalize": false, "bitmap": "bitmap0", "bitmap-mode": "on-success", "device": "drive0", "filter-node-name": "backup-top", "job-id": "backup_1", "sync": "bitmap", "target": "backup_target_1", "x-perf": {"max-workers": 1}}} 840dfdc48d5SJohn Snow{"return": {}} 841dfdc48d5SJohn Snow 842dfdc48d5SJohn Snow--- Write #2 --- 843dfdc48d5SJohn Snow 844dfdc48d5SJohn Snowwrite -P0x74 0x0010000 0x10000 845dfdc48d5SJohn Snow{"return": ""} 846dfdc48d5SJohn Snowwrite -P0x69 0x00e8000 0x10000 847dfdc48d5SJohn Snow{"return": ""} 848dfdc48d5SJohn Snowwrite -P0x6e 0x2018000 0x10000 849dfdc48d5SJohn Snow{"return": ""} 850dfdc48d5SJohn Snowwrite -P0x67 0x3fe0000 0x20000 851dfdc48d5SJohn Snow{"return": ""} 852dfdc48d5SJohn Snow{ 853dfdc48d5SJohn Snow "bitmaps": { 854af5bcd77SVladimir Sementsov-Ogievskiy "backup-top": [ 855af5bcd77SVladimir Sementsov-Ogievskiy { 856af5bcd77SVladimir Sementsov-Ogievskiy "busy": false, 857af5bcd77SVladimir Sementsov-Ogievskiy "count": 67108864, 858af5bcd77SVladimir Sementsov-Ogievskiy "granularity": 65536, 859af5bcd77SVladimir Sementsov-Ogievskiy "persistent": false, 860af5bcd77SVladimir Sementsov-Ogievskiy "recording": false 861af5bcd77SVladimir Sementsov-Ogievskiy }, 862af5bcd77SVladimir Sementsov-Ogievskiy { 863af5bcd77SVladimir Sementsov-Ogievskiy "busy": false, 864af5bcd77SVladimir Sementsov-Ogievskiy "count": 458752, 865af5bcd77SVladimir Sementsov-Ogievskiy "granularity": 65536, 866af5bcd77SVladimir Sementsov-Ogievskiy "persistent": false, 867af5bcd77SVladimir Sementsov-Ogievskiy "recording": false 868*006e845bSVladimir Sementsov-Ogievskiy }, 869dfdc48d5SJohn Snow { 870dfdc48d5SJohn Snow "busy": false, 871dfdc48d5SJohn Snow "count": 0, 872dfdc48d5SJohn Snow "granularity": 65536, 873dfdc48d5SJohn Snow "persistent": false, 87481cbfd50SDaniel P. Berrangé "recording": false 875*006e845bSVladimir Sementsov-Ogievskiy } 876*006e845bSVladimir Sementsov-Ogievskiy ], 877*006e845bSVladimir Sementsov-Ogievskiy "drive0": [ 878dfdc48d5SJohn Snow { 879dfdc48d5SJohn Snow "busy": false, 880dfdc48d5SJohn Snow "count": 458752, 881dfdc48d5SJohn Snow "granularity": 65536, 882dfdc48d5SJohn Snow "persistent": false, 88381cbfd50SDaniel P. Berrangé "recording": true 884dfdc48d5SJohn Snow }, 885dfdc48d5SJohn Snow { 886dfdc48d5SJohn Snow "busy": true, 887dfdc48d5SJohn Snow "count": 393216, 888dfdc48d5SJohn Snow "granularity": 65536, 889dfdc48d5SJohn Snow "name": "bitmap0", 890dfdc48d5SJohn Snow "persistent": false, 89181cbfd50SDaniel P. Berrangé "recording": true 892dfdc48d5SJohn Snow } 893dfdc48d5SJohn Snow ] 894dfdc48d5SJohn Snow } 895dfdc48d5SJohn Snow} 896dfdc48d5SJohn Snow 897dfdc48d5SJohn Snow= Checking Bitmap bitmap0 = 898dfdc48d5SJohn Snowexpecting 6 dirty sectors; have 6. OK! 899dfdc48d5SJohn Snow 900dfdc48d5SJohn Snow= Checking Bitmap (anonymous) = 901dfdc48d5SJohn Snowexpecting 7 dirty sectors; have 7. OK! 902dfdc48d5SJohn Snow 9030af2a09cSJohn Snow{"execute": "job-cancel", "arguments": {"id": "backup_1"}} 904dfdc48d5SJohn Snow{"return": {}} 9050af2a09cSJohn Snow{"data": {"id": "backup_1", "type": "backup"}, "event": "BLOCK_JOB_PENDING", "timestamp": {"microseconds": "USECS", "seconds": "SECS"}} 9060fff1f13SJohn Snow{"data": {"device": "backup_1", "len": 393216, "offset": 393216, "speed": 0, "type": "backup"}, "event": "BLOCK_JOB_CANCELLED", "timestamp": {"microseconds": "USECS", "seconds": "SECS"}} 907dfdc48d5SJohn Snow{ 908dfdc48d5SJohn Snow "bitmaps": { 9095c4343b8SVladimir Sementsov-Ogievskiy "drive0": [ 910dfdc48d5SJohn Snow { 911dfdc48d5SJohn Snow "busy": false, 912dfdc48d5SJohn Snow "count": 655360, 913dfdc48d5SJohn Snow "granularity": 65536, 914dfdc48d5SJohn Snow "name": "bitmap0", 915dfdc48d5SJohn Snow "persistent": false, 91681cbfd50SDaniel P. Berrangé "recording": true 917dfdc48d5SJohn Snow } 918dfdc48d5SJohn Snow ] 919dfdc48d5SJohn Snow } 920dfdc48d5SJohn Snow} 921dfdc48d5SJohn Snow 922dfdc48d5SJohn Snow= Checking Bitmap bitmap0 = 923dfdc48d5SJohn Snowexpecting 10 dirty sectors; have 10. OK! 924dfdc48d5SJohn Snow 925dfdc48d5SJohn Snow--- Write #3 --- 926dfdc48d5SJohn Snow 927dfdc48d5SJohn Snowwrite -P0xaa 0x0010000 0x30000 928dfdc48d5SJohn Snow{"return": ""} 929dfdc48d5SJohn Snowwrite -P0xbb 0x00d8000 0x10000 930dfdc48d5SJohn Snow{"return": ""} 931dfdc48d5SJohn Snowwrite -P0xcc 0x2028000 0x10000 932dfdc48d5SJohn Snow{"return": ""} 933dfdc48d5SJohn Snowwrite -P0xdd 0x3fc0000 0x10000 934dfdc48d5SJohn Snow{"return": ""} 935dfdc48d5SJohn Snow{ 936dfdc48d5SJohn Snow "bitmaps": { 9375c4343b8SVladimir Sementsov-Ogievskiy "drive0": [ 938dfdc48d5SJohn Snow { 939dfdc48d5SJohn Snow "busy": false, 940dfdc48d5SJohn Snow "count": 983040, 941dfdc48d5SJohn Snow "granularity": 65536, 942dfdc48d5SJohn Snow "name": "bitmap0", 943dfdc48d5SJohn Snow "persistent": false, 94481cbfd50SDaniel P. Berrangé "recording": true 945dfdc48d5SJohn Snow } 946dfdc48d5SJohn Snow ] 947dfdc48d5SJohn Snow } 948dfdc48d5SJohn Snow} 949dfdc48d5SJohn Snow 950dfdc48d5SJohn Snow= Checking Bitmap bitmap0 = 951dfdc48d5SJohn Snowexpecting 15 dirty sectors; have 15. OK! 952dfdc48d5SJohn Snow 953dfdc48d5SJohn Snow--- Reference Backup #2 --- 954dfdc48d5SJohn Snow 955dfdc48d5SJohn Snow{} 956dfdc48d5SJohn Snow{"execute": "job-dismiss", "arguments": {"id": "bdc-file-job"}} 957dfdc48d5SJohn Snow{"return": {}} 958dfdc48d5SJohn Snow{} 959dfdc48d5SJohn Snow{} 960dfdc48d5SJohn Snow{"execute": "job-dismiss", "arguments": {"id": "bdc-fmt-job"}} 961dfdc48d5SJohn Snow{"return": {}} 962dfdc48d5SJohn Snow{} 9632d0f32e3SVladimir Sementsov-Ogievskiy{"execute": "blockdev-backup", "arguments": {"device": "drive0", "filter-node-name": "backup-top", "job-id": "ref_backup_2", "sync": "full", "target": "ref_target_2", "x-perf": {"max-workers": 1}}} 964dfdc48d5SJohn Snow{"return": {}} 965dfdc48d5SJohn Snow{"data": {"device": "ref_backup_2", "len": 67108864, "offset": 67108864, "speed": 0, "type": "backup"}, "event": "BLOCK_JOB_COMPLETED", "timestamp": {"microseconds": "USECS", "seconds": "SECS"}} 966dfdc48d5SJohn Snow 9670af2a09cSJohn Snow--- Test Backup #2 --- 968dfdc48d5SJohn Snow 969dfdc48d5SJohn Snow{} 970dfdc48d5SJohn Snow{"execute": "job-dismiss", "arguments": {"id": "bdc-file-job"}} 971dfdc48d5SJohn Snow{"return": {}} 972dfdc48d5SJohn Snow{} 973dfdc48d5SJohn Snow{} 974dfdc48d5SJohn Snow{"execute": "job-dismiss", "arguments": {"id": "bdc-fmt-job"}} 975dfdc48d5SJohn Snow{"return": {}} 976dfdc48d5SJohn Snow{} 9772d0f32e3SVladimir Sementsov-Ogievskiy{"execute": "blockdev-backup", "arguments": {"auto-finalize": false, "bitmap": "bitmap0", "bitmap-mode": "on-success", "device": "drive0", "filter-node-name": "backup-top", "job-id": "backup_2", "sync": "bitmap", "target": "backup_target_2", "x-perf": {"max-workers": 1}}} 978dfdc48d5SJohn Snow{"return": {}} 9790af2a09cSJohn Snow{"execute": "job-finalize", "arguments": {"id": "backup_2"}} 980dfdc48d5SJohn Snow{"return": {}} 9810af2a09cSJohn Snow{"data": {"id": "backup_2", "type": "backup"}, "event": "BLOCK_JOB_PENDING", "timestamp": {"microseconds": "USECS", "seconds": "SECS"}} 9820fff1f13SJohn Snow{"data": {"device": "backup_2", "len": 983040, "offset": 983040, "speed": 0, "type": "backup"}, "event": "BLOCK_JOB_COMPLETED", "timestamp": {"microseconds": "USECS", "seconds": "SECS"}} 983dfdc48d5SJohn Snow{ 984dfdc48d5SJohn Snow "bitmaps": { 9855c4343b8SVladimir Sementsov-Ogievskiy "drive0": [ 986dfdc48d5SJohn Snow { 987dfdc48d5SJohn Snow "busy": false, 988dfdc48d5SJohn Snow "count": 0, 989dfdc48d5SJohn Snow "granularity": 65536, 990dfdc48d5SJohn Snow "name": "bitmap0", 991dfdc48d5SJohn Snow "persistent": false, 99281cbfd50SDaniel P. Berrangé "recording": true 993dfdc48d5SJohn Snow } 994dfdc48d5SJohn Snow ] 995dfdc48d5SJohn Snow } 996dfdc48d5SJohn Snow} 997dfdc48d5SJohn Snow 998dfdc48d5SJohn Snow= Checking Bitmap bitmap0 = 999dfdc48d5SJohn Snowexpecting 0 dirty sectors; have 0. OK! 1000dfdc48d5SJohn Snow 1001dfdc48d5SJohn Snow--- Cleanup --- 1002dfdc48d5SJohn Snow 1003dfdc48d5SJohn Snow{"execute": "block-dirty-bitmap-remove", "arguments": {"name": "bitmap0", "node": "drive0"}} 1004dfdc48d5SJohn Snow{"return": {}} 1005dfdc48d5SJohn Snow{ 10065c4343b8SVladimir Sementsov-Ogievskiy "bitmaps": {} 1007dfdc48d5SJohn Snow} 1008dfdc48d5SJohn Snow 1009dfdc48d5SJohn Snow--- Verification --- 1010dfdc48d5SJohn Snow 1011dfdc48d5SJohn Snowqemu_img compare "TEST_DIR/PID-bsync1" "TEST_DIR/PID-fbackup1" ==> Identical, OK! 1012dfdc48d5SJohn Snowqemu_img compare "TEST_DIR/PID-bsync2" "TEST_DIR/PID-fbackup2" ==> Identical, OK! 1013dfdc48d5SJohn Snowqemu_img compare "TEST_DIR/PID-img" "TEST_DIR/PID-fbackup2" ==> Identical, OK! 1014dfdc48d5SJohn Snow 1015dfdc48d5SJohn Snow 10160af2a09cSJohn Snow=== Mode bitmap; Bitmap Sync on-success with intermediate failure === 1017dfdc48d5SJohn Snow 1018dfdc48d5SJohn Snow--- Preparing image & VM --- 1019dfdc48d5SJohn Snow 1020dfdc48d5SJohn Snow{"execute": "blockdev-add", "arguments": {"driver": "qcow2", "file": {"driver": "blkdebug", "image": {"driver": "file", "filename": "TEST_DIR/PID-img"}, "inject-error": [{"errno": 5, "event": "read_aio", "immediately": false, "once": true, "state": 3}], "set-state": [{"event": "flush_to_disk", "new-state": 2, "state": 1}, {"event": "read_aio", "new-state": 3, "state": 2}]}, "node-name": "drive0"}} 1021dfdc48d5SJohn Snow{"return": {}} 1022dfdc48d5SJohn Snow 1023dfdc48d5SJohn Snow--- Write #0 --- 1024dfdc48d5SJohn Snow 1025dfdc48d5SJohn Snowwrite -P0x49 0x0000000 0x10000 1026dfdc48d5SJohn Snow{"return": ""} 1027dfdc48d5SJohn Snowwrite -P0x6c 0x0100000 0x10000 1028dfdc48d5SJohn Snow{"return": ""} 1029dfdc48d5SJohn Snowwrite -P0x6f 0x2000000 0x10000 1030dfdc48d5SJohn Snow{"return": ""} 1031dfdc48d5SJohn Snowwrite -P0x76 0x3ff0000 0x10000 1032dfdc48d5SJohn Snow{"return": ""} 1033dfdc48d5SJohn Snow{ 10345c4343b8SVladimir Sementsov-Ogievskiy "bitmaps": {} 1035dfdc48d5SJohn Snow} 1036dfdc48d5SJohn Snow 1037dfdc48d5SJohn Snow--- Reference Backup #0 --- 1038dfdc48d5SJohn Snow 1039dfdc48d5SJohn Snow{} 1040dfdc48d5SJohn Snow{"execute": "job-dismiss", "arguments": {"id": "bdc-file-job"}} 1041dfdc48d5SJohn Snow{"return": {}} 1042dfdc48d5SJohn Snow{} 1043dfdc48d5SJohn Snow{} 1044dfdc48d5SJohn Snow{"execute": "job-dismiss", "arguments": {"id": "bdc-fmt-job"}} 1045dfdc48d5SJohn Snow{"return": {}} 1046dfdc48d5SJohn Snow{} 10472d0f32e3SVladimir Sementsov-Ogievskiy{"execute": "blockdev-backup", "arguments": {"device": "drive0", "filter-node-name": "backup-top", "job-id": "ref_backup_0", "sync": "full", "target": "ref_target_0", "x-perf": {"max-workers": 1}}} 1048dfdc48d5SJohn Snow{"return": {}} 1049dfdc48d5SJohn Snow{"data": {"device": "ref_backup_0", "len": 67108864, "offset": 67108864, "speed": 0, "type": "backup"}, "event": "BLOCK_JOB_COMPLETED", "timestamp": {"microseconds": "USECS", "seconds": "SECS"}} 1050dfdc48d5SJohn Snow 1051dfdc48d5SJohn Snow--- Add Bitmap --- 1052dfdc48d5SJohn Snow 1053dfdc48d5SJohn Snow{"execute": "block-dirty-bitmap-add", "arguments": {"granularity": 65536, "name": "bitmap0", "node": "drive0"}} 1054dfdc48d5SJohn Snow{"return": {}} 1055dfdc48d5SJohn Snow 1056dfdc48d5SJohn Snow--- Write #1 --- 1057dfdc48d5SJohn Snow 1058dfdc48d5SJohn Snowwrite -P0x65 0x0000000 0x10000 1059dfdc48d5SJohn Snow{"return": ""} 1060dfdc48d5SJohn Snowwrite -P0x77 0x00f8000 0x10000 1061dfdc48d5SJohn Snow{"return": ""} 1062dfdc48d5SJohn Snowwrite -P0x72 0x2008000 0x10000 1063dfdc48d5SJohn Snow{"return": ""} 1064dfdc48d5SJohn Snowwrite -P0x69 0x3fe0000 0x10000 1065dfdc48d5SJohn Snow{"return": ""} 1066dfdc48d5SJohn Snow{ 1067dfdc48d5SJohn Snow "bitmaps": { 10685c4343b8SVladimir Sementsov-Ogievskiy "drive0": [ 1069dfdc48d5SJohn Snow { 1070dfdc48d5SJohn Snow "busy": false, 1071dfdc48d5SJohn Snow "count": 393216, 1072dfdc48d5SJohn Snow "granularity": 65536, 1073dfdc48d5SJohn Snow "name": "bitmap0", 1074dfdc48d5SJohn Snow "persistent": false, 107581cbfd50SDaniel P. Berrangé "recording": true 1076dfdc48d5SJohn Snow } 1077dfdc48d5SJohn Snow ] 1078dfdc48d5SJohn Snow } 1079dfdc48d5SJohn Snow} 1080dfdc48d5SJohn Snow 1081dfdc48d5SJohn Snow= Checking Bitmap bitmap0 = 1082dfdc48d5SJohn Snowexpecting 6 dirty sectors; have 6. OK! 1083dfdc48d5SJohn Snow 1084dfdc48d5SJohn Snow--- Reference Backup #1 --- 1085dfdc48d5SJohn Snow 1086dfdc48d5SJohn Snow{} 1087dfdc48d5SJohn Snow{"execute": "job-dismiss", "arguments": {"id": "bdc-file-job"}} 1088dfdc48d5SJohn Snow{"return": {}} 1089dfdc48d5SJohn Snow{} 1090dfdc48d5SJohn Snow{} 1091dfdc48d5SJohn Snow{"execute": "job-dismiss", "arguments": {"id": "bdc-fmt-job"}} 1092dfdc48d5SJohn Snow{"return": {}} 1093dfdc48d5SJohn Snow{} 10942d0f32e3SVladimir Sementsov-Ogievskiy{"execute": "blockdev-backup", "arguments": {"device": "drive0", "filter-node-name": "backup-top", "job-id": "ref_backup_1", "sync": "full", "target": "ref_target_1", "x-perf": {"max-workers": 1}}} 1095dfdc48d5SJohn Snow{"return": {}} 1096dfdc48d5SJohn Snow{"data": {"device": "ref_backup_1", "len": 67108864, "offset": 67108864, "speed": 0, "type": "backup"}, "event": "BLOCK_JOB_COMPLETED", "timestamp": {"microseconds": "USECS", "seconds": "SECS"}} 1097dfdc48d5SJohn Snow 1098dfdc48d5SJohn Snow{"return": ""} 1099dfdc48d5SJohn Snow 11000af2a09cSJohn Snow--- Test Backup #1 --- 1101dfdc48d5SJohn Snow 1102dfdc48d5SJohn Snow{} 1103dfdc48d5SJohn Snow{"execute": "job-dismiss", "arguments": {"id": "bdc-file-job"}} 1104dfdc48d5SJohn Snow{"return": {}} 1105dfdc48d5SJohn Snow{} 1106dfdc48d5SJohn Snow{} 1107dfdc48d5SJohn Snow{"execute": "job-dismiss", "arguments": {"id": "bdc-fmt-job"}} 1108dfdc48d5SJohn Snow{"return": {}} 1109dfdc48d5SJohn Snow{} 11102d0f32e3SVladimir Sementsov-Ogievskiy{"execute": "blockdev-backup", "arguments": {"auto-finalize": false, "bitmap": "bitmap0", "bitmap-mode": "on-success", "device": "drive0", "filter-node-name": "backup-top", "job-id": "backup_1", "sync": "bitmap", "target": "backup_target_1", "x-perf": {"max-workers": 1}}} 1111dfdc48d5SJohn Snow{"return": {}} 11120af2a09cSJohn Snow{"data": {"action": "report", "device": "backup_1", "operation": "read"}, "event": "BLOCK_JOB_ERROR", "timestamp": {"microseconds": "USECS", "seconds": "SECS"}} 11130fff1f13SJohn Snow{"data": {"device": "backup_1", "error": "Input/output error", "len": 393216, "offset": 65536, "speed": 0, "type": "backup"}, "event": "BLOCK_JOB_COMPLETED", "timestamp": {"microseconds": "USECS", "seconds": "SECS"}} 1114dfdc48d5SJohn Snow{ 1115dfdc48d5SJohn Snow "bitmaps": { 11165c4343b8SVladimir Sementsov-Ogievskiy "drive0": [ 1117dfdc48d5SJohn Snow { 1118dfdc48d5SJohn Snow "busy": false, 1119dfdc48d5SJohn Snow "count": 393216, 1120dfdc48d5SJohn Snow "granularity": 65536, 1121dfdc48d5SJohn Snow "name": "bitmap0", 1122dfdc48d5SJohn Snow "persistent": false, 112381cbfd50SDaniel P. Berrangé "recording": true 1124dfdc48d5SJohn Snow } 1125dfdc48d5SJohn Snow ] 1126dfdc48d5SJohn Snow } 1127dfdc48d5SJohn Snow} 1128dfdc48d5SJohn Snow 1129dfdc48d5SJohn Snow= Checking Bitmap bitmap0 = 1130dfdc48d5SJohn Snowexpecting 6 dirty sectors; have 6. OK! 1131dfdc48d5SJohn Snow 1132dfdc48d5SJohn Snow--- Write #3 --- 1133dfdc48d5SJohn Snow 1134dfdc48d5SJohn Snowwrite -P0xaa 0x0010000 0x30000 1135dfdc48d5SJohn Snow{"return": ""} 1136dfdc48d5SJohn Snowwrite -P0xbb 0x00d8000 0x10000 1137dfdc48d5SJohn Snow{"return": ""} 1138dfdc48d5SJohn Snowwrite -P0xcc 0x2028000 0x10000 1139dfdc48d5SJohn Snow{"return": ""} 1140dfdc48d5SJohn Snowwrite -P0xdd 0x3fc0000 0x10000 1141dfdc48d5SJohn Snow{"return": ""} 1142dfdc48d5SJohn Snow{ 1143dfdc48d5SJohn Snow "bitmaps": { 11445c4343b8SVladimir Sementsov-Ogievskiy "drive0": [ 1145dfdc48d5SJohn Snow { 1146dfdc48d5SJohn Snow "busy": false, 1147dfdc48d5SJohn Snow "count": 917504, 1148dfdc48d5SJohn Snow "granularity": 65536, 1149dfdc48d5SJohn Snow "name": "bitmap0", 1150dfdc48d5SJohn Snow "persistent": false, 115181cbfd50SDaniel P. Berrangé "recording": true 1152dfdc48d5SJohn Snow } 1153dfdc48d5SJohn Snow ] 1154dfdc48d5SJohn Snow } 1155dfdc48d5SJohn Snow} 1156dfdc48d5SJohn Snow 1157dfdc48d5SJohn Snow= Checking Bitmap bitmap0 = 1158dfdc48d5SJohn Snowexpecting 14 dirty sectors; have 14. OK! 1159dfdc48d5SJohn Snow 1160dfdc48d5SJohn Snow--- Reference Backup #2 --- 1161dfdc48d5SJohn Snow 1162dfdc48d5SJohn Snow{} 1163dfdc48d5SJohn Snow{"execute": "job-dismiss", "arguments": {"id": "bdc-file-job"}} 1164dfdc48d5SJohn Snow{"return": {}} 1165dfdc48d5SJohn Snow{} 1166dfdc48d5SJohn Snow{} 1167dfdc48d5SJohn Snow{"execute": "job-dismiss", "arguments": {"id": "bdc-fmt-job"}} 1168dfdc48d5SJohn Snow{"return": {}} 1169dfdc48d5SJohn Snow{} 11702d0f32e3SVladimir Sementsov-Ogievskiy{"execute": "blockdev-backup", "arguments": {"device": "drive0", "filter-node-name": "backup-top", "job-id": "ref_backup_2", "sync": "full", "target": "ref_target_2", "x-perf": {"max-workers": 1}}} 1171dfdc48d5SJohn Snow{"return": {}} 1172dfdc48d5SJohn Snow{"data": {"device": "ref_backup_2", "len": 67108864, "offset": 67108864, "speed": 0, "type": "backup"}, "event": "BLOCK_JOB_COMPLETED", "timestamp": {"microseconds": "USECS", "seconds": "SECS"}} 1173dfdc48d5SJohn Snow 11740af2a09cSJohn Snow--- Test Backup #2 --- 1175dfdc48d5SJohn Snow 1176dfdc48d5SJohn Snow{} 1177dfdc48d5SJohn Snow{"execute": "job-dismiss", "arguments": {"id": "bdc-file-job"}} 1178dfdc48d5SJohn Snow{"return": {}} 1179dfdc48d5SJohn Snow{} 1180dfdc48d5SJohn Snow{} 1181dfdc48d5SJohn Snow{"execute": "job-dismiss", "arguments": {"id": "bdc-fmt-job"}} 1182dfdc48d5SJohn Snow{"return": {}} 1183dfdc48d5SJohn Snow{} 11842d0f32e3SVladimir Sementsov-Ogievskiy{"execute": "blockdev-backup", "arguments": {"auto-finalize": false, "bitmap": "bitmap0", "bitmap-mode": "on-success", "device": "drive0", "filter-node-name": "backup-top", "job-id": "backup_2", "sync": "bitmap", "target": "backup_target_2", "x-perf": {"max-workers": 1}}} 1185dfdc48d5SJohn Snow{"return": {}} 11860af2a09cSJohn Snow{"execute": "job-finalize", "arguments": {"id": "backup_2"}} 1187dfdc48d5SJohn Snow{"return": {}} 11880af2a09cSJohn Snow{"data": {"id": "backup_2", "type": "backup"}, "event": "BLOCK_JOB_PENDING", "timestamp": {"microseconds": "USECS", "seconds": "SECS"}} 11890fff1f13SJohn Snow{"data": {"device": "backup_2", "len": 917504, "offset": 917504, "speed": 0, "type": "backup"}, "event": "BLOCK_JOB_COMPLETED", "timestamp": {"microseconds": "USECS", "seconds": "SECS"}} 1190dfdc48d5SJohn Snow{ 1191dfdc48d5SJohn Snow "bitmaps": { 11925c4343b8SVladimir Sementsov-Ogievskiy "drive0": [ 1193dfdc48d5SJohn Snow { 1194dfdc48d5SJohn Snow "busy": false, 1195dfdc48d5SJohn Snow "count": 0, 1196dfdc48d5SJohn Snow "granularity": 65536, 1197dfdc48d5SJohn Snow "name": "bitmap0", 1198dfdc48d5SJohn Snow "persistent": false, 119981cbfd50SDaniel P. Berrangé "recording": true 1200dfdc48d5SJohn Snow } 1201dfdc48d5SJohn Snow ] 1202dfdc48d5SJohn Snow } 1203dfdc48d5SJohn Snow} 1204dfdc48d5SJohn Snow 1205dfdc48d5SJohn Snow= Checking Bitmap bitmap0 = 1206dfdc48d5SJohn Snowexpecting 0 dirty sectors; have 0. OK! 1207dfdc48d5SJohn Snow 1208dfdc48d5SJohn Snow--- Cleanup --- 1209dfdc48d5SJohn Snow 1210dfdc48d5SJohn Snow{"execute": "block-dirty-bitmap-remove", "arguments": {"name": "bitmap0", "node": "drive0"}} 1211dfdc48d5SJohn Snow{"return": {}} 1212dfdc48d5SJohn Snow{ 12135c4343b8SVladimir Sementsov-Ogievskiy "bitmaps": {} 1214dfdc48d5SJohn Snow} 1215dfdc48d5SJohn Snow 1216dfdc48d5SJohn Snow--- Verification --- 1217dfdc48d5SJohn Snow 1218dfdc48d5SJohn Snowqemu_img compare "TEST_DIR/PID-bsync1" "TEST_DIR/PID-fbackup1" ==> Mismatch, OK! 1219dfdc48d5SJohn Snowqemu_img compare "TEST_DIR/PID-bsync2" "TEST_DIR/PID-fbackup2" ==> Identical, OK! 1220dfdc48d5SJohn Snowqemu_img compare "TEST_DIR/PID-img" "TEST_DIR/PID-fbackup2" ==> Identical, OK! 1221dfdc48d5SJohn Snow 1222dfdc48d5SJohn Snow 12230af2a09cSJohn Snow=== Mode bitmap; Bitmap Sync on-success without failure === 1224dfdc48d5SJohn Snow 1225dfdc48d5SJohn Snow--- Preparing image & VM --- 1226dfdc48d5SJohn Snow 1227dfdc48d5SJohn Snow{"execute": "blockdev-add", "arguments": {"driver": "qcow2", "file": {"driver": "file", "filename": "TEST_DIR/PID-img"}, "node-name": "drive0"}} 1228dfdc48d5SJohn Snow{"return": {}} 1229dfdc48d5SJohn Snow 1230dfdc48d5SJohn Snow--- Write #0 --- 1231dfdc48d5SJohn Snow 1232dfdc48d5SJohn Snowwrite -P0x49 0x0000000 0x10000 1233dfdc48d5SJohn Snow{"return": ""} 1234dfdc48d5SJohn Snowwrite -P0x6c 0x0100000 0x10000 1235dfdc48d5SJohn Snow{"return": ""} 1236dfdc48d5SJohn Snowwrite -P0x6f 0x2000000 0x10000 1237dfdc48d5SJohn Snow{"return": ""} 1238dfdc48d5SJohn Snowwrite -P0x76 0x3ff0000 0x10000 1239dfdc48d5SJohn Snow{"return": ""} 1240dfdc48d5SJohn Snow{ 12415c4343b8SVladimir Sementsov-Ogievskiy "bitmaps": {} 1242dfdc48d5SJohn Snow} 1243dfdc48d5SJohn Snow 1244dfdc48d5SJohn Snow--- Reference Backup #0 --- 1245dfdc48d5SJohn Snow 1246dfdc48d5SJohn Snow{} 1247dfdc48d5SJohn Snow{"execute": "job-dismiss", "arguments": {"id": "bdc-file-job"}} 1248dfdc48d5SJohn Snow{"return": {}} 1249dfdc48d5SJohn Snow{} 1250dfdc48d5SJohn Snow{} 1251dfdc48d5SJohn Snow{"execute": "job-dismiss", "arguments": {"id": "bdc-fmt-job"}} 1252dfdc48d5SJohn Snow{"return": {}} 1253dfdc48d5SJohn Snow{} 12542d0f32e3SVladimir Sementsov-Ogievskiy{"execute": "blockdev-backup", "arguments": {"device": "drive0", "filter-node-name": "backup-top", "job-id": "ref_backup_0", "sync": "full", "target": "ref_target_0", "x-perf": {"max-workers": 1}}} 1255dfdc48d5SJohn Snow{"return": {}} 1256dfdc48d5SJohn Snow{"data": {"device": "ref_backup_0", "len": 67108864, "offset": 67108864, "speed": 0, "type": "backup"}, "event": "BLOCK_JOB_COMPLETED", "timestamp": {"microseconds": "USECS", "seconds": "SECS"}} 1257dfdc48d5SJohn Snow 1258dfdc48d5SJohn Snow--- Add Bitmap --- 1259dfdc48d5SJohn Snow 1260dfdc48d5SJohn Snow{"execute": "block-dirty-bitmap-add", "arguments": {"granularity": 65536, "name": "bitmap0", "node": "drive0"}} 1261dfdc48d5SJohn Snow{"return": {}} 1262dfdc48d5SJohn Snow 1263dfdc48d5SJohn Snow--- Write #1 --- 1264dfdc48d5SJohn Snow 1265dfdc48d5SJohn Snowwrite -P0x65 0x0000000 0x10000 1266dfdc48d5SJohn Snow{"return": ""} 1267dfdc48d5SJohn Snowwrite -P0x77 0x00f8000 0x10000 1268dfdc48d5SJohn Snow{"return": ""} 1269dfdc48d5SJohn Snowwrite -P0x72 0x2008000 0x10000 1270dfdc48d5SJohn Snow{"return": ""} 1271dfdc48d5SJohn Snowwrite -P0x69 0x3fe0000 0x10000 1272dfdc48d5SJohn Snow{"return": ""} 1273dfdc48d5SJohn Snow{ 1274dfdc48d5SJohn Snow "bitmaps": { 12755c4343b8SVladimir Sementsov-Ogievskiy "drive0": [ 1276dfdc48d5SJohn Snow { 1277dfdc48d5SJohn Snow "busy": false, 1278dfdc48d5SJohn Snow "count": 393216, 1279dfdc48d5SJohn Snow "granularity": 65536, 1280dfdc48d5SJohn Snow "name": "bitmap0", 1281dfdc48d5SJohn Snow "persistent": false, 128281cbfd50SDaniel P. Berrangé "recording": true 1283dfdc48d5SJohn Snow } 1284dfdc48d5SJohn Snow ] 1285dfdc48d5SJohn Snow } 1286dfdc48d5SJohn Snow} 1287dfdc48d5SJohn Snow 1288dfdc48d5SJohn Snow= Checking Bitmap bitmap0 = 1289dfdc48d5SJohn Snowexpecting 6 dirty sectors; have 6. OK! 1290dfdc48d5SJohn Snow 1291dfdc48d5SJohn Snow--- Reference Backup #1 --- 1292dfdc48d5SJohn Snow 1293dfdc48d5SJohn Snow{} 1294dfdc48d5SJohn Snow{"execute": "job-dismiss", "arguments": {"id": "bdc-file-job"}} 1295dfdc48d5SJohn Snow{"return": {}} 1296dfdc48d5SJohn Snow{} 1297dfdc48d5SJohn Snow{} 1298dfdc48d5SJohn Snow{"execute": "job-dismiss", "arguments": {"id": "bdc-fmt-job"}} 1299dfdc48d5SJohn Snow{"return": {}} 1300dfdc48d5SJohn Snow{} 13012d0f32e3SVladimir Sementsov-Ogievskiy{"execute": "blockdev-backup", "arguments": {"device": "drive0", "filter-node-name": "backup-top", "job-id": "ref_backup_1", "sync": "full", "target": "ref_target_1", "x-perf": {"max-workers": 1}}} 1302dfdc48d5SJohn Snow{"return": {}} 1303dfdc48d5SJohn Snow{"data": {"device": "ref_backup_1", "len": 67108864, "offset": 67108864, "speed": 0, "type": "backup"}, "event": "BLOCK_JOB_COMPLETED", "timestamp": {"microseconds": "USECS", "seconds": "SECS"}} 1304dfdc48d5SJohn Snow 13050af2a09cSJohn Snow--- Test Backup #1 --- 1306dfdc48d5SJohn Snow 1307dfdc48d5SJohn Snow{} 1308dfdc48d5SJohn Snow{"execute": "job-dismiss", "arguments": {"id": "bdc-file-job"}} 1309dfdc48d5SJohn Snow{"return": {}} 1310dfdc48d5SJohn Snow{} 1311dfdc48d5SJohn Snow{} 1312dfdc48d5SJohn Snow{"execute": "job-dismiss", "arguments": {"id": "bdc-fmt-job"}} 1313dfdc48d5SJohn Snow{"return": {}} 1314dfdc48d5SJohn Snow{} 13152d0f32e3SVladimir Sementsov-Ogievskiy{"execute": "blockdev-backup", "arguments": {"auto-finalize": false, "bitmap": "bitmap0", "bitmap-mode": "on-success", "device": "drive0", "filter-node-name": "backup-top", "job-id": "backup_1", "sync": "bitmap", "target": "backup_target_1", "x-perf": {"max-workers": 1}}} 1316dfdc48d5SJohn Snow{"return": {}} 1317dfdc48d5SJohn Snow 1318dfdc48d5SJohn Snow--- Write #2 --- 1319dfdc48d5SJohn Snow 1320dfdc48d5SJohn Snowwrite -P0x74 0x0010000 0x10000 1321dfdc48d5SJohn Snow{"return": ""} 1322dfdc48d5SJohn Snowwrite -P0x69 0x00e8000 0x10000 1323dfdc48d5SJohn Snow{"return": ""} 1324dfdc48d5SJohn Snowwrite -P0x6e 0x2018000 0x10000 1325dfdc48d5SJohn Snow{"return": ""} 1326dfdc48d5SJohn Snowwrite -P0x67 0x3fe0000 0x20000 1327dfdc48d5SJohn Snow{"return": ""} 1328dfdc48d5SJohn Snow{ 1329dfdc48d5SJohn Snow "bitmaps": { 1330af5bcd77SVladimir Sementsov-Ogievskiy "backup-top": [ 1331af5bcd77SVladimir Sementsov-Ogievskiy { 1332af5bcd77SVladimir Sementsov-Ogievskiy "busy": false, 1333af5bcd77SVladimir Sementsov-Ogievskiy "count": 67108864, 1334af5bcd77SVladimir Sementsov-Ogievskiy "granularity": 65536, 1335af5bcd77SVladimir Sementsov-Ogievskiy "persistent": false, 1336af5bcd77SVladimir Sementsov-Ogievskiy "recording": false 1337af5bcd77SVladimir Sementsov-Ogievskiy }, 1338af5bcd77SVladimir Sementsov-Ogievskiy { 1339af5bcd77SVladimir Sementsov-Ogievskiy "busy": false, 1340af5bcd77SVladimir Sementsov-Ogievskiy "count": 458752, 1341af5bcd77SVladimir Sementsov-Ogievskiy "granularity": 65536, 1342af5bcd77SVladimir Sementsov-Ogievskiy "persistent": false, 1343af5bcd77SVladimir Sementsov-Ogievskiy "recording": false 1344*006e845bSVladimir Sementsov-Ogievskiy }, 1345dfdc48d5SJohn Snow { 1346dfdc48d5SJohn Snow "busy": false, 1347dfdc48d5SJohn Snow "count": 0, 1348dfdc48d5SJohn Snow "granularity": 65536, 1349dfdc48d5SJohn Snow "persistent": false, 135081cbfd50SDaniel P. Berrangé "recording": false 1351*006e845bSVladimir Sementsov-Ogievskiy } 1352*006e845bSVladimir Sementsov-Ogievskiy ], 1353*006e845bSVladimir Sementsov-Ogievskiy "drive0": [ 1354dfdc48d5SJohn Snow { 1355dfdc48d5SJohn Snow "busy": false, 1356dfdc48d5SJohn Snow "count": 458752, 1357dfdc48d5SJohn Snow "granularity": 65536, 1358dfdc48d5SJohn Snow "persistent": false, 135981cbfd50SDaniel P. Berrangé "recording": true 1360dfdc48d5SJohn Snow }, 1361dfdc48d5SJohn Snow { 1362dfdc48d5SJohn Snow "busy": true, 1363dfdc48d5SJohn Snow "count": 393216, 1364dfdc48d5SJohn Snow "granularity": 65536, 1365dfdc48d5SJohn Snow "name": "bitmap0", 1366dfdc48d5SJohn Snow "persistent": false, 136781cbfd50SDaniel P. Berrangé "recording": true 1368dfdc48d5SJohn Snow } 1369dfdc48d5SJohn Snow ] 1370dfdc48d5SJohn Snow } 1371dfdc48d5SJohn Snow} 1372dfdc48d5SJohn Snow 1373dfdc48d5SJohn Snow= Checking Bitmap bitmap0 = 1374dfdc48d5SJohn Snowexpecting 6 dirty sectors; have 6. OK! 1375dfdc48d5SJohn Snow 1376dfdc48d5SJohn Snow= Checking Bitmap (anonymous) = 1377dfdc48d5SJohn Snowexpecting 7 dirty sectors; have 7. OK! 1378dfdc48d5SJohn Snow 13790af2a09cSJohn Snow{"execute": "job-finalize", "arguments": {"id": "backup_1"}} 1380dfdc48d5SJohn Snow{"return": {}} 13810af2a09cSJohn Snow{"data": {"id": "backup_1", "type": "backup"}, "event": "BLOCK_JOB_PENDING", "timestamp": {"microseconds": "USECS", "seconds": "SECS"}} 13820fff1f13SJohn Snow{"data": {"device": "backup_1", "len": 393216, "offset": 393216, "speed": 0, "type": "backup"}, "event": "BLOCK_JOB_COMPLETED", "timestamp": {"microseconds": "USECS", "seconds": "SECS"}} 1383dfdc48d5SJohn Snow{ 1384dfdc48d5SJohn Snow "bitmaps": { 13855c4343b8SVladimir Sementsov-Ogievskiy "drive0": [ 1386dfdc48d5SJohn Snow { 1387dfdc48d5SJohn Snow "busy": false, 1388dfdc48d5SJohn Snow "count": 458752, 1389dfdc48d5SJohn Snow "granularity": 65536, 1390dfdc48d5SJohn Snow "name": "bitmap0", 1391dfdc48d5SJohn Snow "persistent": false, 139281cbfd50SDaniel P. Berrangé "recording": true 1393dfdc48d5SJohn Snow } 1394dfdc48d5SJohn Snow ] 1395dfdc48d5SJohn Snow } 1396dfdc48d5SJohn Snow} 1397dfdc48d5SJohn Snow 1398dfdc48d5SJohn Snow= Checking Bitmap bitmap0 = 1399dfdc48d5SJohn Snowexpecting 7 dirty sectors; have 7. OK! 1400dfdc48d5SJohn Snow 1401dfdc48d5SJohn Snow--- Write #3 --- 1402dfdc48d5SJohn Snow 1403dfdc48d5SJohn Snowwrite -P0xaa 0x0010000 0x30000 1404dfdc48d5SJohn Snow{"return": ""} 1405dfdc48d5SJohn Snowwrite -P0xbb 0x00d8000 0x10000 1406dfdc48d5SJohn Snow{"return": ""} 1407dfdc48d5SJohn Snowwrite -P0xcc 0x2028000 0x10000 1408dfdc48d5SJohn Snow{"return": ""} 1409dfdc48d5SJohn Snowwrite -P0xdd 0x3fc0000 0x10000 1410dfdc48d5SJohn Snow{"return": ""} 1411dfdc48d5SJohn Snow{ 1412dfdc48d5SJohn Snow "bitmaps": { 14135c4343b8SVladimir Sementsov-Ogievskiy "drive0": [ 1414dfdc48d5SJohn Snow { 1415dfdc48d5SJohn Snow "busy": false, 1416dfdc48d5SJohn Snow "count": 786432, 1417dfdc48d5SJohn Snow "granularity": 65536, 1418dfdc48d5SJohn Snow "name": "bitmap0", 1419dfdc48d5SJohn Snow "persistent": false, 142081cbfd50SDaniel P. Berrangé "recording": true 1421dfdc48d5SJohn Snow } 1422dfdc48d5SJohn Snow ] 1423dfdc48d5SJohn Snow } 1424dfdc48d5SJohn Snow} 1425dfdc48d5SJohn Snow 1426dfdc48d5SJohn Snow= Checking Bitmap bitmap0 = 1427dfdc48d5SJohn Snowexpecting 12 dirty sectors; have 12. OK! 1428dfdc48d5SJohn Snow 1429dfdc48d5SJohn Snow--- Reference Backup #2 --- 1430dfdc48d5SJohn Snow 1431dfdc48d5SJohn Snow{} 1432dfdc48d5SJohn Snow{"execute": "job-dismiss", "arguments": {"id": "bdc-file-job"}} 1433dfdc48d5SJohn Snow{"return": {}} 1434dfdc48d5SJohn Snow{} 1435dfdc48d5SJohn Snow{} 1436dfdc48d5SJohn Snow{"execute": "job-dismiss", "arguments": {"id": "bdc-fmt-job"}} 1437dfdc48d5SJohn Snow{"return": {}} 1438dfdc48d5SJohn Snow{} 14392d0f32e3SVladimir Sementsov-Ogievskiy{"execute": "blockdev-backup", "arguments": {"device": "drive0", "filter-node-name": "backup-top", "job-id": "ref_backup_2", "sync": "full", "target": "ref_target_2", "x-perf": {"max-workers": 1}}} 1440dfdc48d5SJohn Snow{"return": {}} 1441dfdc48d5SJohn Snow{"data": {"device": "ref_backup_2", "len": 67108864, "offset": 67108864, "speed": 0, "type": "backup"}, "event": "BLOCK_JOB_COMPLETED", "timestamp": {"microseconds": "USECS", "seconds": "SECS"}} 1442dfdc48d5SJohn Snow 14430af2a09cSJohn Snow--- Test Backup #2 --- 1444dfdc48d5SJohn Snow 1445dfdc48d5SJohn Snow{} 1446dfdc48d5SJohn Snow{"execute": "job-dismiss", "arguments": {"id": "bdc-file-job"}} 1447dfdc48d5SJohn Snow{"return": {}} 1448dfdc48d5SJohn Snow{} 1449dfdc48d5SJohn Snow{} 1450dfdc48d5SJohn Snow{"execute": "job-dismiss", "arguments": {"id": "bdc-fmt-job"}} 1451dfdc48d5SJohn Snow{"return": {}} 1452dfdc48d5SJohn Snow{} 14532d0f32e3SVladimir Sementsov-Ogievskiy{"execute": "blockdev-backup", "arguments": {"auto-finalize": false, "bitmap": "bitmap0", "bitmap-mode": "on-success", "device": "drive0", "filter-node-name": "backup-top", "job-id": "backup_2", "sync": "bitmap", "target": "backup_target_2", "x-perf": {"max-workers": 1}}} 1454dfdc48d5SJohn Snow{"return": {}} 14550af2a09cSJohn Snow{"execute": "job-finalize", "arguments": {"id": "backup_2"}} 1456dfdc48d5SJohn Snow{"return": {}} 14570af2a09cSJohn Snow{"data": {"id": "backup_2", "type": "backup"}, "event": "BLOCK_JOB_PENDING", "timestamp": {"microseconds": "USECS", "seconds": "SECS"}} 14580fff1f13SJohn Snow{"data": {"device": "backup_2", "len": 786432, "offset": 786432, "speed": 0, "type": "backup"}, "event": "BLOCK_JOB_COMPLETED", "timestamp": {"microseconds": "USECS", "seconds": "SECS"}} 1459dfdc48d5SJohn Snow{ 1460dfdc48d5SJohn Snow "bitmaps": { 14615c4343b8SVladimir Sementsov-Ogievskiy "drive0": [ 1462dfdc48d5SJohn Snow { 1463dfdc48d5SJohn Snow "busy": false, 1464dfdc48d5SJohn Snow "count": 0, 1465dfdc48d5SJohn Snow "granularity": 65536, 1466dfdc48d5SJohn Snow "name": "bitmap0", 1467dfdc48d5SJohn Snow "persistent": false, 146881cbfd50SDaniel P. Berrangé "recording": true 1469dfdc48d5SJohn Snow } 1470dfdc48d5SJohn Snow ] 1471dfdc48d5SJohn Snow } 1472dfdc48d5SJohn Snow} 1473dfdc48d5SJohn Snow 1474dfdc48d5SJohn Snow= Checking Bitmap bitmap0 = 1475dfdc48d5SJohn Snowexpecting 0 dirty sectors; have 0. OK! 1476dfdc48d5SJohn Snow 1477dfdc48d5SJohn Snow--- Cleanup --- 1478dfdc48d5SJohn Snow 1479dfdc48d5SJohn Snow{"execute": "block-dirty-bitmap-remove", "arguments": {"name": "bitmap0", "node": "drive0"}} 1480dfdc48d5SJohn Snow{"return": {}} 1481dfdc48d5SJohn Snow{ 14825c4343b8SVladimir Sementsov-Ogievskiy "bitmaps": {} 1483dfdc48d5SJohn Snow} 1484dfdc48d5SJohn Snow 1485dfdc48d5SJohn Snow--- Verification --- 1486dfdc48d5SJohn Snow 1487dfdc48d5SJohn Snowqemu_img compare "TEST_DIR/PID-bsync1" "TEST_DIR/PID-fbackup1" ==> Identical, OK! 1488dfdc48d5SJohn Snowqemu_img compare "TEST_DIR/PID-bsync2" "TEST_DIR/PID-fbackup2" ==> Identical, OK! 1489dfdc48d5SJohn Snowqemu_img compare "TEST_DIR/PID-img" "TEST_DIR/PID-fbackup2" ==> Identical, OK! 1490dfdc48d5SJohn Snow 1491dfdc48d5SJohn Snow 14920af2a09cSJohn Snow=== Mode bitmap; Bitmap Sync always with simulated failure === 1493dfdc48d5SJohn Snow 1494dfdc48d5SJohn Snow--- Preparing image & VM --- 1495dfdc48d5SJohn Snow 1496dfdc48d5SJohn Snow{"execute": "blockdev-add", "arguments": {"driver": "qcow2", "file": {"driver": "file", "filename": "TEST_DIR/PID-img"}, "node-name": "drive0"}} 1497dfdc48d5SJohn Snow{"return": {}} 1498dfdc48d5SJohn Snow 1499dfdc48d5SJohn Snow--- Write #0 --- 1500dfdc48d5SJohn Snow 1501dfdc48d5SJohn Snowwrite -P0x49 0x0000000 0x10000 1502dfdc48d5SJohn Snow{"return": ""} 1503dfdc48d5SJohn Snowwrite -P0x6c 0x0100000 0x10000 1504dfdc48d5SJohn Snow{"return": ""} 1505dfdc48d5SJohn Snowwrite -P0x6f 0x2000000 0x10000 1506dfdc48d5SJohn Snow{"return": ""} 1507dfdc48d5SJohn Snowwrite -P0x76 0x3ff0000 0x10000 1508dfdc48d5SJohn Snow{"return": ""} 1509dfdc48d5SJohn Snow{ 15105c4343b8SVladimir Sementsov-Ogievskiy "bitmaps": {} 1511dfdc48d5SJohn Snow} 1512dfdc48d5SJohn Snow 1513dfdc48d5SJohn Snow--- Reference Backup #0 --- 1514dfdc48d5SJohn Snow 1515dfdc48d5SJohn Snow{} 1516dfdc48d5SJohn Snow{"execute": "job-dismiss", "arguments": {"id": "bdc-file-job"}} 1517dfdc48d5SJohn Snow{"return": {}} 1518dfdc48d5SJohn Snow{} 1519dfdc48d5SJohn Snow{} 1520dfdc48d5SJohn Snow{"execute": "job-dismiss", "arguments": {"id": "bdc-fmt-job"}} 1521dfdc48d5SJohn Snow{"return": {}} 1522dfdc48d5SJohn Snow{} 15232d0f32e3SVladimir Sementsov-Ogievskiy{"execute": "blockdev-backup", "arguments": {"device": "drive0", "filter-node-name": "backup-top", "job-id": "ref_backup_0", "sync": "full", "target": "ref_target_0", "x-perf": {"max-workers": 1}}} 1524dfdc48d5SJohn Snow{"return": {}} 1525dfdc48d5SJohn Snow{"data": {"device": "ref_backup_0", "len": 67108864, "offset": 67108864, "speed": 0, "type": "backup"}, "event": "BLOCK_JOB_COMPLETED", "timestamp": {"microseconds": "USECS", "seconds": "SECS"}} 1526dfdc48d5SJohn Snow 1527dfdc48d5SJohn Snow--- Add Bitmap --- 1528dfdc48d5SJohn Snow 1529dfdc48d5SJohn Snow{"execute": "block-dirty-bitmap-add", "arguments": {"granularity": 65536, "name": "bitmap0", "node": "drive0"}} 1530dfdc48d5SJohn Snow{"return": {}} 1531dfdc48d5SJohn Snow 1532dfdc48d5SJohn Snow--- Write #1 --- 1533dfdc48d5SJohn Snow 1534dfdc48d5SJohn Snowwrite -P0x65 0x0000000 0x10000 1535dfdc48d5SJohn Snow{"return": ""} 1536dfdc48d5SJohn Snowwrite -P0x77 0x00f8000 0x10000 1537dfdc48d5SJohn Snow{"return": ""} 1538dfdc48d5SJohn Snowwrite -P0x72 0x2008000 0x10000 1539dfdc48d5SJohn Snow{"return": ""} 1540dfdc48d5SJohn Snowwrite -P0x69 0x3fe0000 0x10000 1541dfdc48d5SJohn Snow{"return": ""} 1542dfdc48d5SJohn Snow{ 1543dfdc48d5SJohn Snow "bitmaps": { 15445c4343b8SVladimir Sementsov-Ogievskiy "drive0": [ 1545dfdc48d5SJohn Snow { 1546dfdc48d5SJohn Snow "busy": false, 1547dfdc48d5SJohn Snow "count": 393216, 1548dfdc48d5SJohn Snow "granularity": 65536, 1549dfdc48d5SJohn Snow "name": "bitmap0", 1550dfdc48d5SJohn Snow "persistent": false, 155181cbfd50SDaniel P. Berrangé "recording": true 1552dfdc48d5SJohn Snow } 1553dfdc48d5SJohn Snow ] 1554dfdc48d5SJohn Snow } 1555dfdc48d5SJohn Snow} 1556dfdc48d5SJohn Snow 1557dfdc48d5SJohn Snow= Checking Bitmap bitmap0 = 1558dfdc48d5SJohn Snowexpecting 6 dirty sectors; have 6. OK! 1559dfdc48d5SJohn Snow 1560dfdc48d5SJohn Snow--- Reference Backup #1 --- 1561dfdc48d5SJohn Snow 1562dfdc48d5SJohn Snow{} 1563dfdc48d5SJohn Snow{"execute": "job-dismiss", "arguments": {"id": "bdc-file-job"}} 1564dfdc48d5SJohn Snow{"return": {}} 1565dfdc48d5SJohn Snow{} 1566dfdc48d5SJohn Snow{} 1567dfdc48d5SJohn Snow{"execute": "job-dismiss", "arguments": {"id": "bdc-fmt-job"}} 1568dfdc48d5SJohn Snow{"return": {}} 1569dfdc48d5SJohn Snow{} 15702d0f32e3SVladimir Sementsov-Ogievskiy{"execute": "blockdev-backup", "arguments": {"device": "drive0", "filter-node-name": "backup-top", "job-id": "ref_backup_1", "sync": "full", "target": "ref_target_1", "x-perf": {"max-workers": 1}}} 1571dfdc48d5SJohn Snow{"return": {}} 1572dfdc48d5SJohn Snow{"data": {"device": "ref_backup_1", "len": 67108864, "offset": 67108864, "speed": 0, "type": "backup"}, "event": "BLOCK_JOB_COMPLETED", "timestamp": {"microseconds": "USECS", "seconds": "SECS"}} 1573dfdc48d5SJohn Snow 15740af2a09cSJohn Snow--- Test Backup #1 --- 1575dfdc48d5SJohn Snow 1576dfdc48d5SJohn Snow{} 1577dfdc48d5SJohn Snow{"execute": "job-dismiss", "arguments": {"id": "bdc-file-job"}} 1578dfdc48d5SJohn Snow{"return": {}} 1579dfdc48d5SJohn Snow{} 1580dfdc48d5SJohn Snow{} 1581dfdc48d5SJohn Snow{"execute": "job-dismiss", "arguments": {"id": "bdc-fmt-job"}} 1582dfdc48d5SJohn Snow{"return": {}} 1583dfdc48d5SJohn Snow{} 15842d0f32e3SVladimir Sementsov-Ogievskiy{"execute": "blockdev-backup", "arguments": {"auto-finalize": false, "bitmap": "bitmap0", "bitmap-mode": "always", "device": "drive0", "filter-node-name": "backup-top", "job-id": "backup_1", "sync": "bitmap", "target": "backup_target_1", "x-perf": {"max-workers": 1}}} 1585dfdc48d5SJohn Snow{"return": {}} 1586dfdc48d5SJohn Snow 1587dfdc48d5SJohn Snow--- Write #2 --- 1588dfdc48d5SJohn Snow 1589dfdc48d5SJohn Snowwrite -P0x74 0x0010000 0x10000 1590dfdc48d5SJohn Snow{"return": ""} 1591dfdc48d5SJohn Snowwrite -P0x69 0x00e8000 0x10000 1592dfdc48d5SJohn Snow{"return": ""} 1593dfdc48d5SJohn Snowwrite -P0x6e 0x2018000 0x10000 1594dfdc48d5SJohn Snow{"return": ""} 1595dfdc48d5SJohn Snowwrite -P0x67 0x3fe0000 0x20000 1596dfdc48d5SJohn Snow{"return": ""} 1597dfdc48d5SJohn Snow{ 1598dfdc48d5SJohn Snow "bitmaps": { 1599af5bcd77SVladimir Sementsov-Ogievskiy "backup-top": [ 1600af5bcd77SVladimir Sementsov-Ogievskiy { 1601af5bcd77SVladimir Sementsov-Ogievskiy "busy": false, 1602af5bcd77SVladimir Sementsov-Ogievskiy "count": 67108864, 1603af5bcd77SVladimir Sementsov-Ogievskiy "granularity": 65536, 1604af5bcd77SVladimir Sementsov-Ogievskiy "persistent": false, 1605af5bcd77SVladimir Sementsov-Ogievskiy "recording": false 1606af5bcd77SVladimir Sementsov-Ogievskiy }, 1607af5bcd77SVladimir Sementsov-Ogievskiy { 1608af5bcd77SVladimir Sementsov-Ogievskiy "busy": false, 1609af5bcd77SVladimir Sementsov-Ogievskiy "count": 458752, 1610af5bcd77SVladimir Sementsov-Ogievskiy "granularity": 65536, 1611af5bcd77SVladimir Sementsov-Ogievskiy "persistent": false, 1612af5bcd77SVladimir Sementsov-Ogievskiy "recording": false 1613*006e845bSVladimir Sementsov-Ogievskiy }, 1614dfdc48d5SJohn Snow { 1615dfdc48d5SJohn Snow "busy": false, 1616dfdc48d5SJohn Snow "count": 0, 1617dfdc48d5SJohn Snow "granularity": 65536, 1618dfdc48d5SJohn Snow "persistent": false, 161981cbfd50SDaniel P. Berrangé "recording": false 1620*006e845bSVladimir Sementsov-Ogievskiy } 1621*006e845bSVladimir Sementsov-Ogievskiy ], 1622*006e845bSVladimir Sementsov-Ogievskiy "drive0": [ 1623dfdc48d5SJohn Snow { 1624dfdc48d5SJohn Snow "busy": false, 1625dfdc48d5SJohn Snow "count": 458752, 1626dfdc48d5SJohn Snow "granularity": 65536, 1627dfdc48d5SJohn Snow "persistent": false, 162881cbfd50SDaniel P. Berrangé "recording": true 1629dfdc48d5SJohn Snow }, 1630dfdc48d5SJohn Snow { 1631dfdc48d5SJohn Snow "busy": true, 1632dfdc48d5SJohn Snow "count": 393216, 1633dfdc48d5SJohn Snow "granularity": 65536, 1634dfdc48d5SJohn Snow "name": "bitmap0", 1635dfdc48d5SJohn Snow "persistent": false, 163681cbfd50SDaniel P. Berrangé "recording": true 1637dfdc48d5SJohn Snow } 1638dfdc48d5SJohn Snow ] 1639dfdc48d5SJohn Snow } 1640dfdc48d5SJohn Snow} 1641dfdc48d5SJohn Snow 1642dfdc48d5SJohn Snow= Checking Bitmap bitmap0 = 1643dfdc48d5SJohn Snowexpecting 6 dirty sectors; have 6. OK! 1644dfdc48d5SJohn Snow 1645dfdc48d5SJohn Snow= Checking Bitmap (anonymous) = 1646dfdc48d5SJohn Snowexpecting 7 dirty sectors; have 7. OK! 1647dfdc48d5SJohn Snow 16480af2a09cSJohn Snow{"execute": "job-cancel", "arguments": {"id": "backup_1"}} 1649dfdc48d5SJohn Snow{"return": {}} 16500af2a09cSJohn Snow{"data": {"id": "backup_1", "type": "backup"}, "event": "BLOCK_JOB_PENDING", "timestamp": {"microseconds": "USECS", "seconds": "SECS"}} 16510fff1f13SJohn Snow{"data": {"device": "backup_1", "len": 393216, "offset": 393216, "speed": 0, "type": "backup"}, "event": "BLOCK_JOB_CANCELLED", "timestamp": {"microseconds": "USECS", "seconds": "SECS"}} 1652dfdc48d5SJohn Snow{ 1653dfdc48d5SJohn Snow "bitmaps": { 16545c4343b8SVladimir Sementsov-Ogievskiy "drive0": [ 1655dfdc48d5SJohn Snow { 1656dfdc48d5SJohn Snow "busy": false, 1657dfdc48d5SJohn Snow "count": 458752, 1658dfdc48d5SJohn Snow "granularity": 65536, 1659dfdc48d5SJohn Snow "name": "bitmap0", 1660dfdc48d5SJohn Snow "persistent": false, 166181cbfd50SDaniel P. Berrangé "recording": true 1662dfdc48d5SJohn Snow } 1663dfdc48d5SJohn Snow ] 1664dfdc48d5SJohn Snow } 1665dfdc48d5SJohn Snow} 1666dfdc48d5SJohn Snow 1667dfdc48d5SJohn Snow= Checking Bitmap bitmap0 = 1668dfdc48d5SJohn Snowexpecting 7 dirty sectors; have 7. OK! 1669dfdc48d5SJohn Snow 1670dfdc48d5SJohn Snow--- Write #3 --- 1671dfdc48d5SJohn Snow 1672dfdc48d5SJohn Snowwrite -P0xaa 0x0010000 0x30000 1673dfdc48d5SJohn Snow{"return": ""} 1674dfdc48d5SJohn Snowwrite -P0xbb 0x00d8000 0x10000 1675dfdc48d5SJohn Snow{"return": ""} 1676dfdc48d5SJohn Snowwrite -P0xcc 0x2028000 0x10000 1677dfdc48d5SJohn Snow{"return": ""} 1678dfdc48d5SJohn Snowwrite -P0xdd 0x3fc0000 0x10000 1679dfdc48d5SJohn Snow{"return": ""} 1680dfdc48d5SJohn Snow{ 1681dfdc48d5SJohn Snow "bitmaps": { 16825c4343b8SVladimir Sementsov-Ogievskiy "drive0": [ 1683dfdc48d5SJohn Snow { 1684dfdc48d5SJohn Snow "busy": false, 1685dfdc48d5SJohn Snow "count": 786432, 1686dfdc48d5SJohn Snow "granularity": 65536, 1687dfdc48d5SJohn Snow "name": "bitmap0", 1688dfdc48d5SJohn Snow "persistent": false, 168981cbfd50SDaniel P. Berrangé "recording": true 1690dfdc48d5SJohn Snow } 1691dfdc48d5SJohn Snow ] 1692dfdc48d5SJohn Snow } 1693dfdc48d5SJohn Snow} 1694dfdc48d5SJohn Snow 1695dfdc48d5SJohn Snow= Checking Bitmap bitmap0 = 1696dfdc48d5SJohn Snowexpecting 12 dirty sectors; have 12. OK! 1697dfdc48d5SJohn Snow 1698dfdc48d5SJohn Snow--- Reference Backup #2 --- 1699dfdc48d5SJohn Snow 1700dfdc48d5SJohn Snow{} 1701dfdc48d5SJohn Snow{"execute": "job-dismiss", "arguments": {"id": "bdc-file-job"}} 1702dfdc48d5SJohn Snow{"return": {}} 1703dfdc48d5SJohn Snow{} 1704dfdc48d5SJohn Snow{} 1705dfdc48d5SJohn Snow{"execute": "job-dismiss", "arguments": {"id": "bdc-fmt-job"}} 1706dfdc48d5SJohn Snow{"return": {}} 1707dfdc48d5SJohn Snow{} 17082d0f32e3SVladimir Sementsov-Ogievskiy{"execute": "blockdev-backup", "arguments": {"device": "drive0", "filter-node-name": "backup-top", "job-id": "ref_backup_2", "sync": "full", "target": "ref_target_2", "x-perf": {"max-workers": 1}}} 1709dfdc48d5SJohn Snow{"return": {}} 1710dfdc48d5SJohn Snow{"data": {"device": "ref_backup_2", "len": 67108864, "offset": 67108864, "speed": 0, "type": "backup"}, "event": "BLOCK_JOB_COMPLETED", "timestamp": {"microseconds": "USECS", "seconds": "SECS"}} 1711dfdc48d5SJohn Snow 17120af2a09cSJohn Snow--- Test Backup #2 --- 1713dfdc48d5SJohn Snow 1714dfdc48d5SJohn Snow{} 1715dfdc48d5SJohn Snow{"execute": "job-dismiss", "arguments": {"id": "bdc-file-job"}} 1716dfdc48d5SJohn Snow{"return": {}} 1717dfdc48d5SJohn Snow{} 1718dfdc48d5SJohn Snow{} 1719dfdc48d5SJohn Snow{"execute": "job-dismiss", "arguments": {"id": "bdc-fmt-job"}} 1720dfdc48d5SJohn Snow{"return": {}} 1721dfdc48d5SJohn Snow{} 17222d0f32e3SVladimir Sementsov-Ogievskiy{"execute": "blockdev-backup", "arguments": {"auto-finalize": false, "bitmap": "bitmap0", "bitmap-mode": "always", "device": "drive0", "filter-node-name": "backup-top", "job-id": "backup_2", "sync": "bitmap", "target": "backup_target_2", "x-perf": {"max-workers": 1}}} 1723dfdc48d5SJohn Snow{"return": {}} 17240af2a09cSJohn Snow{"execute": "job-finalize", "arguments": {"id": "backup_2"}} 1725dfdc48d5SJohn Snow{"return": {}} 17260af2a09cSJohn Snow{"data": {"id": "backup_2", "type": "backup"}, "event": "BLOCK_JOB_PENDING", "timestamp": {"microseconds": "USECS", "seconds": "SECS"}} 17270fff1f13SJohn Snow{"data": {"device": "backup_2", "len": 786432, "offset": 786432, "speed": 0, "type": "backup"}, "event": "BLOCK_JOB_COMPLETED", "timestamp": {"microseconds": "USECS", "seconds": "SECS"}} 1728dfdc48d5SJohn Snow{ 1729dfdc48d5SJohn Snow "bitmaps": { 17305c4343b8SVladimir Sementsov-Ogievskiy "drive0": [ 1731dfdc48d5SJohn Snow { 1732dfdc48d5SJohn Snow "busy": false, 1733dfdc48d5SJohn Snow "count": 0, 1734dfdc48d5SJohn Snow "granularity": 65536, 1735dfdc48d5SJohn Snow "name": "bitmap0", 1736dfdc48d5SJohn Snow "persistent": false, 173781cbfd50SDaniel P. Berrangé "recording": true 1738dfdc48d5SJohn Snow } 1739dfdc48d5SJohn Snow ] 1740dfdc48d5SJohn Snow } 1741dfdc48d5SJohn Snow} 1742dfdc48d5SJohn Snow 1743dfdc48d5SJohn Snow= Checking Bitmap bitmap0 = 1744dfdc48d5SJohn Snowexpecting 0 dirty sectors; have 0. OK! 1745dfdc48d5SJohn Snow 1746dfdc48d5SJohn Snow--- Cleanup --- 1747dfdc48d5SJohn Snow 1748dfdc48d5SJohn Snow{"execute": "block-dirty-bitmap-remove", "arguments": {"name": "bitmap0", "node": "drive0"}} 1749dfdc48d5SJohn Snow{"return": {}} 1750dfdc48d5SJohn Snow{ 17515c4343b8SVladimir Sementsov-Ogievskiy "bitmaps": {} 1752dfdc48d5SJohn Snow} 1753dfdc48d5SJohn Snow 1754dfdc48d5SJohn Snow--- Verification --- 1755dfdc48d5SJohn Snow 1756dfdc48d5SJohn Snowqemu_img compare "TEST_DIR/PID-bsync1" "TEST_DIR/PID-fbackup1" ==> Identical, OK! 1757dfdc48d5SJohn Snowqemu_img compare "TEST_DIR/PID-bsync2" "TEST_DIR/PID-fbackup2" ==> Identical, OK! 1758dfdc48d5SJohn Snowqemu_img compare "TEST_DIR/PID-img" "TEST_DIR/PID-fbackup2" ==> Identical, OK! 1759dfdc48d5SJohn Snow 1760dfdc48d5SJohn Snow 17610af2a09cSJohn Snow=== Mode bitmap; Bitmap Sync always with intermediate failure === 1762dfdc48d5SJohn Snow 1763dfdc48d5SJohn Snow--- Preparing image & VM --- 1764dfdc48d5SJohn Snow 1765dfdc48d5SJohn Snow{"execute": "blockdev-add", "arguments": {"driver": "qcow2", "file": {"driver": "blkdebug", "image": {"driver": "file", "filename": "TEST_DIR/PID-img"}, "inject-error": [{"errno": 5, "event": "read_aio", "immediately": false, "once": true, "state": 3}], "set-state": [{"event": "flush_to_disk", "new-state": 2, "state": 1}, {"event": "read_aio", "new-state": 3, "state": 2}]}, "node-name": "drive0"}} 1766dfdc48d5SJohn Snow{"return": {}} 1767dfdc48d5SJohn Snow 1768dfdc48d5SJohn Snow--- Write #0 --- 1769dfdc48d5SJohn Snow 1770dfdc48d5SJohn Snowwrite -P0x49 0x0000000 0x10000 1771dfdc48d5SJohn Snow{"return": ""} 1772dfdc48d5SJohn Snowwrite -P0x6c 0x0100000 0x10000 1773dfdc48d5SJohn Snow{"return": ""} 1774dfdc48d5SJohn Snowwrite -P0x6f 0x2000000 0x10000 1775dfdc48d5SJohn Snow{"return": ""} 1776dfdc48d5SJohn Snowwrite -P0x76 0x3ff0000 0x10000 1777dfdc48d5SJohn Snow{"return": ""} 1778dfdc48d5SJohn Snow{ 17795c4343b8SVladimir Sementsov-Ogievskiy "bitmaps": {} 1780dfdc48d5SJohn Snow} 1781dfdc48d5SJohn Snow 1782dfdc48d5SJohn Snow--- Reference Backup #0 --- 1783dfdc48d5SJohn Snow 1784dfdc48d5SJohn Snow{} 1785dfdc48d5SJohn Snow{"execute": "job-dismiss", "arguments": {"id": "bdc-file-job"}} 1786dfdc48d5SJohn Snow{"return": {}} 1787dfdc48d5SJohn Snow{} 1788dfdc48d5SJohn Snow{} 1789dfdc48d5SJohn Snow{"execute": "job-dismiss", "arguments": {"id": "bdc-fmt-job"}} 1790dfdc48d5SJohn Snow{"return": {}} 1791dfdc48d5SJohn Snow{} 17922d0f32e3SVladimir Sementsov-Ogievskiy{"execute": "blockdev-backup", "arguments": {"device": "drive0", "filter-node-name": "backup-top", "job-id": "ref_backup_0", "sync": "full", "target": "ref_target_0", "x-perf": {"max-workers": 1}}} 1793dfdc48d5SJohn Snow{"return": {}} 1794dfdc48d5SJohn Snow{"data": {"device": "ref_backup_0", "len": 67108864, "offset": 67108864, "speed": 0, "type": "backup"}, "event": "BLOCK_JOB_COMPLETED", "timestamp": {"microseconds": "USECS", "seconds": "SECS"}} 1795dfdc48d5SJohn Snow 1796dfdc48d5SJohn Snow--- Add Bitmap --- 1797dfdc48d5SJohn Snow 1798dfdc48d5SJohn Snow{"execute": "block-dirty-bitmap-add", "arguments": {"granularity": 65536, "name": "bitmap0", "node": "drive0"}} 1799dfdc48d5SJohn Snow{"return": {}} 1800dfdc48d5SJohn Snow 1801dfdc48d5SJohn Snow--- Write #1 --- 1802dfdc48d5SJohn Snow 1803dfdc48d5SJohn Snowwrite -P0x65 0x0000000 0x10000 1804dfdc48d5SJohn Snow{"return": ""} 1805dfdc48d5SJohn Snowwrite -P0x77 0x00f8000 0x10000 1806dfdc48d5SJohn Snow{"return": ""} 1807dfdc48d5SJohn Snowwrite -P0x72 0x2008000 0x10000 1808dfdc48d5SJohn Snow{"return": ""} 1809dfdc48d5SJohn Snowwrite -P0x69 0x3fe0000 0x10000 1810dfdc48d5SJohn Snow{"return": ""} 1811dfdc48d5SJohn Snow{ 1812dfdc48d5SJohn Snow "bitmaps": { 18135c4343b8SVladimir Sementsov-Ogievskiy "drive0": [ 1814dfdc48d5SJohn Snow { 1815dfdc48d5SJohn Snow "busy": false, 1816dfdc48d5SJohn Snow "count": 393216, 1817dfdc48d5SJohn Snow "granularity": 65536, 1818dfdc48d5SJohn Snow "name": "bitmap0", 1819dfdc48d5SJohn Snow "persistent": false, 182081cbfd50SDaniel P. Berrangé "recording": true 1821dfdc48d5SJohn Snow } 1822dfdc48d5SJohn Snow ] 1823dfdc48d5SJohn Snow } 1824dfdc48d5SJohn Snow} 1825dfdc48d5SJohn Snow 1826dfdc48d5SJohn Snow= Checking Bitmap bitmap0 = 1827dfdc48d5SJohn Snowexpecting 6 dirty sectors; have 6. OK! 1828dfdc48d5SJohn Snow 1829dfdc48d5SJohn Snow--- Reference Backup #1 --- 1830dfdc48d5SJohn Snow 1831dfdc48d5SJohn Snow{} 1832dfdc48d5SJohn Snow{"execute": "job-dismiss", "arguments": {"id": "bdc-file-job"}} 1833dfdc48d5SJohn Snow{"return": {}} 1834dfdc48d5SJohn Snow{} 1835dfdc48d5SJohn Snow{} 1836dfdc48d5SJohn Snow{"execute": "job-dismiss", "arguments": {"id": "bdc-fmt-job"}} 1837dfdc48d5SJohn Snow{"return": {}} 1838dfdc48d5SJohn Snow{} 18392d0f32e3SVladimir Sementsov-Ogievskiy{"execute": "blockdev-backup", "arguments": {"device": "drive0", "filter-node-name": "backup-top", "job-id": "ref_backup_1", "sync": "full", "target": "ref_target_1", "x-perf": {"max-workers": 1}}} 1840dfdc48d5SJohn Snow{"return": {}} 1841dfdc48d5SJohn Snow{"data": {"device": "ref_backup_1", "len": 67108864, "offset": 67108864, "speed": 0, "type": "backup"}, "event": "BLOCK_JOB_COMPLETED", "timestamp": {"microseconds": "USECS", "seconds": "SECS"}} 1842dfdc48d5SJohn Snow 1843dfdc48d5SJohn Snow{"return": ""} 1844dfdc48d5SJohn Snow 18450af2a09cSJohn Snow--- Test Backup #1 --- 1846dfdc48d5SJohn Snow 1847dfdc48d5SJohn Snow{} 1848dfdc48d5SJohn Snow{"execute": "job-dismiss", "arguments": {"id": "bdc-file-job"}} 1849dfdc48d5SJohn Snow{"return": {}} 1850dfdc48d5SJohn Snow{} 1851dfdc48d5SJohn Snow{} 1852dfdc48d5SJohn Snow{"execute": "job-dismiss", "arguments": {"id": "bdc-fmt-job"}} 1853dfdc48d5SJohn Snow{"return": {}} 1854dfdc48d5SJohn Snow{} 18552d0f32e3SVladimir Sementsov-Ogievskiy{"execute": "blockdev-backup", "arguments": {"auto-finalize": false, "bitmap": "bitmap0", "bitmap-mode": "always", "device": "drive0", "filter-node-name": "backup-top", "job-id": "backup_1", "sync": "bitmap", "target": "backup_target_1", "x-perf": {"max-workers": 1}}} 1856dfdc48d5SJohn Snow{"return": {}} 18570af2a09cSJohn Snow{"data": {"action": "report", "device": "backup_1", "operation": "read"}, "event": "BLOCK_JOB_ERROR", "timestamp": {"microseconds": "USECS", "seconds": "SECS"}} 18580fff1f13SJohn Snow{"data": {"device": "backup_1", "error": "Input/output error", "len": 393216, "offset": 65536, "speed": 0, "type": "backup"}, "event": "BLOCK_JOB_COMPLETED", "timestamp": {"microseconds": "USECS", "seconds": "SECS"}} 1859dfdc48d5SJohn Snow{ 1860dfdc48d5SJohn Snow "bitmaps": { 18615c4343b8SVladimir Sementsov-Ogievskiy "drive0": [ 1862dfdc48d5SJohn Snow { 1863dfdc48d5SJohn Snow "busy": false, 1864dfdc48d5SJohn Snow "count": 327680, 1865dfdc48d5SJohn Snow "granularity": 65536, 1866dfdc48d5SJohn Snow "name": "bitmap0", 1867dfdc48d5SJohn Snow "persistent": false, 186881cbfd50SDaniel P. Berrangé "recording": true 1869dfdc48d5SJohn Snow } 1870dfdc48d5SJohn Snow ] 1871dfdc48d5SJohn Snow } 1872dfdc48d5SJohn Snow} 1873dfdc48d5SJohn Snow 1874dfdc48d5SJohn Snow= Checking Bitmap bitmap0 = 1875dfdc48d5SJohn Snowexpecting 5 dirty sectors; have 5. OK! 1876dfdc48d5SJohn Snow 1877dfdc48d5SJohn Snow--- Write #3 --- 1878dfdc48d5SJohn Snow 1879dfdc48d5SJohn Snowwrite -P0xaa 0x0010000 0x30000 1880dfdc48d5SJohn Snow{"return": ""} 1881dfdc48d5SJohn Snowwrite -P0xbb 0x00d8000 0x10000 1882dfdc48d5SJohn Snow{"return": ""} 1883dfdc48d5SJohn Snowwrite -P0xcc 0x2028000 0x10000 1884dfdc48d5SJohn Snow{"return": ""} 1885dfdc48d5SJohn Snowwrite -P0xdd 0x3fc0000 0x10000 1886dfdc48d5SJohn Snow{"return": ""} 1887dfdc48d5SJohn Snow{ 1888dfdc48d5SJohn Snow "bitmaps": { 18895c4343b8SVladimir Sementsov-Ogievskiy "drive0": [ 1890dfdc48d5SJohn Snow { 1891dfdc48d5SJohn Snow "busy": false, 1892dfdc48d5SJohn Snow "count": 851968, 1893dfdc48d5SJohn Snow "granularity": 65536, 1894dfdc48d5SJohn Snow "name": "bitmap0", 1895dfdc48d5SJohn Snow "persistent": false, 189681cbfd50SDaniel P. Berrangé "recording": true 1897dfdc48d5SJohn Snow } 1898dfdc48d5SJohn Snow ] 1899dfdc48d5SJohn Snow } 1900dfdc48d5SJohn Snow} 1901dfdc48d5SJohn Snow 1902dfdc48d5SJohn Snow= Checking Bitmap bitmap0 = 1903dfdc48d5SJohn Snowexpecting 13 dirty sectors; have 13. OK! 1904dfdc48d5SJohn Snow 1905dfdc48d5SJohn Snow--- Reference Backup #2 --- 1906dfdc48d5SJohn Snow 1907dfdc48d5SJohn Snow{} 1908dfdc48d5SJohn Snow{"execute": "job-dismiss", "arguments": {"id": "bdc-file-job"}} 1909dfdc48d5SJohn Snow{"return": {}} 1910dfdc48d5SJohn Snow{} 1911dfdc48d5SJohn Snow{} 1912dfdc48d5SJohn Snow{"execute": "job-dismiss", "arguments": {"id": "bdc-fmt-job"}} 1913dfdc48d5SJohn Snow{"return": {}} 1914dfdc48d5SJohn Snow{} 19152d0f32e3SVladimir Sementsov-Ogievskiy{"execute": "blockdev-backup", "arguments": {"device": "drive0", "filter-node-name": "backup-top", "job-id": "ref_backup_2", "sync": "full", "target": "ref_target_2", "x-perf": {"max-workers": 1}}} 1916dfdc48d5SJohn Snow{"return": {}} 1917dfdc48d5SJohn Snow{"data": {"device": "ref_backup_2", "len": 67108864, "offset": 67108864, "speed": 0, "type": "backup"}, "event": "BLOCK_JOB_COMPLETED", "timestamp": {"microseconds": "USECS", "seconds": "SECS"}} 1918dfdc48d5SJohn Snow 19190af2a09cSJohn Snow--- Test Backup #2 --- 1920dfdc48d5SJohn Snow 1921dfdc48d5SJohn Snow{} 1922dfdc48d5SJohn Snow{"execute": "job-dismiss", "arguments": {"id": "bdc-file-job"}} 1923dfdc48d5SJohn Snow{"return": {}} 1924dfdc48d5SJohn Snow{} 1925dfdc48d5SJohn Snow{} 1926dfdc48d5SJohn Snow{"execute": "job-dismiss", "arguments": {"id": "bdc-fmt-job"}} 1927dfdc48d5SJohn Snow{"return": {}} 1928dfdc48d5SJohn Snow{} 19292d0f32e3SVladimir Sementsov-Ogievskiy{"execute": "blockdev-backup", "arguments": {"auto-finalize": false, "bitmap": "bitmap0", "bitmap-mode": "always", "device": "drive0", "filter-node-name": "backup-top", "job-id": "backup_2", "sync": "bitmap", "target": "backup_target_2", "x-perf": {"max-workers": 1}}} 1930dfdc48d5SJohn Snow{"return": {}} 19310af2a09cSJohn Snow{"execute": "job-finalize", "arguments": {"id": "backup_2"}} 1932dfdc48d5SJohn Snow{"return": {}} 19330af2a09cSJohn Snow{"data": {"id": "backup_2", "type": "backup"}, "event": "BLOCK_JOB_PENDING", "timestamp": {"microseconds": "USECS", "seconds": "SECS"}} 19340fff1f13SJohn Snow{"data": {"device": "backup_2", "len": 851968, "offset": 851968, "speed": 0, "type": "backup"}, "event": "BLOCK_JOB_COMPLETED", "timestamp": {"microseconds": "USECS", "seconds": "SECS"}} 1935dfdc48d5SJohn Snow{ 1936dfdc48d5SJohn Snow "bitmaps": { 19375c4343b8SVladimir Sementsov-Ogievskiy "drive0": [ 1938dfdc48d5SJohn Snow { 1939dfdc48d5SJohn Snow "busy": false, 1940dfdc48d5SJohn Snow "count": 0, 1941dfdc48d5SJohn Snow "granularity": 65536, 1942dfdc48d5SJohn Snow "name": "bitmap0", 1943dfdc48d5SJohn Snow "persistent": false, 194481cbfd50SDaniel P. Berrangé "recording": true 1945dfdc48d5SJohn Snow } 1946dfdc48d5SJohn Snow ] 1947dfdc48d5SJohn Snow } 1948dfdc48d5SJohn Snow} 1949dfdc48d5SJohn Snow 1950dfdc48d5SJohn Snow= Checking Bitmap bitmap0 = 1951dfdc48d5SJohn Snowexpecting 0 dirty sectors; have 0. OK! 1952dfdc48d5SJohn Snow 1953dfdc48d5SJohn Snow--- Cleanup --- 1954dfdc48d5SJohn Snow 1955dfdc48d5SJohn Snow{"execute": "block-dirty-bitmap-remove", "arguments": {"name": "bitmap0", "node": "drive0"}} 1956dfdc48d5SJohn Snow{"return": {}} 1957dfdc48d5SJohn Snow{ 19585c4343b8SVladimir Sementsov-Ogievskiy "bitmaps": {} 1959dfdc48d5SJohn Snow} 1960dfdc48d5SJohn Snow 1961dfdc48d5SJohn Snow--- Verification --- 1962dfdc48d5SJohn Snow 1963dfdc48d5SJohn Snowqemu_img compare "TEST_DIR/PID-bsync1" "TEST_DIR/PID-fbackup1" ==> Mismatch, OK! 1964dfdc48d5SJohn Snowqemu_img compare "TEST_DIR/PID-bsync2" "TEST_DIR/PID-fbackup2" ==> Identical, OK! 1965dfdc48d5SJohn Snowqemu_img compare "TEST_DIR/PID-img" "TEST_DIR/PID-fbackup2" ==> Identical, OK! 1966dfdc48d5SJohn Snow 1967dfdc48d5SJohn Snow 19680af2a09cSJohn Snow=== Mode bitmap; Bitmap Sync always without failure === 1969dfdc48d5SJohn Snow 1970dfdc48d5SJohn Snow--- Preparing image & VM --- 1971dfdc48d5SJohn Snow 1972dfdc48d5SJohn Snow{"execute": "blockdev-add", "arguments": {"driver": "qcow2", "file": {"driver": "file", "filename": "TEST_DIR/PID-img"}, "node-name": "drive0"}} 1973dfdc48d5SJohn Snow{"return": {}} 1974dfdc48d5SJohn Snow 1975dfdc48d5SJohn Snow--- Write #0 --- 1976dfdc48d5SJohn Snow 1977dfdc48d5SJohn Snowwrite -P0x49 0x0000000 0x10000 1978dfdc48d5SJohn Snow{"return": ""} 1979dfdc48d5SJohn Snowwrite -P0x6c 0x0100000 0x10000 1980dfdc48d5SJohn Snow{"return": ""} 1981dfdc48d5SJohn Snowwrite -P0x6f 0x2000000 0x10000 1982dfdc48d5SJohn Snow{"return": ""} 1983dfdc48d5SJohn Snowwrite -P0x76 0x3ff0000 0x10000 1984dfdc48d5SJohn Snow{"return": ""} 1985dfdc48d5SJohn Snow{ 19865c4343b8SVladimir Sementsov-Ogievskiy "bitmaps": {} 1987dfdc48d5SJohn Snow} 1988dfdc48d5SJohn Snow 1989dfdc48d5SJohn Snow--- Reference Backup #0 --- 1990dfdc48d5SJohn Snow 1991dfdc48d5SJohn Snow{} 1992dfdc48d5SJohn Snow{"execute": "job-dismiss", "arguments": {"id": "bdc-file-job"}} 1993dfdc48d5SJohn Snow{"return": {}} 1994dfdc48d5SJohn Snow{} 1995dfdc48d5SJohn Snow{} 1996dfdc48d5SJohn Snow{"execute": "job-dismiss", "arguments": {"id": "bdc-fmt-job"}} 1997dfdc48d5SJohn Snow{"return": {}} 1998dfdc48d5SJohn Snow{} 19992d0f32e3SVladimir Sementsov-Ogievskiy{"execute": "blockdev-backup", "arguments": {"device": "drive0", "filter-node-name": "backup-top", "job-id": "ref_backup_0", "sync": "full", "target": "ref_target_0", "x-perf": {"max-workers": 1}}} 2000dfdc48d5SJohn Snow{"return": {}} 2001dfdc48d5SJohn Snow{"data": {"device": "ref_backup_0", "len": 67108864, "offset": 67108864, "speed": 0, "type": "backup"}, "event": "BLOCK_JOB_COMPLETED", "timestamp": {"microseconds": "USECS", "seconds": "SECS"}} 2002dfdc48d5SJohn Snow 2003dfdc48d5SJohn Snow--- Add Bitmap --- 2004dfdc48d5SJohn Snow 2005dfdc48d5SJohn Snow{"execute": "block-dirty-bitmap-add", "arguments": {"granularity": 65536, "name": "bitmap0", "node": "drive0"}} 2006dfdc48d5SJohn Snow{"return": {}} 2007dfdc48d5SJohn Snow 2008dfdc48d5SJohn Snow--- Write #1 --- 2009dfdc48d5SJohn Snow 2010dfdc48d5SJohn Snowwrite -P0x65 0x0000000 0x10000 2011dfdc48d5SJohn Snow{"return": ""} 2012dfdc48d5SJohn Snowwrite -P0x77 0x00f8000 0x10000 2013dfdc48d5SJohn Snow{"return": ""} 2014dfdc48d5SJohn Snowwrite -P0x72 0x2008000 0x10000 2015dfdc48d5SJohn Snow{"return": ""} 2016dfdc48d5SJohn Snowwrite -P0x69 0x3fe0000 0x10000 2017dfdc48d5SJohn Snow{"return": ""} 2018dfdc48d5SJohn Snow{ 2019dfdc48d5SJohn Snow "bitmaps": { 20205c4343b8SVladimir Sementsov-Ogievskiy "drive0": [ 2021dfdc48d5SJohn Snow { 2022dfdc48d5SJohn Snow "busy": false, 2023dfdc48d5SJohn Snow "count": 393216, 2024dfdc48d5SJohn Snow "granularity": 65536, 2025dfdc48d5SJohn Snow "name": "bitmap0", 2026dfdc48d5SJohn Snow "persistent": false, 202781cbfd50SDaniel P. Berrangé "recording": true 2028dfdc48d5SJohn Snow } 2029dfdc48d5SJohn Snow ] 2030dfdc48d5SJohn Snow } 2031dfdc48d5SJohn Snow} 2032dfdc48d5SJohn Snow 2033dfdc48d5SJohn Snow= Checking Bitmap bitmap0 = 2034dfdc48d5SJohn Snowexpecting 6 dirty sectors; have 6. OK! 2035dfdc48d5SJohn Snow 2036dfdc48d5SJohn Snow--- Reference Backup #1 --- 2037dfdc48d5SJohn Snow 2038dfdc48d5SJohn Snow{} 2039dfdc48d5SJohn Snow{"execute": "job-dismiss", "arguments": {"id": "bdc-file-job"}} 2040dfdc48d5SJohn Snow{"return": {}} 2041dfdc48d5SJohn Snow{} 2042dfdc48d5SJohn Snow{} 2043dfdc48d5SJohn Snow{"execute": "job-dismiss", "arguments": {"id": "bdc-fmt-job"}} 2044dfdc48d5SJohn Snow{"return": {}} 2045dfdc48d5SJohn Snow{} 20462d0f32e3SVladimir Sementsov-Ogievskiy{"execute": "blockdev-backup", "arguments": {"device": "drive0", "filter-node-name": "backup-top", "job-id": "ref_backup_1", "sync": "full", "target": "ref_target_1", "x-perf": {"max-workers": 1}}} 2047dfdc48d5SJohn Snow{"return": {}} 2048dfdc48d5SJohn Snow{"data": {"device": "ref_backup_1", "len": 67108864, "offset": 67108864, "speed": 0, "type": "backup"}, "event": "BLOCK_JOB_COMPLETED", "timestamp": {"microseconds": "USECS", "seconds": "SECS"}} 2049dfdc48d5SJohn Snow 20500af2a09cSJohn Snow--- Test Backup #1 --- 2051dfdc48d5SJohn Snow 2052dfdc48d5SJohn Snow{} 2053dfdc48d5SJohn Snow{"execute": "job-dismiss", "arguments": {"id": "bdc-file-job"}} 2054dfdc48d5SJohn Snow{"return": {}} 2055dfdc48d5SJohn Snow{} 2056dfdc48d5SJohn Snow{} 2057dfdc48d5SJohn Snow{"execute": "job-dismiss", "arguments": {"id": "bdc-fmt-job"}} 2058dfdc48d5SJohn Snow{"return": {}} 2059dfdc48d5SJohn Snow{} 20602d0f32e3SVladimir Sementsov-Ogievskiy{"execute": "blockdev-backup", "arguments": {"auto-finalize": false, "bitmap": "bitmap0", "bitmap-mode": "always", "device": "drive0", "filter-node-name": "backup-top", "job-id": "backup_1", "sync": "bitmap", "target": "backup_target_1", "x-perf": {"max-workers": 1}}} 2061dfdc48d5SJohn Snow{"return": {}} 2062dfdc48d5SJohn Snow 2063dfdc48d5SJohn Snow--- Write #2 --- 2064dfdc48d5SJohn Snow 2065dfdc48d5SJohn Snowwrite -P0x74 0x0010000 0x10000 2066dfdc48d5SJohn Snow{"return": ""} 2067dfdc48d5SJohn Snowwrite -P0x69 0x00e8000 0x10000 2068dfdc48d5SJohn Snow{"return": ""} 2069dfdc48d5SJohn Snowwrite -P0x6e 0x2018000 0x10000 2070dfdc48d5SJohn Snow{"return": ""} 2071dfdc48d5SJohn Snowwrite -P0x67 0x3fe0000 0x20000 2072dfdc48d5SJohn Snow{"return": ""} 2073dfdc48d5SJohn Snow{ 2074dfdc48d5SJohn Snow "bitmaps": { 2075af5bcd77SVladimir Sementsov-Ogievskiy "backup-top": [ 2076af5bcd77SVladimir Sementsov-Ogievskiy { 2077af5bcd77SVladimir Sementsov-Ogievskiy "busy": false, 2078af5bcd77SVladimir Sementsov-Ogievskiy "count": 67108864, 2079af5bcd77SVladimir Sementsov-Ogievskiy "granularity": 65536, 2080af5bcd77SVladimir Sementsov-Ogievskiy "persistent": false, 2081af5bcd77SVladimir Sementsov-Ogievskiy "recording": false 2082af5bcd77SVladimir Sementsov-Ogievskiy }, 2083af5bcd77SVladimir Sementsov-Ogievskiy { 2084af5bcd77SVladimir Sementsov-Ogievskiy "busy": false, 2085af5bcd77SVladimir Sementsov-Ogievskiy "count": 458752, 2086af5bcd77SVladimir Sementsov-Ogievskiy "granularity": 65536, 2087af5bcd77SVladimir Sementsov-Ogievskiy "persistent": false, 2088af5bcd77SVladimir Sementsov-Ogievskiy "recording": false 2089*006e845bSVladimir Sementsov-Ogievskiy }, 2090dfdc48d5SJohn Snow { 2091dfdc48d5SJohn Snow "busy": false, 2092dfdc48d5SJohn Snow "count": 0, 2093dfdc48d5SJohn Snow "granularity": 65536, 2094dfdc48d5SJohn Snow "persistent": false, 209581cbfd50SDaniel P. Berrangé "recording": false 2096*006e845bSVladimir Sementsov-Ogievskiy } 2097*006e845bSVladimir Sementsov-Ogievskiy ], 2098*006e845bSVladimir Sementsov-Ogievskiy "drive0": [ 2099dfdc48d5SJohn Snow { 2100dfdc48d5SJohn Snow "busy": false, 2101dfdc48d5SJohn Snow "count": 458752, 2102dfdc48d5SJohn Snow "granularity": 65536, 2103dfdc48d5SJohn Snow "persistent": false, 210481cbfd50SDaniel P. Berrangé "recording": true 2105dfdc48d5SJohn Snow }, 2106dfdc48d5SJohn Snow { 2107dfdc48d5SJohn Snow "busy": true, 2108dfdc48d5SJohn Snow "count": 393216, 2109dfdc48d5SJohn Snow "granularity": 65536, 2110dfdc48d5SJohn Snow "name": "bitmap0", 2111dfdc48d5SJohn Snow "persistent": false, 211281cbfd50SDaniel P. Berrangé "recording": true 2113dfdc48d5SJohn Snow } 2114dfdc48d5SJohn Snow ] 2115dfdc48d5SJohn Snow } 2116dfdc48d5SJohn Snow} 2117dfdc48d5SJohn Snow 2118dfdc48d5SJohn Snow= Checking Bitmap bitmap0 = 2119dfdc48d5SJohn Snowexpecting 6 dirty sectors; have 6. OK! 2120dfdc48d5SJohn Snow 2121dfdc48d5SJohn Snow= Checking Bitmap (anonymous) = 2122dfdc48d5SJohn Snowexpecting 7 dirty sectors; have 7. OK! 2123dfdc48d5SJohn Snow 21240af2a09cSJohn Snow{"execute": "job-finalize", "arguments": {"id": "backup_1"}} 2125dfdc48d5SJohn Snow{"return": {}} 21260af2a09cSJohn Snow{"data": {"id": "backup_1", "type": "backup"}, "event": "BLOCK_JOB_PENDING", "timestamp": {"microseconds": "USECS", "seconds": "SECS"}} 21270fff1f13SJohn Snow{"data": {"device": "backup_1", "len": 393216, "offset": 393216, "speed": 0, "type": "backup"}, "event": "BLOCK_JOB_COMPLETED", "timestamp": {"microseconds": "USECS", "seconds": "SECS"}} 2128dfdc48d5SJohn Snow{ 2129dfdc48d5SJohn Snow "bitmaps": { 21305c4343b8SVladimir Sementsov-Ogievskiy "drive0": [ 2131dfdc48d5SJohn Snow { 2132dfdc48d5SJohn Snow "busy": false, 2133dfdc48d5SJohn Snow "count": 458752, 2134dfdc48d5SJohn Snow "granularity": 65536, 2135dfdc48d5SJohn Snow "name": "bitmap0", 2136dfdc48d5SJohn Snow "persistent": false, 213781cbfd50SDaniel P. Berrangé "recording": true 2138dfdc48d5SJohn Snow } 2139dfdc48d5SJohn Snow ] 2140dfdc48d5SJohn Snow } 2141dfdc48d5SJohn Snow} 2142dfdc48d5SJohn Snow 2143dfdc48d5SJohn Snow= Checking Bitmap bitmap0 = 2144dfdc48d5SJohn Snowexpecting 7 dirty sectors; have 7. OK! 2145dfdc48d5SJohn Snow 2146dfdc48d5SJohn Snow--- Write #3 --- 2147dfdc48d5SJohn Snow 2148dfdc48d5SJohn Snowwrite -P0xaa 0x0010000 0x30000 2149dfdc48d5SJohn Snow{"return": ""} 2150dfdc48d5SJohn Snowwrite -P0xbb 0x00d8000 0x10000 2151dfdc48d5SJohn Snow{"return": ""} 2152dfdc48d5SJohn Snowwrite -P0xcc 0x2028000 0x10000 2153dfdc48d5SJohn Snow{"return": ""} 2154dfdc48d5SJohn Snowwrite -P0xdd 0x3fc0000 0x10000 2155dfdc48d5SJohn Snow{"return": ""} 2156dfdc48d5SJohn Snow{ 2157dfdc48d5SJohn Snow "bitmaps": { 21585c4343b8SVladimir Sementsov-Ogievskiy "drive0": [ 2159dfdc48d5SJohn Snow { 2160dfdc48d5SJohn Snow "busy": false, 2161dfdc48d5SJohn Snow "count": 786432, 2162dfdc48d5SJohn Snow "granularity": 65536, 2163dfdc48d5SJohn Snow "name": "bitmap0", 2164dfdc48d5SJohn Snow "persistent": false, 216581cbfd50SDaniel P. Berrangé "recording": true 2166dfdc48d5SJohn Snow } 2167dfdc48d5SJohn Snow ] 2168dfdc48d5SJohn Snow } 2169dfdc48d5SJohn Snow} 2170dfdc48d5SJohn Snow 2171dfdc48d5SJohn Snow= Checking Bitmap bitmap0 = 2172dfdc48d5SJohn Snowexpecting 12 dirty sectors; have 12. OK! 2173dfdc48d5SJohn Snow 2174dfdc48d5SJohn Snow--- Reference Backup #2 --- 2175dfdc48d5SJohn Snow 2176dfdc48d5SJohn Snow{} 2177dfdc48d5SJohn Snow{"execute": "job-dismiss", "arguments": {"id": "bdc-file-job"}} 2178dfdc48d5SJohn Snow{"return": {}} 2179dfdc48d5SJohn Snow{} 2180dfdc48d5SJohn Snow{} 2181dfdc48d5SJohn Snow{"execute": "job-dismiss", "arguments": {"id": "bdc-fmt-job"}} 2182dfdc48d5SJohn Snow{"return": {}} 2183dfdc48d5SJohn Snow{} 21842d0f32e3SVladimir Sementsov-Ogievskiy{"execute": "blockdev-backup", "arguments": {"device": "drive0", "filter-node-name": "backup-top", "job-id": "ref_backup_2", "sync": "full", "target": "ref_target_2", "x-perf": {"max-workers": 1}}} 2185dfdc48d5SJohn Snow{"return": {}} 2186dfdc48d5SJohn Snow{"data": {"device": "ref_backup_2", "len": 67108864, "offset": 67108864, "speed": 0, "type": "backup"}, "event": "BLOCK_JOB_COMPLETED", "timestamp": {"microseconds": "USECS", "seconds": "SECS"}} 2187dfdc48d5SJohn Snow 21880af2a09cSJohn Snow--- Test Backup #2 --- 2189dfdc48d5SJohn Snow 2190dfdc48d5SJohn Snow{} 2191dfdc48d5SJohn Snow{"execute": "job-dismiss", "arguments": {"id": "bdc-file-job"}} 2192dfdc48d5SJohn Snow{"return": {}} 2193dfdc48d5SJohn Snow{} 2194dfdc48d5SJohn Snow{} 2195dfdc48d5SJohn Snow{"execute": "job-dismiss", "arguments": {"id": "bdc-fmt-job"}} 2196dfdc48d5SJohn Snow{"return": {}} 2197dfdc48d5SJohn Snow{} 21982d0f32e3SVladimir Sementsov-Ogievskiy{"execute": "blockdev-backup", "arguments": {"auto-finalize": false, "bitmap": "bitmap0", "bitmap-mode": "always", "device": "drive0", "filter-node-name": "backup-top", "job-id": "backup_2", "sync": "bitmap", "target": "backup_target_2", "x-perf": {"max-workers": 1}}} 2199dfdc48d5SJohn Snow{"return": {}} 22000af2a09cSJohn Snow{"execute": "job-finalize", "arguments": {"id": "backup_2"}} 2201dfdc48d5SJohn Snow{"return": {}} 22020af2a09cSJohn Snow{"data": {"id": "backup_2", "type": "backup"}, "event": "BLOCK_JOB_PENDING", "timestamp": {"microseconds": "USECS", "seconds": "SECS"}} 22030fff1f13SJohn Snow{"data": {"device": "backup_2", "len": 786432, "offset": 786432, "speed": 0, "type": "backup"}, "event": "BLOCK_JOB_COMPLETED", "timestamp": {"microseconds": "USECS", "seconds": "SECS"}} 2204dfdc48d5SJohn Snow{ 2205dfdc48d5SJohn Snow "bitmaps": { 22065c4343b8SVladimir Sementsov-Ogievskiy "drive0": [ 2207dfdc48d5SJohn Snow { 2208dfdc48d5SJohn Snow "busy": false, 2209dfdc48d5SJohn Snow "count": 0, 2210dfdc48d5SJohn Snow "granularity": 65536, 2211dfdc48d5SJohn Snow "name": "bitmap0", 2212dfdc48d5SJohn Snow "persistent": false, 221381cbfd50SDaniel P. Berrangé "recording": true 2214dfdc48d5SJohn Snow } 2215dfdc48d5SJohn Snow ] 2216dfdc48d5SJohn Snow } 2217dfdc48d5SJohn Snow} 2218dfdc48d5SJohn Snow 2219dfdc48d5SJohn Snow= Checking Bitmap bitmap0 = 2220dfdc48d5SJohn Snowexpecting 0 dirty sectors; have 0. OK! 2221dfdc48d5SJohn Snow 2222dfdc48d5SJohn Snow--- Cleanup --- 2223dfdc48d5SJohn Snow 2224dfdc48d5SJohn Snow{"execute": "block-dirty-bitmap-remove", "arguments": {"name": "bitmap0", "node": "drive0"}} 2225dfdc48d5SJohn Snow{"return": {}} 2226dfdc48d5SJohn Snow{ 22275c4343b8SVladimir Sementsov-Ogievskiy "bitmaps": {} 2228dfdc48d5SJohn Snow} 2229dfdc48d5SJohn Snow 2230dfdc48d5SJohn Snow--- Verification --- 2231dfdc48d5SJohn Snow 2232dfdc48d5SJohn Snowqemu_img compare "TEST_DIR/PID-bsync1" "TEST_DIR/PID-fbackup1" ==> Identical, OK! 2233dfdc48d5SJohn Snowqemu_img compare "TEST_DIR/PID-bsync2" "TEST_DIR/PID-fbackup2" ==> Identical, OK! 2234dfdc48d5SJohn Snowqemu_img compare "TEST_DIR/PID-img" "TEST_DIR/PID-fbackup2" ==> Identical, OK! 2235dfdc48d5SJohn Snow 2236352092d3SJohn Snow 2237bd5ceebfSJohn Snow=== Mode full; Bitmap Sync on-success with simulated failure === 2238bd5ceebfSJohn Snow 2239bd5ceebfSJohn Snow--- Preparing image & VM --- 2240bd5ceebfSJohn Snow 2241bd5ceebfSJohn Snow{"execute": "blockdev-add", "arguments": {"driver": "qcow2", "file": {"driver": "file", "filename": "TEST_DIR/PID-img"}, "node-name": "drive0"}} 2242bd5ceebfSJohn Snow{"return": {}} 2243bd5ceebfSJohn Snow 2244bd5ceebfSJohn Snow--- Write #0 --- 2245bd5ceebfSJohn Snow 2246bd5ceebfSJohn Snowwrite -P0x49 0x0000000 0x10000 2247bd5ceebfSJohn Snow{"return": ""} 2248bd5ceebfSJohn Snowwrite -P0x6c 0x0100000 0x10000 2249bd5ceebfSJohn Snow{"return": ""} 2250bd5ceebfSJohn Snowwrite -P0x6f 0x2000000 0x10000 2251bd5ceebfSJohn Snow{"return": ""} 2252bd5ceebfSJohn Snowwrite -P0x76 0x3ff0000 0x10000 2253bd5ceebfSJohn Snow{"return": ""} 2254bd5ceebfSJohn Snow{ 22555c4343b8SVladimir Sementsov-Ogievskiy "bitmaps": {} 2256bd5ceebfSJohn Snow} 2257bd5ceebfSJohn Snow 2258bd5ceebfSJohn Snow--- Reference Backup #0 --- 2259bd5ceebfSJohn Snow 2260bd5ceebfSJohn Snow{} 2261bd5ceebfSJohn Snow{"execute": "job-dismiss", "arguments": {"id": "bdc-file-job"}} 2262bd5ceebfSJohn Snow{"return": {}} 2263bd5ceebfSJohn Snow{} 2264bd5ceebfSJohn Snow{} 2265bd5ceebfSJohn Snow{"execute": "job-dismiss", "arguments": {"id": "bdc-fmt-job"}} 2266bd5ceebfSJohn Snow{"return": {}} 2267bd5ceebfSJohn Snow{} 22682d0f32e3SVladimir Sementsov-Ogievskiy{"execute": "blockdev-backup", "arguments": {"device": "drive0", "filter-node-name": "backup-top", "job-id": "ref_backup_0", "sync": "full", "target": "ref_target_0", "x-perf": {"max-workers": 1}}} 2269bd5ceebfSJohn Snow{"return": {}} 2270bd5ceebfSJohn Snow{"data": {"device": "ref_backup_0", "len": 67108864, "offset": 67108864, "speed": 0, "type": "backup"}, "event": "BLOCK_JOB_COMPLETED", "timestamp": {"microseconds": "USECS", "seconds": "SECS"}} 2271bd5ceebfSJohn Snow 2272bd5ceebfSJohn Snow--- Add Bitmap --- 2273bd5ceebfSJohn Snow 2274bd5ceebfSJohn Snow{"execute": "block-dirty-bitmap-add", "arguments": {"granularity": 65536, "name": "bitmap0", "node": "drive0"}} 2275bd5ceebfSJohn Snow{"return": {}} 2276bd5ceebfSJohn Snow 2277bd5ceebfSJohn Snow--- Write #1 --- 2278bd5ceebfSJohn Snow 2279bd5ceebfSJohn Snowwrite -P0x65 0x0000000 0x10000 2280bd5ceebfSJohn Snow{"return": ""} 2281bd5ceebfSJohn Snowwrite -P0x77 0x00f8000 0x10000 2282bd5ceebfSJohn Snow{"return": ""} 2283bd5ceebfSJohn Snowwrite -P0x72 0x2008000 0x10000 2284bd5ceebfSJohn Snow{"return": ""} 2285bd5ceebfSJohn Snowwrite -P0x69 0x3fe0000 0x10000 2286bd5ceebfSJohn Snow{"return": ""} 2287bd5ceebfSJohn Snow{ 2288bd5ceebfSJohn Snow "bitmaps": { 22895c4343b8SVladimir Sementsov-Ogievskiy "drive0": [ 2290bd5ceebfSJohn Snow { 2291bd5ceebfSJohn Snow "busy": false, 2292bd5ceebfSJohn Snow "count": 393216, 2293bd5ceebfSJohn Snow "granularity": 65536, 2294bd5ceebfSJohn Snow "name": "bitmap0", 2295bd5ceebfSJohn Snow "persistent": false, 229681cbfd50SDaniel P. Berrangé "recording": true 2297bd5ceebfSJohn Snow } 2298bd5ceebfSJohn Snow ] 2299bd5ceebfSJohn Snow } 2300bd5ceebfSJohn Snow} 2301bd5ceebfSJohn Snow 2302bd5ceebfSJohn Snow= Checking Bitmap bitmap0 = 2303bd5ceebfSJohn Snowexpecting 6 dirty sectors; have 6. OK! 2304bd5ceebfSJohn Snow 2305bd5ceebfSJohn Snow--- Reference Backup #1 --- 2306bd5ceebfSJohn Snow 2307bd5ceebfSJohn Snow{} 2308bd5ceebfSJohn Snow{"execute": "job-dismiss", "arguments": {"id": "bdc-file-job"}} 2309bd5ceebfSJohn Snow{"return": {}} 2310bd5ceebfSJohn Snow{} 2311bd5ceebfSJohn Snow{} 2312bd5ceebfSJohn Snow{"execute": "job-dismiss", "arguments": {"id": "bdc-fmt-job"}} 2313bd5ceebfSJohn Snow{"return": {}} 2314bd5ceebfSJohn Snow{} 23152d0f32e3SVladimir Sementsov-Ogievskiy{"execute": "blockdev-backup", "arguments": {"device": "drive0", "filter-node-name": "backup-top", "job-id": "ref_backup_1", "sync": "full", "target": "ref_target_1", "x-perf": {"max-workers": 1}}} 2316bd5ceebfSJohn Snow{"return": {}} 2317bd5ceebfSJohn Snow{"data": {"device": "ref_backup_1", "len": 67108864, "offset": 67108864, "speed": 0, "type": "backup"}, "event": "BLOCK_JOB_COMPLETED", "timestamp": {"microseconds": "USECS", "seconds": "SECS"}} 2318bd5ceebfSJohn Snow 2319bd5ceebfSJohn Snow--- Test Backup #1 --- 2320bd5ceebfSJohn Snow 2321bd5ceebfSJohn Snow{} 2322bd5ceebfSJohn Snow{"execute": "job-dismiss", "arguments": {"id": "bdc-file-job"}} 2323bd5ceebfSJohn Snow{"return": {}} 2324bd5ceebfSJohn Snow{} 2325bd5ceebfSJohn Snow{} 2326bd5ceebfSJohn Snow{"execute": "job-dismiss", "arguments": {"id": "bdc-fmt-job"}} 2327bd5ceebfSJohn Snow{"return": {}} 2328bd5ceebfSJohn Snow{} 23292d0f32e3SVladimir Sementsov-Ogievskiy{"execute": "blockdev-backup", "arguments": {"auto-finalize": false, "bitmap": "bitmap0", "bitmap-mode": "on-success", "device": "drive0", "filter-node-name": "backup-top", "job-id": "backup_1", "sync": "full", "target": "backup_target_1", "x-perf": {"max-workers": 1}}} 2330bd5ceebfSJohn Snow{"return": {}} 2331bd5ceebfSJohn Snow 2332bd5ceebfSJohn Snow--- Write #2 --- 2333bd5ceebfSJohn Snow 2334bd5ceebfSJohn Snowwrite -P0x74 0x0010000 0x10000 2335bd5ceebfSJohn Snow{"return": ""} 2336bd5ceebfSJohn Snowwrite -P0x69 0x00e8000 0x10000 2337bd5ceebfSJohn Snow{"return": ""} 2338bd5ceebfSJohn Snowwrite -P0x6e 0x2018000 0x10000 2339bd5ceebfSJohn Snow{"return": ""} 2340bd5ceebfSJohn Snowwrite -P0x67 0x3fe0000 0x20000 2341bd5ceebfSJohn Snow{"return": ""} 2342bd5ceebfSJohn Snow{ 2343bd5ceebfSJohn Snow "bitmaps": { 2344af5bcd77SVladimir Sementsov-Ogievskiy "backup-top": [ 2345af5bcd77SVladimir Sementsov-Ogievskiy { 2346af5bcd77SVladimir Sementsov-Ogievskiy "busy": false, 2347af5bcd77SVladimir Sementsov-Ogievskiy "count": 67108864, 2348af5bcd77SVladimir Sementsov-Ogievskiy "granularity": 65536, 2349af5bcd77SVladimir Sementsov-Ogievskiy "persistent": false, 2350af5bcd77SVladimir Sementsov-Ogievskiy "recording": false 2351af5bcd77SVladimir Sementsov-Ogievskiy }, 2352af5bcd77SVladimir Sementsov-Ogievskiy { 2353af5bcd77SVladimir Sementsov-Ogievskiy "busy": false, 2354af5bcd77SVladimir Sementsov-Ogievskiy "count": 458752, 2355af5bcd77SVladimir Sementsov-Ogievskiy "granularity": 65536, 2356af5bcd77SVladimir Sementsov-Ogievskiy "persistent": false, 2357af5bcd77SVladimir Sementsov-Ogievskiy "recording": false 2358*006e845bSVladimir Sementsov-Ogievskiy }, 2359bd5ceebfSJohn Snow { 2360bd5ceebfSJohn Snow "busy": false, 2361bd5ceebfSJohn Snow "count": 0, 2362bd5ceebfSJohn Snow "granularity": 65536, 2363bd5ceebfSJohn Snow "persistent": false, 236481cbfd50SDaniel P. Berrangé "recording": false 2365*006e845bSVladimir Sementsov-Ogievskiy } 2366*006e845bSVladimir Sementsov-Ogievskiy ], 2367*006e845bSVladimir Sementsov-Ogievskiy "drive0": [ 2368bd5ceebfSJohn Snow { 2369bd5ceebfSJohn Snow "busy": false, 2370bd5ceebfSJohn Snow "count": 458752, 2371bd5ceebfSJohn Snow "granularity": 65536, 2372bd5ceebfSJohn Snow "persistent": false, 237381cbfd50SDaniel P. Berrangé "recording": true 2374bd5ceebfSJohn Snow }, 2375bd5ceebfSJohn Snow { 2376bd5ceebfSJohn Snow "busy": true, 2377bd5ceebfSJohn Snow "count": 393216, 2378bd5ceebfSJohn Snow "granularity": 65536, 2379bd5ceebfSJohn Snow "name": "bitmap0", 2380bd5ceebfSJohn Snow "persistent": false, 238181cbfd50SDaniel P. Berrangé "recording": true 2382bd5ceebfSJohn Snow } 2383bd5ceebfSJohn Snow ] 2384bd5ceebfSJohn Snow } 2385bd5ceebfSJohn Snow} 2386bd5ceebfSJohn Snow 2387bd5ceebfSJohn Snow= Checking Bitmap bitmap0 = 2388bd5ceebfSJohn Snowexpecting 6 dirty sectors; have 6. OK! 2389bd5ceebfSJohn Snow 2390bd5ceebfSJohn Snow= Checking Bitmap (anonymous) = 2391bd5ceebfSJohn Snowexpecting 7 dirty sectors; have 7. OK! 2392bd5ceebfSJohn Snow 2393bd5ceebfSJohn Snow{"execute": "job-cancel", "arguments": {"id": "backup_1"}} 2394bd5ceebfSJohn Snow{"return": {}} 2395bd5ceebfSJohn Snow{"data": {"id": "backup_1", "type": "backup"}, "event": "BLOCK_JOB_PENDING", "timestamp": {"microseconds": "USECS", "seconds": "SECS"}} 2396bd5ceebfSJohn Snow{"data": {"device": "backup_1", "len": 67108864, "offset": 67108864, "speed": 0, "type": "backup"}, "event": "BLOCK_JOB_CANCELLED", "timestamp": {"microseconds": "USECS", "seconds": "SECS"}} 2397bd5ceebfSJohn Snow{ 2398bd5ceebfSJohn Snow "bitmaps": { 23995c4343b8SVladimir Sementsov-Ogievskiy "drive0": [ 2400bd5ceebfSJohn Snow { 2401bd5ceebfSJohn Snow "busy": false, 2402bd5ceebfSJohn Snow "count": 655360, 2403bd5ceebfSJohn Snow "granularity": 65536, 2404bd5ceebfSJohn Snow "name": "bitmap0", 2405bd5ceebfSJohn Snow "persistent": false, 240681cbfd50SDaniel P. Berrangé "recording": true 2407bd5ceebfSJohn Snow } 2408bd5ceebfSJohn Snow ] 2409bd5ceebfSJohn Snow } 2410bd5ceebfSJohn Snow} 2411bd5ceebfSJohn Snow 2412bd5ceebfSJohn Snow= Checking Bitmap bitmap0 = 2413bd5ceebfSJohn Snowexpecting 10 dirty sectors; have 10. OK! 2414bd5ceebfSJohn Snow 2415bd5ceebfSJohn Snow--- Write #3 --- 2416bd5ceebfSJohn Snow 2417bd5ceebfSJohn Snowwrite -P0xaa 0x0010000 0x30000 2418bd5ceebfSJohn Snow{"return": ""} 2419bd5ceebfSJohn Snowwrite -P0xbb 0x00d8000 0x10000 2420bd5ceebfSJohn Snow{"return": ""} 2421bd5ceebfSJohn Snowwrite -P0xcc 0x2028000 0x10000 2422bd5ceebfSJohn Snow{"return": ""} 2423bd5ceebfSJohn Snowwrite -P0xdd 0x3fc0000 0x10000 2424bd5ceebfSJohn Snow{"return": ""} 2425bd5ceebfSJohn Snow{ 2426bd5ceebfSJohn Snow "bitmaps": { 24275c4343b8SVladimir Sementsov-Ogievskiy "drive0": [ 2428bd5ceebfSJohn Snow { 2429bd5ceebfSJohn Snow "busy": false, 2430bd5ceebfSJohn Snow "count": 983040, 2431bd5ceebfSJohn Snow "granularity": 65536, 2432bd5ceebfSJohn Snow "name": "bitmap0", 2433bd5ceebfSJohn Snow "persistent": false, 243481cbfd50SDaniel P. Berrangé "recording": true 2435bd5ceebfSJohn Snow } 2436bd5ceebfSJohn Snow ] 2437bd5ceebfSJohn Snow } 2438bd5ceebfSJohn Snow} 2439bd5ceebfSJohn Snow 2440bd5ceebfSJohn Snow= Checking Bitmap bitmap0 = 2441bd5ceebfSJohn Snowexpecting 15 dirty sectors; have 15. OK! 2442bd5ceebfSJohn Snow 2443bd5ceebfSJohn Snow--- Reference Backup #2 --- 2444bd5ceebfSJohn Snow 2445bd5ceebfSJohn Snow{} 2446bd5ceebfSJohn Snow{"execute": "job-dismiss", "arguments": {"id": "bdc-file-job"}} 2447bd5ceebfSJohn Snow{"return": {}} 2448bd5ceebfSJohn Snow{} 2449bd5ceebfSJohn Snow{} 2450bd5ceebfSJohn Snow{"execute": "job-dismiss", "arguments": {"id": "bdc-fmt-job"}} 2451bd5ceebfSJohn Snow{"return": {}} 2452bd5ceebfSJohn Snow{} 24532d0f32e3SVladimir Sementsov-Ogievskiy{"execute": "blockdev-backup", "arguments": {"device": "drive0", "filter-node-name": "backup-top", "job-id": "ref_backup_2", "sync": "full", "target": "ref_target_2", "x-perf": {"max-workers": 1}}} 2454bd5ceebfSJohn Snow{"return": {}} 2455bd5ceebfSJohn Snow{"data": {"device": "ref_backup_2", "len": 67108864, "offset": 67108864, "speed": 0, "type": "backup"}, "event": "BLOCK_JOB_COMPLETED", "timestamp": {"microseconds": "USECS", "seconds": "SECS"}} 2456bd5ceebfSJohn Snow 2457bd5ceebfSJohn Snow--- Test Backup #2 --- 2458bd5ceebfSJohn Snow 2459bd5ceebfSJohn Snow{} 2460bd5ceebfSJohn Snow{"execute": "job-dismiss", "arguments": {"id": "bdc-file-job"}} 2461bd5ceebfSJohn Snow{"return": {}} 2462bd5ceebfSJohn Snow{} 2463bd5ceebfSJohn Snow{} 2464bd5ceebfSJohn Snow{"execute": "job-dismiss", "arguments": {"id": "bdc-fmt-job"}} 2465bd5ceebfSJohn Snow{"return": {}} 2466bd5ceebfSJohn Snow{} 24672d0f32e3SVladimir Sementsov-Ogievskiy{"execute": "blockdev-backup", "arguments": {"auto-finalize": false, "bitmap": "bitmap0", "bitmap-mode": "on-success", "device": "drive0", "filter-node-name": "backup-top", "job-id": "backup_2", "sync": "bitmap", "target": "backup_target_2", "x-perf": {"max-workers": 1}}} 2468bd5ceebfSJohn Snow{"return": {}} 2469bd5ceebfSJohn Snow{"execute": "job-finalize", "arguments": {"id": "backup_2"}} 2470bd5ceebfSJohn Snow{"return": {}} 2471bd5ceebfSJohn Snow{"data": {"id": "backup_2", "type": "backup"}, "event": "BLOCK_JOB_PENDING", "timestamp": {"microseconds": "USECS", "seconds": "SECS"}} 2472bd5ceebfSJohn Snow{"data": {"device": "backup_2", "len": 983040, "offset": 983040, "speed": 0, "type": "backup"}, "event": "BLOCK_JOB_COMPLETED", "timestamp": {"microseconds": "USECS", "seconds": "SECS"}} 2473bd5ceebfSJohn Snow{ 2474bd5ceebfSJohn Snow "bitmaps": { 24755c4343b8SVladimir Sementsov-Ogievskiy "drive0": [ 2476bd5ceebfSJohn Snow { 2477bd5ceebfSJohn Snow "busy": false, 2478bd5ceebfSJohn Snow "count": 0, 2479bd5ceebfSJohn Snow "granularity": 65536, 2480bd5ceebfSJohn Snow "name": "bitmap0", 2481bd5ceebfSJohn Snow "persistent": false, 248281cbfd50SDaniel P. Berrangé "recording": true 2483bd5ceebfSJohn Snow } 2484bd5ceebfSJohn Snow ] 2485bd5ceebfSJohn Snow } 2486bd5ceebfSJohn Snow} 2487bd5ceebfSJohn Snow 2488bd5ceebfSJohn Snow= Checking Bitmap bitmap0 = 2489bd5ceebfSJohn Snowexpecting 0 dirty sectors; have 0. OK! 2490bd5ceebfSJohn Snow 2491bd5ceebfSJohn Snow--- Cleanup --- 2492bd5ceebfSJohn Snow 2493bd5ceebfSJohn Snow{"execute": "block-dirty-bitmap-remove", "arguments": {"name": "bitmap0", "node": "drive0"}} 2494bd5ceebfSJohn Snow{"return": {}} 2495bd5ceebfSJohn Snow{ 24965c4343b8SVladimir Sementsov-Ogievskiy "bitmaps": {} 2497bd5ceebfSJohn Snow} 2498bd5ceebfSJohn Snow 2499bd5ceebfSJohn Snow--- Verification --- 2500bd5ceebfSJohn Snow 2501bd5ceebfSJohn Snowqemu_img compare "TEST_DIR/PID-bsync1" "TEST_DIR/PID-fbackup1" ==> Identical, OK! 2502bd5ceebfSJohn Snowqemu_img compare "TEST_DIR/PID-bsync2" "TEST_DIR/PID-fbackup2" ==> Identical, OK! 2503bd5ceebfSJohn Snowqemu_img compare "TEST_DIR/PID-img" "TEST_DIR/PID-fbackup2" ==> Identical, OK! 2504bd5ceebfSJohn Snow 2505bd5ceebfSJohn Snow 2506bd5ceebfSJohn Snow=== Mode full; Bitmap Sync on-success with intermediate failure === 2507bd5ceebfSJohn Snow 2508bd5ceebfSJohn Snow--- Preparing image & VM --- 2509bd5ceebfSJohn Snow 2510bd5ceebfSJohn Snow{"execute": "blockdev-add", "arguments": {"driver": "qcow2", "file": {"driver": "blkdebug", "image": {"driver": "file", "filename": "TEST_DIR/PID-img"}, "inject-error": [{"errno": 5, "event": "read_aio", "immediately": false, "once": true, "state": 3}], "set-state": [{"event": "flush_to_disk", "new-state": 2, "state": 1}, {"event": "read_aio", "new-state": 3, "state": 2}]}, "node-name": "drive0"}} 2511bd5ceebfSJohn Snow{"return": {}} 2512bd5ceebfSJohn Snow 2513bd5ceebfSJohn Snow--- Write #0 --- 2514bd5ceebfSJohn Snow 2515bd5ceebfSJohn Snowwrite -P0x49 0x0000000 0x10000 2516bd5ceebfSJohn Snow{"return": ""} 2517bd5ceebfSJohn Snowwrite -P0x6c 0x0100000 0x10000 2518bd5ceebfSJohn Snow{"return": ""} 2519bd5ceebfSJohn Snowwrite -P0x6f 0x2000000 0x10000 2520bd5ceebfSJohn Snow{"return": ""} 2521bd5ceebfSJohn Snowwrite -P0x76 0x3ff0000 0x10000 2522bd5ceebfSJohn Snow{"return": ""} 2523bd5ceebfSJohn Snow{ 25245c4343b8SVladimir Sementsov-Ogievskiy "bitmaps": {} 2525bd5ceebfSJohn Snow} 2526bd5ceebfSJohn Snow 2527bd5ceebfSJohn Snow--- Reference Backup #0 --- 2528bd5ceebfSJohn Snow 2529bd5ceebfSJohn Snow{} 2530bd5ceebfSJohn Snow{"execute": "job-dismiss", "arguments": {"id": "bdc-file-job"}} 2531bd5ceebfSJohn Snow{"return": {}} 2532bd5ceebfSJohn Snow{} 2533bd5ceebfSJohn Snow{} 2534bd5ceebfSJohn Snow{"execute": "job-dismiss", "arguments": {"id": "bdc-fmt-job"}} 2535bd5ceebfSJohn Snow{"return": {}} 2536bd5ceebfSJohn Snow{} 25372d0f32e3SVladimir Sementsov-Ogievskiy{"execute": "blockdev-backup", "arguments": {"device": "drive0", "filter-node-name": "backup-top", "job-id": "ref_backup_0", "sync": "full", "target": "ref_target_0", "x-perf": {"max-workers": 1}}} 2538bd5ceebfSJohn Snow{"return": {}} 2539bd5ceebfSJohn Snow{"data": {"device": "ref_backup_0", "len": 67108864, "offset": 67108864, "speed": 0, "type": "backup"}, "event": "BLOCK_JOB_COMPLETED", "timestamp": {"microseconds": "USECS", "seconds": "SECS"}} 2540bd5ceebfSJohn Snow 2541bd5ceebfSJohn Snow--- Add Bitmap --- 2542bd5ceebfSJohn Snow 2543bd5ceebfSJohn Snow{"execute": "block-dirty-bitmap-add", "arguments": {"granularity": 65536, "name": "bitmap0", "node": "drive0"}} 2544bd5ceebfSJohn Snow{"return": {}} 2545bd5ceebfSJohn Snow 2546bd5ceebfSJohn Snow--- Write #1 --- 2547bd5ceebfSJohn Snow 2548bd5ceebfSJohn Snowwrite -P0x65 0x0000000 0x10000 2549bd5ceebfSJohn Snow{"return": ""} 2550bd5ceebfSJohn Snowwrite -P0x77 0x00f8000 0x10000 2551bd5ceebfSJohn Snow{"return": ""} 2552bd5ceebfSJohn Snowwrite -P0x72 0x2008000 0x10000 2553bd5ceebfSJohn Snow{"return": ""} 2554bd5ceebfSJohn Snowwrite -P0x69 0x3fe0000 0x10000 2555bd5ceebfSJohn Snow{"return": ""} 2556bd5ceebfSJohn Snow{ 2557bd5ceebfSJohn Snow "bitmaps": { 25585c4343b8SVladimir Sementsov-Ogievskiy "drive0": [ 2559bd5ceebfSJohn Snow { 2560bd5ceebfSJohn Snow "busy": false, 2561bd5ceebfSJohn Snow "count": 393216, 2562bd5ceebfSJohn Snow "granularity": 65536, 2563bd5ceebfSJohn Snow "name": "bitmap0", 2564bd5ceebfSJohn Snow "persistent": false, 256581cbfd50SDaniel P. Berrangé "recording": true 2566bd5ceebfSJohn Snow } 2567bd5ceebfSJohn Snow ] 2568bd5ceebfSJohn Snow } 2569bd5ceebfSJohn Snow} 2570bd5ceebfSJohn Snow 2571bd5ceebfSJohn Snow= Checking Bitmap bitmap0 = 2572bd5ceebfSJohn Snowexpecting 6 dirty sectors; have 6. OK! 2573bd5ceebfSJohn Snow 2574bd5ceebfSJohn Snow--- Reference Backup #1 --- 2575bd5ceebfSJohn Snow 2576bd5ceebfSJohn Snow{} 2577bd5ceebfSJohn Snow{"execute": "job-dismiss", "arguments": {"id": "bdc-file-job"}} 2578bd5ceebfSJohn Snow{"return": {}} 2579bd5ceebfSJohn Snow{} 2580bd5ceebfSJohn Snow{} 2581bd5ceebfSJohn Snow{"execute": "job-dismiss", "arguments": {"id": "bdc-fmt-job"}} 2582bd5ceebfSJohn Snow{"return": {}} 2583bd5ceebfSJohn Snow{} 25842d0f32e3SVladimir Sementsov-Ogievskiy{"execute": "blockdev-backup", "arguments": {"device": "drive0", "filter-node-name": "backup-top", "job-id": "ref_backup_1", "sync": "full", "target": "ref_target_1", "x-perf": {"max-workers": 1}}} 2585bd5ceebfSJohn Snow{"return": {}} 2586bd5ceebfSJohn Snow{"data": {"device": "ref_backup_1", "len": 67108864, "offset": 67108864, "speed": 0, "type": "backup"}, "event": "BLOCK_JOB_COMPLETED", "timestamp": {"microseconds": "USECS", "seconds": "SECS"}} 2587bd5ceebfSJohn Snow 2588bd5ceebfSJohn Snow{"return": ""} 2589bd5ceebfSJohn Snow 2590bd5ceebfSJohn Snow--- Test Backup #1 --- 2591bd5ceebfSJohn Snow 2592bd5ceebfSJohn Snow{} 2593bd5ceebfSJohn Snow{"execute": "job-dismiss", "arguments": {"id": "bdc-file-job"}} 2594bd5ceebfSJohn Snow{"return": {}} 2595bd5ceebfSJohn Snow{} 2596bd5ceebfSJohn Snow{} 2597bd5ceebfSJohn Snow{"execute": "job-dismiss", "arguments": {"id": "bdc-fmt-job"}} 2598bd5ceebfSJohn Snow{"return": {}} 2599bd5ceebfSJohn Snow{} 26002d0f32e3SVladimir Sementsov-Ogievskiy{"execute": "blockdev-backup", "arguments": {"auto-finalize": false, "bitmap": "bitmap0", "bitmap-mode": "on-success", "device": "drive0", "filter-node-name": "backup-top", "job-id": "backup_1", "sync": "full", "target": "backup_target_1", "x-perf": {"max-workers": 1}}} 2601bd5ceebfSJohn Snow{"return": {}} 2602bd5ceebfSJohn Snow{"data": {"action": "report", "device": "backup_1", "operation": "read"}, "event": "BLOCK_JOB_ERROR", "timestamp": {"microseconds": "USECS", "seconds": "SECS"}} 2603bd5ceebfSJohn Snow{"data": {"device": "backup_1", "error": "Input/output error", "len": 67108864, "offset": 983040, "speed": 0, "type": "backup"}, "event": "BLOCK_JOB_COMPLETED", "timestamp": {"microseconds": "USECS", "seconds": "SECS"}} 2604bd5ceebfSJohn Snow{ 2605bd5ceebfSJohn Snow "bitmaps": { 26065c4343b8SVladimir Sementsov-Ogievskiy "drive0": [ 2607bd5ceebfSJohn Snow { 2608bd5ceebfSJohn Snow "busy": false, 2609bd5ceebfSJohn Snow "count": 393216, 2610bd5ceebfSJohn Snow "granularity": 65536, 2611bd5ceebfSJohn Snow "name": "bitmap0", 2612bd5ceebfSJohn Snow "persistent": false, 261381cbfd50SDaniel P. Berrangé "recording": true 2614bd5ceebfSJohn Snow } 2615bd5ceebfSJohn Snow ] 2616bd5ceebfSJohn Snow } 2617bd5ceebfSJohn Snow} 2618bd5ceebfSJohn Snow 2619bd5ceebfSJohn Snow= Checking Bitmap bitmap0 = 2620bd5ceebfSJohn Snowexpecting 6 dirty sectors; have 6. OK! 2621bd5ceebfSJohn Snow 2622bd5ceebfSJohn Snow--- Write #3 --- 2623bd5ceebfSJohn Snow 2624bd5ceebfSJohn Snowwrite -P0xaa 0x0010000 0x30000 2625bd5ceebfSJohn Snow{"return": ""} 2626bd5ceebfSJohn Snowwrite -P0xbb 0x00d8000 0x10000 2627bd5ceebfSJohn Snow{"return": ""} 2628bd5ceebfSJohn Snowwrite -P0xcc 0x2028000 0x10000 2629bd5ceebfSJohn Snow{"return": ""} 2630bd5ceebfSJohn Snowwrite -P0xdd 0x3fc0000 0x10000 2631bd5ceebfSJohn Snow{"return": ""} 2632bd5ceebfSJohn Snow{ 2633bd5ceebfSJohn Snow "bitmaps": { 26345c4343b8SVladimir Sementsov-Ogievskiy "drive0": [ 2635bd5ceebfSJohn Snow { 2636bd5ceebfSJohn Snow "busy": false, 2637bd5ceebfSJohn Snow "count": 917504, 2638bd5ceebfSJohn Snow "granularity": 65536, 2639bd5ceebfSJohn Snow "name": "bitmap0", 2640bd5ceebfSJohn Snow "persistent": false, 264181cbfd50SDaniel P. Berrangé "recording": true 2642bd5ceebfSJohn Snow } 2643bd5ceebfSJohn Snow ] 2644bd5ceebfSJohn Snow } 2645bd5ceebfSJohn Snow} 2646bd5ceebfSJohn Snow 2647bd5ceebfSJohn Snow= Checking Bitmap bitmap0 = 2648bd5ceebfSJohn Snowexpecting 14 dirty sectors; have 14. OK! 2649bd5ceebfSJohn Snow 2650bd5ceebfSJohn Snow--- Reference Backup #2 --- 2651bd5ceebfSJohn Snow 2652bd5ceebfSJohn Snow{} 2653bd5ceebfSJohn Snow{"execute": "job-dismiss", "arguments": {"id": "bdc-file-job"}} 2654bd5ceebfSJohn Snow{"return": {}} 2655bd5ceebfSJohn Snow{} 2656bd5ceebfSJohn Snow{} 2657bd5ceebfSJohn Snow{"execute": "job-dismiss", "arguments": {"id": "bdc-fmt-job"}} 2658bd5ceebfSJohn Snow{"return": {}} 2659bd5ceebfSJohn Snow{} 26602d0f32e3SVladimir Sementsov-Ogievskiy{"execute": "blockdev-backup", "arguments": {"device": "drive0", "filter-node-name": "backup-top", "job-id": "ref_backup_2", "sync": "full", "target": "ref_target_2", "x-perf": {"max-workers": 1}}} 2661bd5ceebfSJohn Snow{"return": {}} 2662bd5ceebfSJohn Snow{"data": {"device": "ref_backup_2", "len": 67108864, "offset": 67108864, "speed": 0, "type": "backup"}, "event": "BLOCK_JOB_COMPLETED", "timestamp": {"microseconds": "USECS", "seconds": "SECS"}} 2663bd5ceebfSJohn Snow 2664bd5ceebfSJohn Snow--- Test Backup #2 --- 2665bd5ceebfSJohn Snow 2666bd5ceebfSJohn Snow{} 2667bd5ceebfSJohn Snow{"execute": "job-dismiss", "arguments": {"id": "bdc-file-job"}} 2668bd5ceebfSJohn Snow{"return": {}} 2669bd5ceebfSJohn Snow{} 2670bd5ceebfSJohn Snow{} 2671bd5ceebfSJohn Snow{"execute": "job-dismiss", "arguments": {"id": "bdc-fmt-job"}} 2672bd5ceebfSJohn Snow{"return": {}} 2673bd5ceebfSJohn Snow{} 26742d0f32e3SVladimir Sementsov-Ogievskiy{"execute": "blockdev-backup", "arguments": {"auto-finalize": false, "bitmap": "bitmap0", "bitmap-mode": "on-success", "device": "drive0", "filter-node-name": "backup-top", "job-id": "backup_2", "sync": "bitmap", "target": "backup_target_2", "x-perf": {"max-workers": 1}}} 2675bd5ceebfSJohn Snow{"return": {}} 2676bd5ceebfSJohn Snow{"execute": "job-finalize", "arguments": {"id": "backup_2"}} 2677bd5ceebfSJohn Snow{"return": {}} 2678bd5ceebfSJohn Snow{"data": {"id": "backup_2", "type": "backup"}, "event": "BLOCK_JOB_PENDING", "timestamp": {"microseconds": "USECS", "seconds": "SECS"}} 2679bd5ceebfSJohn Snow{"data": {"device": "backup_2", "len": 917504, "offset": 917504, "speed": 0, "type": "backup"}, "event": "BLOCK_JOB_COMPLETED", "timestamp": {"microseconds": "USECS", "seconds": "SECS"}} 2680bd5ceebfSJohn Snow{ 2681bd5ceebfSJohn Snow "bitmaps": { 26825c4343b8SVladimir Sementsov-Ogievskiy "drive0": [ 2683bd5ceebfSJohn Snow { 2684bd5ceebfSJohn Snow "busy": false, 2685bd5ceebfSJohn Snow "count": 0, 2686bd5ceebfSJohn Snow "granularity": 65536, 2687bd5ceebfSJohn Snow "name": "bitmap0", 2688bd5ceebfSJohn Snow "persistent": false, 268981cbfd50SDaniel P. Berrangé "recording": true 2690bd5ceebfSJohn Snow } 2691bd5ceebfSJohn Snow ] 2692bd5ceebfSJohn Snow } 2693bd5ceebfSJohn Snow} 2694bd5ceebfSJohn Snow 2695bd5ceebfSJohn Snow= Checking Bitmap bitmap0 = 2696bd5ceebfSJohn Snowexpecting 0 dirty sectors; have 0. OK! 2697bd5ceebfSJohn Snow 2698bd5ceebfSJohn Snow--- Cleanup --- 2699bd5ceebfSJohn Snow 2700bd5ceebfSJohn Snow{"execute": "block-dirty-bitmap-remove", "arguments": {"name": "bitmap0", "node": "drive0"}} 2701bd5ceebfSJohn Snow{"return": {}} 2702bd5ceebfSJohn Snow{ 27035c4343b8SVladimir Sementsov-Ogievskiy "bitmaps": {} 2704bd5ceebfSJohn Snow} 2705bd5ceebfSJohn Snow 2706bd5ceebfSJohn Snow--- Verification --- 2707bd5ceebfSJohn Snow 2708bd5ceebfSJohn Snowqemu_img compare "TEST_DIR/PID-bsync1" "TEST_DIR/PID-fbackup1" ==> Mismatch, OK! 2709bd5ceebfSJohn Snowqemu_img compare "TEST_DIR/PID-bsync2" "TEST_DIR/PID-fbackup2" ==> Identical, OK! 2710bd5ceebfSJohn Snowqemu_img compare "TEST_DIR/PID-img" "TEST_DIR/PID-fbackup2" ==> Identical, OK! 2711bd5ceebfSJohn Snow 2712bd5ceebfSJohn Snow 2713bd5ceebfSJohn Snow=== Mode full; Bitmap Sync on-success without failure === 2714bd5ceebfSJohn Snow 2715bd5ceebfSJohn Snow--- Preparing image & VM --- 2716bd5ceebfSJohn Snow 2717bd5ceebfSJohn Snow{"execute": "blockdev-add", "arguments": {"driver": "qcow2", "file": {"driver": "file", "filename": "TEST_DIR/PID-img"}, "node-name": "drive0"}} 2718bd5ceebfSJohn Snow{"return": {}} 2719bd5ceebfSJohn Snow 2720bd5ceebfSJohn Snow--- Write #0 --- 2721bd5ceebfSJohn Snow 2722bd5ceebfSJohn Snowwrite -P0x49 0x0000000 0x10000 2723bd5ceebfSJohn Snow{"return": ""} 2724bd5ceebfSJohn Snowwrite -P0x6c 0x0100000 0x10000 2725bd5ceebfSJohn Snow{"return": ""} 2726bd5ceebfSJohn Snowwrite -P0x6f 0x2000000 0x10000 2727bd5ceebfSJohn Snow{"return": ""} 2728bd5ceebfSJohn Snowwrite -P0x76 0x3ff0000 0x10000 2729bd5ceebfSJohn Snow{"return": ""} 2730bd5ceebfSJohn Snow{ 27315c4343b8SVladimir Sementsov-Ogievskiy "bitmaps": {} 2732bd5ceebfSJohn Snow} 2733bd5ceebfSJohn Snow 2734bd5ceebfSJohn Snow--- Reference Backup #0 --- 2735bd5ceebfSJohn Snow 2736bd5ceebfSJohn Snow{} 2737bd5ceebfSJohn Snow{"execute": "job-dismiss", "arguments": {"id": "bdc-file-job"}} 2738bd5ceebfSJohn Snow{"return": {}} 2739bd5ceebfSJohn Snow{} 2740bd5ceebfSJohn Snow{} 2741bd5ceebfSJohn Snow{"execute": "job-dismiss", "arguments": {"id": "bdc-fmt-job"}} 2742bd5ceebfSJohn Snow{"return": {}} 2743bd5ceebfSJohn Snow{} 27442d0f32e3SVladimir Sementsov-Ogievskiy{"execute": "blockdev-backup", "arguments": {"device": "drive0", "filter-node-name": "backup-top", "job-id": "ref_backup_0", "sync": "full", "target": "ref_target_0", "x-perf": {"max-workers": 1}}} 2745bd5ceebfSJohn Snow{"return": {}} 2746bd5ceebfSJohn Snow{"data": {"device": "ref_backup_0", "len": 67108864, "offset": 67108864, "speed": 0, "type": "backup"}, "event": "BLOCK_JOB_COMPLETED", "timestamp": {"microseconds": "USECS", "seconds": "SECS"}} 2747bd5ceebfSJohn Snow 2748bd5ceebfSJohn Snow--- Add Bitmap --- 2749bd5ceebfSJohn Snow 2750bd5ceebfSJohn Snow{"execute": "block-dirty-bitmap-add", "arguments": {"granularity": 65536, "name": "bitmap0", "node": "drive0"}} 2751bd5ceebfSJohn Snow{"return": {}} 2752bd5ceebfSJohn Snow 2753bd5ceebfSJohn Snow--- Write #1 --- 2754bd5ceebfSJohn Snow 2755bd5ceebfSJohn Snowwrite -P0x65 0x0000000 0x10000 2756bd5ceebfSJohn Snow{"return": ""} 2757bd5ceebfSJohn Snowwrite -P0x77 0x00f8000 0x10000 2758bd5ceebfSJohn Snow{"return": ""} 2759bd5ceebfSJohn Snowwrite -P0x72 0x2008000 0x10000 2760bd5ceebfSJohn Snow{"return": ""} 2761bd5ceebfSJohn Snowwrite -P0x69 0x3fe0000 0x10000 2762bd5ceebfSJohn Snow{"return": ""} 2763bd5ceebfSJohn Snow{ 2764bd5ceebfSJohn Snow "bitmaps": { 27655c4343b8SVladimir Sementsov-Ogievskiy "drive0": [ 2766bd5ceebfSJohn Snow { 2767bd5ceebfSJohn Snow "busy": false, 2768bd5ceebfSJohn Snow "count": 393216, 2769bd5ceebfSJohn Snow "granularity": 65536, 2770bd5ceebfSJohn Snow "name": "bitmap0", 2771bd5ceebfSJohn Snow "persistent": false, 277281cbfd50SDaniel P. Berrangé "recording": true 2773bd5ceebfSJohn Snow } 2774bd5ceebfSJohn Snow ] 2775bd5ceebfSJohn Snow } 2776bd5ceebfSJohn Snow} 2777bd5ceebfSJohn Snow 2778bd5ceebfSJohn Snow= Checking Bitmap bitmap0 = 2779bd5ceebfSJohn Snowexpecting 6 dirty sectors; have 6. OK! 2780bd5ceebfSJohn Snow 2781bd5ceebfSJohn Snow--- Reference Backup #1 --- 2782bd5ceebfSJohn Snow 2783bd5ceebfSJohn Snow{} 2784bd5ceebfSJohn Snow{"execute": "job-dismiss", "arguments": {"id": "bdc-file-job"}} 2785bd5ceebfSJohn Snow{"return": {}} 2786bd5ceebfSJohn Snow{} 2787bd5ceebfSJohn Snow{} 2788bd5ceebfSJohn Snow{"execute": "job-dismiss", "arguments": {"id": "bdc-fmt-job"}} 2789bd5ceebfSJohn Snow{"return": {}} 2790bd5ceebfSJohn Snow{} 27912d0f32e3SVladimir Sementsov-Ogievskiy{"execute": "blockdev-backup", "arguments": {"device": "drive0", "filter-node-name": "backup-top", "job-id": "ref_backup_1", "sync": "full", "target": "ref_target_1", "x-perf": {"max-workers": 1}}} 2792bd5ceebfSJohn Snow{"return": {}} 2793bd5ceebfSJohn Snow{"data": {"device": "ref_backup_1", "len": 67108864, "offset": 67108864, "speed": 0, "type": "backup"}, "event": "BLOCK_JOB_COMPLETED", "timestamp": {"microseconds": "USECS", "seconds": "SECS"}} 2794bd5ceebfSJohn Snow 2795bd5ceebfSJohn Snow--- Test Backup #1 --- 2796bd5ceebfSJohn Snow 2797bd5ceebfSJohn Snow{} 2798bd5ceebfSJohn Snow{"execute": "job-dismiss", "arguments": {"id": "bdc-file-job"}} 2799bd5ceebfSJohn Snow{"return": {}} 2800bd5ceebfSJohn Snow{} 2801bd5ceebfSJohn Snow{} 2802bd5ceebfSJohn Snow{"execute": "job-dismiss", "arguments": {"id": "bdc-fmt-job"}} 2803bd5ceebfSJohn Snow{"return": {}} 2804bd5ceebfSJohn Snow{} 28052d0f32e3SVladimir Sementsov-Ogievskiy{"execute": "blockdev-backup", "arguments": {"auto-finalize": false, "bitmap": "bitmap0", "bitmap-mode": "on-success", "device": "drive0", "filter-node-name": "backup-top", "job-id": "backup_1", "sync": "full", "target": "backup_target_1", "x-perf": {"max-workers": 1}}} 2806bd5ceebfSJohn Snow{"return": {}} 2807bd5ceebfSJohn Snow 2808bd5ceebfSJohn Snow--- Write #2 --- 2809bd5ceebfSJohn Snow 2810bd5ceebfSJohn Snowwrite -P0x74 0x0010000 0x10000 2811bd5ceebfSJohn Snow{"return": ""} 2812bd5ceebfSJohn Snowwrite -P0x69 0x00e8000 0x10000 2813bd5ceebfSJohn Snow{"return": ""} 2814bd5ceebfSJohn Snowwrite -P0x6e 0x2018000 0x10000 2815bd5ceebfSJohn Snow{"return": ""} 2816bd5ceebfSJohn Snowwrite -P0x67 0x3fe0000 0x20000 2817bd5ceebfSJohn Snow{"return": ""} 2818bd5ceebfSJohn Snow{ 2819bd5ceebfSJohn Snow "bitmaps": { 2820af5bcd77SVladimir Sementsov-Ogievskiy "backup-top": [ 2821af5bcd77SVladimir Sementsov-Ogievskiy { 2822af5bcd77SVladimir Sementsov-Ogievskiy "busy": false, 2823af5bcd77SVladimir Sementsov-Ogievskiy "count": 67108864, 2824af5bcd77SVladimir Sementsov-Ogievskiy "granularity": 65536, 2825af5bcd77SVladimir Sementsov-Ogievskiy "persistent": false, 2826af5bcd77SVladimir Sementsov-Ogievskiy "recording": false 2827af5bcd77SVladimir Sementsov-Ogievskiy }, 2828af5bcd77SVladimir Sementsov-Ogievskiy { 2829af5bcd77SVladimir Sementsov-Ogievskiy "busy": false, 2830af5bcd77SVladimir Sementsov-Ogievskiy "count": 458752, 2831af5bcd77SVladimir Sementsov-Ogievskiy "granularity": 65536, 2832af5bcd77SVladimir Sementsov-Ogievskiy "persistent": false, 2833af5bcd77SVladimir Sementsov-Ogievskiy "recording": false 2834*006e845bSVladimir Sementsov-Ogievskiy }, 2835bd5ceebfSJohn Snow { 2836bd5ceebfSJohn Snow "busy": false, 2837bd5ceebfSJohn Snow "count": 0, 2838bd5ceebfSJohn Snow "granularity": 65536, 2839bd5ceebfSJohn Snow "persistent": false, 284081cbfd50SDaniel P. Berrangé "recording": false 2841*006e845bSVladimir Sementsov-Ogievskiy } 2842*006e845bSVladimir Sementsov-Ogievskiy ], 2843*006e845bSVladimir Sementsov-Ogievskiy "drive0": [ 2844bd5ceebfSJohn Snow { 2845bd5ceebfSJohn Snow "busy": false, 2846bd5ceebfSJohn Snow "count": 458752, 2847bd5ceebfSJohn Snow "granularity": 65536, 2848bd5ceebfSJohn Snow "persistent": false, 284981cbfd50SDaniel P. Berrangé "recording": true 2850bd5ceebfSJohn Snow }, 2851bd5ceebfSJohn Snow { 2852bd5ceebfSJohn Snow "busy": true, 2853bd5ceebfSJohn Snow "count": 393216, 2854bd5ceebfSJohn Snow "granularity": 65536, 2855bd5ceebfSJohn Snow "name": "bitmap0", 2856bd5ceebfSJohn Snow "persistent": false, 285781cbfd50SDaniel P. Berrangé "recording": true 2858bd5ceebfSJohn Snow } 2859bd5ceebfSJohn Snow ] 2860bd5ceebfSJohn Snow } 2861bd5ceebfSJohn Snow} 2862bd5ceebfSJohn Snow 2863bd5ceebfSJohn Snow= Checking Bitmap bitmap0 = 2864bd5ceebfSJohn Snowexpecting 6 dirty sectors; have 6. OK! 2865bd5ceebfSJohn Snow 2866bd5ceebfSJohn Snow= Checking Bitmap (anonymous) = 2867bd5ceebfSJohn Snowexpecting 7 dirty sectors; have 7. OK! 2868bd5ceebfSJohn Snow 2869bd5ceebfSJohn Snow{"execute": "job-finalize", "arguments": {"id": "backup_1"}} 2870bd5ceebfSJohn Snow{"return": {}} 2871bd5ceebfSJohn Snow{"data": {"id": "backup_1", "type": "backup"}, "event": "BLOCK_JOB_PENDING", "timestamp": {"microseconds": "USECS", "seconds": "SECS"}} 2872bd5ceebfSJohn Snow{"data": {"device": "backup_1", "len": 67108864, "offset": 67108864, "speed": 0, "type": "backup"}, "event": "BLOCK_JOB_COMPLETED", "timestamp": {"microseconds": "USECS", "seconds": "SECS"}} 2873bd5ceebfSJohn Snow{ 2874bd5ceebfSJohn Snow "bitmaps": { 28755c4343b8SVladimir Sementsov-Ogievskiy "drive0": [ 2876bd5ceebfSJohn Snow { 2877bd5ceebfSJohn Snow "busy": false, 2878bd5ceebfSJohn Snow "count": 458752, 2879bd5ceebfSJohn Snow "granularity": 65536, 2880bd5ceebfSJohn Snow "name": "bitmap0", 2881bd5ceebfSJohn Snow "persistent": false, 288281cbfd50SDaniel P. Berrangé "recording": true 2883bd5ceebfSJohn Snow } 2884bd5ceebfSJohn Snow ] 2885bd5ceebfSJohn Snow } 2886bd5ceebfSJohn Snow} 2887bd5ceebfSJohn Snow 2888bd5ceebfSJohn Snow= Checking Bitmap bitmap0 = 2889bd5ceebfSJohn Snowexpecting 7 dirty sectors; have 7. OK! 2890bd5ceebfSJohn Snow 2891bd5ceebfSJohn Snow--- Write #3 --- 2892bd5ceebfSJohn Snow 2893bd5ceebfSJohn Snowwrite -P0xaa 0x0010000 0x30000 2894bd5ceebfSJohn Snow{"return": ""} 2895bd5ceebfSJohn Snowwrite -P0xbb 0x00d8000 0x10000 2896bd5ceebfSJohn Snow{"return": ""} 2897bd5ceebfSJohn Snowwrite -P0xcc 0x2028000 0x10000 2898bd5ceebfSJohn Snow{"return": ""} 2899bd5ceebfSJohn Snowwrite -P0xdd 0x3fc0000 0x10000 2900bd5ceebfSJohn Snow{"return": ""} 2901bd5ceebfSJohn Snow{ 2902bd5ceebfSJohn Snow "bitmaps": { 29035c4343b8SVladimir Sementsov-Ogievskiy "drive0": [ 2904bd5ceebfSJohn Snow { 2905bd5ceebfSJohn Snow "busy": false, 2906bd5ceebfSJohn Snow "count": 786432, 2907bd5ceebfSJohn Snow "granularity": 65536, 2908bd5ceebfSJohn Snow "name": "bitmap0", 2909bd5ceebfSJohn Snow "persistent": false, 291081cbfd50SDaniel P. Berrangé "recording": true 2911bd5ceebfSJohn Snow } 2912bd5ceebfSJohn Snow ] 2913bd5ceebfSJohn Snow } 2914bd5ceebfSJohn Snow} 2915bd5ceebfSJohn Snow 2916bd5ceebfSJohn Snow= Checking Bitmap bitmap0 = 2917bd5ceebfSJohn Snowexpecting 12 dirty sectors; have 12. OK! 2918bd5ceebfSJohn Snow 2919bd5ceebfSJohn Snow--- Reference Backup #2 --- 2920bd5ceebfSJohn Snow 2921bd5ceebfSJohn Snow{} 2922bd5ceebfSJohn Snow{"execute": "job-dismiss", "arguments": {"id": "bdc-file-job"}} 2923bd5ceebfSJohn Snow{"return": {}} 2924bd5ceebfSJohn Snow{} 2925bd5ceebfSJohn Snow{} 2926bd5ceebfSJohn Snow{"execute": "job-dismiss", "arguments": {"id": "bdc-fmt-job"}} 2927bd5ceebfSJohn Snow{"return": {}} 2928bd5ceebfSJohn Snow{} 29292d0f32e3SVladimir Sementsov-Ogievskiy{"execute": "blockdev-backup", "arguments": {"device": "drive0", "filter-node-name": "backup-top", "job-id": "ref_backup_2", "sync": "full", "target": "ref_target_2", "x-perf": {"max-workers": 1}}} 2930bd5ceebfSJohn Snow{"return": {}} 2931bd5ceebfSJohn Snow{"data": {"device": "ref_backup_2", "len": 67108864, "offset": 67108864, "speed": 0, "type": "backup"}, "event": "BLOCK_JOB_COMPLETED", "timestamp": {"microseconds": "USECS", "seconds": "SECS"}} 2932bd5ceebfSJohn Snow 2933bd5ceebfSJohn Snow--- Test Backup #2 --- 2934bd5ceebfSJohn Snow 2935bd5ceebfSJohn Snow{} 2936bd5ceebfSJohn Snow{"execute": "job-dismiss", "arguments": {"id": "bdc-file-job"}} 2937bd5ceebfSJohn Snow{"return": {}} 2938bd5ceebfSJohn Snow{} 2939bd5ceebfSJohn Snow{} 2940bd5ceebfSJohn Snow{"execute": "job-dismiss", "arguments": {"id": "bdc-fmt-job"}} 2941bd5ceebfSJohn Snow{"return": {}} 2942bd5ceebfSJohn Snow{} 29432d0f32e3SVladimir Sementsov-Ogievskiy{"execute": "blockdev-backup", "arguments": {"auto-finalize": false, "bitmap": "bitmap0", "bitmap-mode": "on-success", "device": "drive0", "filter-node-name": "backup-top", "job-id": "backup_2", "sync": "bitmap", "target": "backup_target_2", "x-perf": {"max-workers": 1}}} 2944bd5ceebfSJohn Snow{"return": {}} 2945bd5ceebfSJohn Snow{"execute": "job-finalize", "arguments": {"id": "backup_2"}} 2946bd5ceebfSJohn Snow{"return": {}} 2947bd5ceebfSJohn Snow{"data": {"id": "backup_2", "type": "backup"}, "event": "BLOCK_JOB_PENDING", "timestamp": {"microseconds": "USECS", "seconds": "SECS"}} 2948bd5ceebfSJohn Snow{"data": {"device": "backup_2", "len": 786432, "offset": 786432, "speed": 0, "type": "backup"}, "event": "BLOCK_JOB_COMPLETED", "timestamp": {"microseconds": "USECS", "seconds": "SECS"}} 2949bd5ceebfSJohn Snow{ 2950bd5ceebfSJohn Snow "bitmaps": { 29515c4343b8SVladimir Sementsov-Ogievskiy "drive0": [ 2952bd5ceebfSJohn Snow { 2953bd5ceebfSJohn Snow "busy": false, 2954bd5ceebfSJohn Snow "count": 0, 2955bd5ceebfSJohn Snow "granularity": 65536, 2956bd5ceebfSJohn Snow "name": "bitmap0", 2957bd5ceebfSJohn Snow "persistent": false, 295881cbfd50SDaniel P. Berrangé "recording": true 2959bd5ceebfSJohn Snow } 2960bd5ceebfSJohn Snow ] 2961bd5ceebfSJohn Snow } 2962bd5ceebfSJohn Snow} 2963bd5ceebfSJohn Snow 2964bd5ceebfSJohn Snow= Checking Bitmap bitmap0 = 2965bd5ceebfSJohn Snowexpecting 0 dirty sectors; have 0. OK! 2966bd5ceebfSJohn Snow 2967bd5ceebfSJohn Snow--- Cleanup --- 2968bd5ceebfSJohn Snow 2969bd5ceebfSJohn Snow{"execute": "block-dirty-bitmap-remove", "arguments": {"name": "bitmap0", "node": "drive0"}} 2970bd5ceebfSJohn Snow{"return": {}} 2971bd5ceebfSJohn Snow{ 29725c4343b8SVladimir Sementsov-Ogievskiy "bitmaps": {} 2973bd5ceebfSJohn Snow} 2974bd5ceebfSJohn Snow 2975bd5ceebfSJohn Snow--- Verification --- 2976bd5ceebfSJohn Snow 2977bd5ceebfSJohn Snowqemu_img compare "TEST_DIR/PID-bsync1" "TEST_DIR/PID-fbackup1" ==> Identical, OK! 2978bd5ceebfSJohn Snowqemu_img compare "TEST_DIR/PID-bsync2" "TEST_DIR/PID-fbackup2" ==> Identical, OK! 2979bd5ceebfSJohn Snowqemu_img compare "TEST_DIR/PID-img" "TEST_DIR/PID-fbackup2" ==> Identical, OK! 2980bd5ceebfSJohn Snow 2981bd5ceebfSJohn Snow 2982bd5ceebfSJohn Snow=== Mode full; Bitmap Sync always with simulated failure === 2983bd5ceebfSJohn Snow 2984bd5ceebfSJohn Snow--- Preparing image & VM --- 2985bd5ceebfSJohn Snow 2986bd5ceebfSJohn Snow{"execute": "blockdev-add", "arguments": {"driver": "qcow2", "file": {"driver": "file", "filename": "TEST_DIR/PID-img"}, "node-name": "drive0"}} 2987bd5ceebfSJohn Snow{"return": {}} 2988bd5ceebfSJohn Snow 2989bd5ceebfSJohn Snow--- Write #0 --- 2990bd5ceebfSJohn Snow 2991bd5ceebfSJohn Snowwrite -P0x49 0x0000000 0x10000 2992bd5ceebfSJohn Snow{"return": ""} 2993bd5ceebfSJohn Snowwrite -P0x6c 0x0100000 0x10000 2994bd5ceebfSJohn Snow{"return": ""} 2995bd5ceebfSJohn Snowwrite -P0x6f 0x2000000 0x10000 2996bd5ceebfSJohn Snow{"return": ""} 2997bd5ceebfSJohn Snowwrite -P0x76 0x3ff0000 0x10000 2998bd5ceebfSJohn Snow{"return": ""} 2999bd5ceebfSJohn Snow{ 30005c4343b8SVladimir Sementsov-Ogievskiy "bitmaps": {} 3001bd5ceebfSJohn Snow} 3002bd5ceebfSJohn Snow 3003bd5ceebfSJohn Snow--- Reference Backup #0 --- 3004bd5ceebfSJohn Snow 3005bd5ceebfSJohn Snow{} 3006bd5ceebfSJohn Snow{"execute": "job-dismiss", "arguments": {"id": "bdc-file-job"}} 3007bd5ceebfSJohn Snow{"return": {}} 3008bd5ceebfSJohn Snow{} 3009bd5ceebfSJohn Snow{} 3010bd5ceebfSJohn Snow{"execute": "job-dismiss", "arguments": {"id": "bdc-fmt-job"}} 3011bd5ceebfSJohn Snow{"return": {}} 3012bd5ceebfSJohn Snow{} 30132d0f32e3SVladimir Sementsov-Ogievskiy{"execute": "blockdev-backup", "arguments": {"device": "drive0", "filter-node-name": "backup-top", "job-id": "ref_backup_0", "sync": "full", "target": "ref_target_0", "x-perf": {"max-workers": 1}}} 3014bd5ceebfSJohn Snow{"return": {}} 3015bd5ceebfSJohn Snow{"data": {"device": "ref_backup_0", "len": 67108864, "offset": 67108864, "speed": 0, "type": "backup"}, "event": "BLOCK_JOB_COMPLETED", "timestamp": {"microseconds": "USECS", "seconds": "SECS"}} 3016bd5ceebfSJohn Snow 3017bd5ceebfSJohn Snow--- Add Bitmap --- 3018bd5ceebfSJohn Snow 3019bd5ceebfSJohn Snow{"execute": "block-dirty-bitmap-add", "arguments": {"granularity": 65536, "name": "bitmap0", "node": "drive0"}} 3020bd5ceebfSJohn Snow{"return": {}} 3021bd5ceebfSJohn Snow 3022bd5ceebfSJohn Snow--- Write #1 --- 3023bd5ceebfSJohn Snow 3024bd5ceebfSJohn Snowwrite -P0x65 0x0000000 0x10000 3025bd5ceebfSJohn Snow{"return": ""} 3026bd5ceebfSJohn Snowwrite -P0x77 0x00f8000 0x10000 3027bd5ceebfSJohn Snow{"return": ""} 3028bd5ceebfSJohn Snowwrite -P0x72 0x2008000 0x10000 3029bd5ceebfSJohn Snow{"return": ""} 3030bd5ceebfSJohn Snowwrite -P0x69 0x3fe0000 0x10000 3031bd5ceebfSJohn Snow{"return": ""} 3032bd5ceebfSJohn Snow{ 3033bd5ceebfSJohn Snow "bitmaps": { 30345c4343b8SVladimir Sementsov-Ogievskiy "drive0": [ 3035bd5ceebfSJohn Snow { 3036bd5ceebfSJohn Snow "busy": false, 3037bd5ceebfSJohn Snow "count": 393216, 3038bd5ceebfSJohn Snow "granularity": 65536, 3039bd5ceebfSJohn Snow "name": "bitmap0", 3040bd5ceebfSJohn Snow "persistent": false, 304181cbfd50SDaniel P. Berrangé "recording": true 3042bd5ceebfSJohn Snow } 3043bd5ceebfSJohn Snow ] 3044bd5ceebfSJohn Snow } 3045bd5ceebfSJohn Snow} 3046bd5ceebfSJohn Snow 3047bd5ceebfSJohn Snow= Checking Bitmap bitmap0 = 3048bd5ceebfSJohn Snowexpecting 6 dirty sectors; have 6. OK! 3049bd5ceebfSJohn Snow 3050bd5ceebfSJohn Snow--- Reference Backup #1 --- 3051bd5ceebfSJohn Snow 3052bd5ceebfSJohn Snow{} 3053bd5ceebfSJohn Snow{"execute": "job-dismiss", "arguments": {"id": "bdc-file-job"}} 3054bd5ceebfSJohn Snow{"return": {}} 3055bd5ceebfSJohn Snow{} 3056bd5ceebfSJohn Snow{} 3057bd5ceebfSJohn Snow{"execute": "job-dismiss", "arguments": {"id": "bdc-fmt-job"}} 3058bd5ceebfSJohn Snow{"return": {}} 3059bd5ceebfSJohn Snow{} 30602d0f32e3SVladimir Sementsov-Ogievskiy{"execute": "blockdev-backup", "arguments": {"device": "drive0", "filter-node-name": "backup-top", "job-id": "ref_backup_1", "sync": "full", "target": "ref_target_1", "x-perf": {"max-workers": 1}}} 3061bd5ceebfSJohn Snow{"return": {}} 3062bd5ceebfSJohn Snow{"data": {"device": "ref_backup_1", "len": 67108864, "offset": 67108864, "speed": 0, "type": "backup"}, "event": "BLOCK_JOB_COMPLETED", "timestamp": {"microseconds": "USECS", "seconds": "SECS"}} 3063bd5ceebfSJohn Snow 3064bd5ceebfSJohn Snow--- Test Backup #1 --- 3065bd5ceebfSJohn Snow 3066bd5ceebfSJohn Snow{} 3067bd5ceebfSJohn Snow{"execute": "job-dismiss", "arguments": {"id": "bdc-file-job"}} 3068bd5ceebfSJohn Snow{"return": {}} 3069bd5ceebfSJohn Snow{} 3070bd5ceebfSJohn Snow{} 3071bd5ceebfSJohn Snow{"execute": "job-dismiss", "arguments": {"id": "bdc-fmt-job"}} 3072bd5ceebfSJohn Snow{"return": {}} 3073bd5ceebfSJohn Snow{} 30742d0f32e3SVladimir Sementsov-Ogievskiy{"execute": "blockdev-backup", "arguments": {"auto-finalize": false, "bitmap": "bitmap0", "bitmap-mode": "always", "device": "drive0", "filter-node-name": "backup-top", "job-id": "backup_1", "sync": "full", "target": "backup_target_1", "x-perf": {"max-workers": 1}}} 3075bd5ceebfSJohn Snow{"return": {}} 3076bd5ceebfSJohn Snow 3077bd5ceebfSJohn Snow--- Write #2 --- 3078bd5ceebfSJohn Snow 3079bd5ceebfSJohn Snowwrite -P0x74 0x0010000 0x10000 3080bd5ceebfSJohn Snow{"return": ""} 3081bd5ceebfSJohn Snowwrite -P0x69 0x00e8000 0x10000 3082bd5ceebfSJohn Snow{"return": ""} 3083bd5ceebfSJohn Snowwrite -P0x6e 0x2018000 0x10000 3084bd5ceebfSJohn Snow{"return": ""} 3085bd5ceebfSJohn Snowwrite -P0x67 0x3fe0000 0x20000 3086bd5ceebfSJohn Snow{"return": ""} 3087bd5ceebfSJohn Snow{ 3088bd5ceebfSJohn Snow "bitmaps": { 3089af5bcd77SVladimir Sementsov-Ogievskiy "backup-top": [ 3090af5bcd77SVladimir Sementsov-Ogievskiy { 3091af5bcd77SVladimir Sementsov-Ogievskiy "busy": false, 3092af5bcd77SVladimir Sementsov-Ogievskiy "count": 67108864, 3093af5bcd77SVladimir Sementsov-Ogievskiy "granularity": 65536, 3094af5bcd77SVladimir Sementsov-Ogievskiy "persistent": false, 3095af5bcd77SVladimir Sementsov-Ogievskiy "recording": false 3096af5bcd77SVladimir Sementsov-Ogievskiy }, 3097af5bcd77SVladimir Sementsov-Ogievskiy { 3098af5bcd77SVladimir Sementsov-Ogievskiy "busy": false, 3099af5bcd77SVladimir Sementsov-Ogievskiy "count": 458752, 3100af5bcd77SVladimir Sementsov-Ogievskiy "granularity": 65536, 3101af5bcd77SVladimir Sementsov-Ogievskiy "persistent": false, 3102af5bcd77SVladimir Sementsov-Ogievskiy "recording": false 3103*006e845bSVladimir Sementsov-Ogievskiy }, 3104bd5ceebfSJohn Snow { 3105bd5ceebfSJohn Snow "busy": false, 3106bd5ceebfSJohn Snow "count": 0, 3107bd5ceebfSJohn Snow "granularity": 65536, 3108bd5ceebfSJohn Snow "persistent": false, 310981cbfd50SDaniel P. Berrangé "recording": false 3110*006e845bSVladimir Sementsov-Ogievskiy } 3111*006e845bSVladimir Sementsov-Ogievskiy ], 3112*006e845bSVladimir Sementsov-Ogievskiy "drive0": [ 3113bd5ceebfSJohn Snow { 3114bd5ceebfSJohn Snow "busy": false, 3115bd5ceebfSJohn Snow "count": 458752, 3116bd5ceebfSJohn Snow "granularity": 65536, 3117bd5ceebfSJohn Snow "persistent": false, 311881cbfd50SDaniel P. Berrangé "recording": true 3119bd5ceebfSJohn Snow }, 3120bd5ceebfSJohn Snow { 3121bd5ceebfSJohn Snow "busy": true, 3122bd5ceebfSJohn Snow "count": 393216, 3123bd5ceebfSJohn Snow "granularity": 65536, 3124bd5ceebfSJohn Snow "name": "bitmap0", 3125bd5ceebfSJohn Snow "persistent": false, 312681cbfd50SDaniel P. Berrangé "recording": true 3127bd5ceebfSJohn Snow } 3128bd5ceebfSJohn Snow ] 3129bd5ceebfSJohn Snow } 3130bd5ceebfSJohn Snow} 3131bd5ceebfSJohn Snow 3132bd5ceebfSJohn Snow= Checking Bitmap bitmap0 = 3133bd5ceebfSJohn Snowexpecting 6 dirty sectors; have 6. OK! 3134bd5ceebfSJohn Snow 3135bd5ceebfSJohn Snow= Checking Bitmap (anonymous) = 3136bd5ceebfSJohn Snowexpecting 7 dirty sectors; have 7. OK! 3137bd5ceebfSJohn Snow 3138bd5ceebfSJohn Snow{"execute": "job-cancel", "arguments": {"id": "backup_1"}} 3139bd5ceebfSJohn Snow{"return": {}} 3140bd5ceebfSJohn Snow{"data": {"id": "backup_1", "type": "backup"}, "event": "BLOCK_JOB_PENDING", "timestamp": {"microseconds": "USECS", "seconds": "SECS"}} 3141bd5ceebfSJohn Snow{"data": {"device": "backup_1", "len": 67108864, "offset": 67108864, "speed": 0, "type": "backup"}, "event": "BLOCK_JOB_CANCELLED", "timestamp": {"microseconds": "USECS", "seconds": "SECS"}} 3142bd5ceebfSJohn Snow{ 3143bd5ceebfSJohn Snow "bitmaps": { 31445c4343b8SVladimir Sementsov-Ogievskiy "drive0": [ 3145bd5ceebfSJohn Snow { 3146bd5ceebfSJohn Snow "busy": false, 3147bd5ceebfSJohn Snow "count": 458752, 3148bd5ceebfSJohn Snow "granularity": 65536, 3149bd5ceebfSJohn Snow "name": "bitmap0", 3150bd5ceebfSJohn Snow "persistent": false, 315181cbfd50SDaniel P. Berrangé "recording": true 3152bd5ceebfSJohn Snow } 3153bd5ceebfSJohn Snow ] 3154bd5ceebfSJohn Snow } 3155bd5ceebfSJohn Snow} 3156bd5ceebfSJohn Snow 3157bd5ceebfSJohn Snow= Checking Bitmap bitmap0 = 3158bd5ceebfSJohn Snowexpecting 7 dirty sectors; have 7. OK! 3159bd5ceebfSJohn Snow 3160bd5ceebfSJohn Snow--- Write #3 --- 3161bd5ceebfSJohn Snow 3162bd5ceebfSJohn Snowwrite -P0xaa 0x0010000 0x30000 3163bd5ceebfSJohn Snow{"return": ""} 3164bd5ceebfSJohn Snowwrite -P0xbb 0x00d8000 0x10000 3165bd5ceebfSJohn Snow{"return": ""} 3166bd5ceebfSJohn Snowwrite -P0xcc 0x2028000 0x10000 3167bd5ceebfSJohn Snow{"return": ""} 3168bd5ceebfSJohn Snowwrite -P0xdd 0x3fc0000 0x10000 3169bd5ceebfSJohn Snow{"return": ""} 3170bd5ceebfSJohn Snow{ 3171bd5ceebfSJohn Snow "bitmaps": { 31725c4343b8SVladimir Sementsov-Ogievskiy "drive0": [ 3173bd5ceebfSJohn Snow { 3174bd5ceebfSJohn Snow "busy": false, 3175bd5ceebfSJohn Snow "count": 786432, 3176bd5ceebfSJohn Snow "granularity": 65536, 3177bd5ceebfSJohn Snow "name": "bitmap0", 3178bd5ceebfSJohn Snow "persistent": false, 317981cbfd50SDaniel P. Berrangé "recording": true 3180bd5ceebfSJohn Snow } 3181bd5ceebfSJohn Snow ] 3182bd5ceebfSJohn Snow } 3183bd5ceebfSJohn Snow} 3184bd5ceebfSJohn Snow 3185bd5ceebfSJohn Snow= Checking Bitmap bitmap0 = 3186bd5ceebfSJohn Snowexpecting 12 dirty sectors; have 12. OK! 3187bd5ceebfSJohn Snow 3188bd5ceebfSJohn Snow--- Reference Backup #2 --- 3189bd5ceebfSJohn Snow 3190bd5ceebfSJohn Snow{} 3191bd5ceebfSJohn Snow{"execute": "job-dismiss", "arguments": {"id": "bdc-file-job"}} 3192bd5ceebfSJohn Snow{"return": {}} 3193bd5ceebfSJohn Snow{} 3194bd5ceebfSJohn Snow{} 3195bd5ceebfSJohn Snow{"execute": "job-dismiss", "arguments": {"id": "bdc-fmt-job"}} 3196bd5ceebfSJohn Snow{"return": {}} 3197bd5ceebfSJohn Snow{} 31982d0f32e3SVladimir Sementsov-Ogievskiy{"execute": "blockdev-backup", "arguments": {"device": "drive0", "filter-node-name": "backup-top", "job-id": "ref_backup_2", "sync": "full", "target": "ref_target_2", "x-perf": {"max-workers": 1}}} 3199bd5ceebfSJohn Snow{"return": {}} 3200bd5ceebfSJohn Snow{"data": {"device": "ref_backup_2", "len": 67108864, "offset": 67108864, "speed": 0, "type": "backup"}, "event": "BLOCK_JOB_COMPLETED", "timestamp": {"microseconds": "USECS", "seconds": "SECS"}} 3201bd5ceebfSJohn Snow 3202bd5ceebfSJohn Snow--- Test Backup #2 --- 3203bd5ceebfSJohn Snow 3204bd5ceebfSJohn Snow{} 3205bd5ceebfSJohn Snow{"execute": "job-dismiss", "arguments": {"id": "bdc-file-job"}} 3206bd5ceebfSJohn Snow{"return": {}} 3207bd5ceebfSJohn Snow{} 3208bd5ceebfSJohn Snow{} 3209bd5ceebfSJohn Snow{"execute": "job-dismiss", "arguments": {"id": "bdc-fmt-job"}} 3210bd5ceebfSJohn Snow{"return": {}} 3211bd5ceebfSJohn Snow{} 32122d0f32e3SVladimir Sementsov-Ogievskiy{"execute": "blockdev-backup", "arguments": {"auto-finalize": false, "bitmap": "bitmap0", "bitmap-mode": "always", "device": "drive0", "filter-node-name": "backup-top", "job-id": "backup_2", "sync": "bitmap", "target": "backup_target_2", "x-perf": {"max-workers": 1}}} 3213bd5ceebfSJohn Snow{"return": {}} 3214bd5ceebfSJohn Snow{"execute": "job-finalize", "arguments": {"id": "backup_2"}} 3215bd5ceebfSJohn Snow{"return": {}} 3216bd5ceebfSJohn Snow{"data": {"id": "backup_2", "type": "backup"}, "event": "BLOCK_JOB_PENDING", "timestamp": {"microseconds": "USECS", "seconds": "SECS"}} 3217bd5ceebfSJohn Snow{"data": {"device": "backup_2", "len": 786432, "offset": 786432, "speed": 0, "type": "backup"}, "event": "BLOCK_JOB_COMPLETED", "timestamp": {"microseconds": "USECS", "seconds": "SECS"}} 3218bd5ceebfSJohn Snow{ 3219bd5ceebfSJohn Snow "bitmaps": { 32205c4343b8SVladimir Sementsov-Ogievskiy "drive0": [ 3221bd5ceebfSJohn Snow { 3222bd5ceebfSJohn Snow "busy": false, 3223bd5ceebfSJohn Snow "count": 0, 3224bd5ceebfSJohn Snow "granularity": 65536, 3225bd5ceebfSJohn Snow "name": "bitmap0", 3226bd5ceebfSJohn Snow "persistent": false, 322781cbfd50SDaniel P. Berrangé "recording": true 3228bd5ceebfSJohn Snow } 3229bd5ceebfSJohn Snow ] 3230bd5ceebfSJohn Snow } 3231bd5ceebfSJohn Snow} 3232bd5ceebfSJohn Snow 3233bd5ceebfSJohn Snow= Checking Bitmap bitmap0 = 3234bd5ceebfSJohn Snowexpecting 0 dirty sectors; have 0. OK! 3235bd5ceebfSJohn Snow 3236bd5ceebfSJohn Snow--- Cleanup --- 3237bd5ceebfSJohn Snow 3238bd5ceebfSJohn Snow{"execute": "block-dirty-bitmap-remove", "arguments": {"name": "bitmap0", "node": "drive0"}} 3239bd5ceebfSJohn Snow{"return": {}} 3240bd5ceebfSJohn Snow{ 32415c4343b8SVladimir Sementsov-Ogievskiy "bitmaps": {} 3242bd5ceebfSJohn Snow} 3243bd5ceebfSJohn Snow 3244bd5ceebfSJohn Snow--- Verification --- 3245bd5ceebfSJohn Snow 3246bd5ceebfSJohn Snowqemu_img compare "TEST_DIR/PID-bsync1" "TEST_DIR/PID-fbackup1" ==> Identical, OK! 3247bd5ceebfSJohn Snowqemu_img compare "TEST_DIR/PID-bsync2" "TEST_DIR/PID-fbackup2" ==> Identical, OK! 3248bd5ceebfSJohn Snowqemu_img compare "TEST_DIR/PID-img" "TEST_DIR/PID-fbackup2" ==> Identical, OK! 3249bd5ceebfSJohn Snow 3250bd5ceebfSJohn Snow 3251bd5ceebfSJohn Snow=== Mode full; Bitmap Sync always with intermediate failure === 3252bd5ceebfSJohn Snow 3253bd5ceebfSJohn Snow--- Preparing image & VM --- 3254bd5ceebfSJohn Snow 3255bd5ceebfSJohn Snow{"execute": "blockdev-add", "arguments": {"driver": "qcow2", "file": {"driver": "blkdebug", "image": {"driver": "file", "filename": "TEST_DIR/PID-img"}, "inject-error": [{"errno": 5, "event": "read_aio", "immediately": false, "once": true, "state": 3}], "set-state": [{"event": "flush_to_disk", "new-state": 2, "state": 1}, {"event": "read_aio", "new-state": 3, "state": 2}]}, "node-name": "drive0"}} 3256bd5ceebfSJohn Snow{"return": {}} 3257bd5ceebfSJohn Snow 3258bd5ceebfSJohn Snow--- Write #0 --- 3259bd5ceebfSJohn Snow 3260bd5ceebfSJohn Snowwrite -P0x49 0x0000000 0x10000 3261bd5ceebfSJohn Snow{"return": ""} 3262bd5ceebfSJohn Snowwrite -P0x6c 0x0100000 0x10000 3263bd5ceebfSJohn Snow{"return": ""} 3264bd5ceebfSJohn Snowwrite -P0x6f 0x2000000 0x10000 3265bd5ceebfSJohn Snow{"return": ""} 3266bd5ceebfSJohn Snowwrite -P0x76 0x3ff0000 0x10000 3267bd5ceebfSJohn Snow{"return": ""} 3268bd5ceebfSJohn Snow{ 32695c4343b8SVladimir Sementsov-Ogievskiy "bitmaps": {} 3270bd5ceebfSJohn Snow} 3271bd5ceebfSJohn Snow 3272bd5ceebfSJohn Snow--- Reference Backup #0 --- 3273bd5ceebfSJohn Snow 3274bd5ceebfSJohn Snow{} 3275bd5ceebfSJohn Snow{"execute": "job-dismiss", "arguments": {"id": "bdc-file-job"}} 3276bd5ceebfSJohn Snow{"return": {}} 3277bd5ceebfSJohn Snow{} 3278bd5ceebfSJohn Snow{} 3279bd5ceebfSJohn Snow{"execute": "job-dismiss", "arguments": {"id": "bdc-fmt-job"}} 3280bd5ceebfSJohn Snow{"return": {}} 3281bd5ceebfSJohn Snow{} 32822d0f32e3SVladimir Sementsov-Ogievskiy{"execute": "blockdev-backup", "arguments": {"device": "drive0", "filter-node-name": "backup-top", "job-id": "ref_backup_0", "sync": "full", "target": "ref_target_0", "x-perf": {"max-workers": 1}}} 3283bd5ceebfSJohn Snow{"return": {}} 3284bd5ceebfSJohn Snow{"data": {"device": "ref_backup_0", "len": 67108864, "offset": 67108864, "speed": 0, "type": "backup"}, "event": "BLOCK_JOB_COMPLETED", "timestamp": {"microseconds": "USECS", "seconds": "SECS"}} 3285bd5ceebfSJohn Snow 3286bd5ceebfSJohn Snow--- Add Bitmap --- 3287bd5ceebfSJohn Snow 3288bd5ceebfSJohn Snow{"execute": "block-dirty-bitmap-add", "arguments": {"granularity": 65536, "name": "bitmap0", "node": "drive0"}} 3289bd5ceebfSJohn Snow{"return": {}} 3290bd5ceebfSJohn Snow 3291bd5ceebfSJohn Snow--- Write #1 --- 3292bd5ceebfSJohn Snow 3293bd5ceebfSJohn Snowwrite -P0x65 0x0000000 0x10000 3294bd5ceebfSJohn Snow{"return": ""} 3295bd5ceebfSJohn Snowwrite -P0x77 0x00f8000 0x10000 3296bd5ceebfSJohn Snow{"return": ""} 3297bd5ceebfSJohn Snowwrite -P0x72 0x2008000 0x10000 3298bd5ceebfSJohn Snow{"return": ""} 3299bd5ceebfSJohn Snowwrite -P0x69 0x3fe0000 0x10000 3300bd5ceebfSJohn Snow{"return": ""} 3301bd5ceebfSJohn Snow{ 3302bd5ceebfSJohn Snow "bitmaps": { 33035c4343b8SVladimir Sementsov-Ogievskiy "drive0": [ 3304bd5ceebfSJohn Snow { 3305bd5ceebfSJohn Snow "busy": false, 3306bd5ceebfSJohn Snow "count": 393216, 3307bd5ceebfSJohn Snow "granularity": 65536, 3308bd5ceebfSJohn Snow "name": "bitmap0", 3309bd5ceebfSJohn Snow "persistent": false, 331081cbfd50SDaniel P. Berrangé "recording": true 3311bd5ceebfSJohn Snow } 3312bd5ceebfSJohn Snow ] 3313bd5ceebfSJohn Snow } 3314bd5ceebfSJohn Snow} 3315bd5ceebfSJohn Snow 3316bd5ceebfSJohn Snow= Checking Bitmap bitmap0 = 3317bd5ceebfSJohn Snowexpecting 6 dirty sectors; have 6. OK! 3318bd5ceebfSJohn Snow 3319bd5ceebfSJohn Snow--- Reference Backup #1 --- 3320bd5ceebfSJohn Snow 3321bd5ceebfSJohn Snow{} 3322bd5ceebfSJohn Snow{"execute": "job-dismiss", "arguments": {"id": "bdc-file-job"}} 3323bd5ceebfSJohn Snow{"return": {}} 3324bd5ceebfSJohn Snow{} 3325bd5ceebfSJohn Snow{} 3326bd5ceebfSJohn Snow{"execute": "job-dismiss", "arguments": {"id": "bdc-fmt-job"}} 3327bd5ceebfSJohn Snow{"return": {}} 3328bd5ceebfSJohn Snow{} 33292d0f32e3SVladimir Sementsov-Ogievskiy{"execute": "blockdev-backup", "arguments": {"device": "drive0", "filter-node-name": "backup-top", "job-id": "ref_backup_1", "sync": "full", "target": "ref_target_1", "x-perf": {"max-workers": 1}}} 3330bd5ceebfSJohn Snow{"return": {}} 3331bd5ceebfSJohn Snow{"data": {"device": "ref_backup_1", "len": 67108864, "offset": 67108864, "speed": 0, "type": "backup"}, "event": "BLOCK_JOB_COMPLETED", "timestamp": {"microseconds": "USECS", "seconds": "SECS"}} 3332bd5ceebfSJohn Snow 3333bd5ceebfSJohn Snow{"return": ""} 3334bd5ceebfSJohn Snow 3335bd5ceebfSJohn Snow--- Test Backup #1 --- 3336bd5ceebfSJohn Snow 3337bd5ceebfSJohn Snow{} 3338bd5ceebfSJohn Snow{"execute": "job-dismiss", "arguments": {"id": "bdc-file-job"}} 3339bd5ceebfSJohn Snow{"return": {}} 3340bd5ceebfSJohn Snow{} 3341bd5ceebfSJohn Snow{} 3342bd5ceebfSJohn Snow{"execute": "job-dismiss", "arguments": {"id": "bdc-fmt-job"}} 3343bd5ceebfSJohn Snow{"return": {}} 3344bd5ceebfSJohn Snow{} 33452d0f32e3SVladimir Sementsov-Ogievskiy{"execute": "blockdev-backup", "arguments": {"auto-finalize": false, "bitmap": "bitmap0", "bitmap-mode": "always", "device": "drive0", "filter-node-name": "backup-top", "job-id": "backup_1", "sync": "full", "target": "backup_target_1", "x-perf": {"max-workers": 1}}} 3346bd5ceebfSJohn Snow{"return": {}} 3347bd5ceebfSJohn Snow{"data": {"action": "report", "device": "backup_1", "operation": "read"}, "event": "BLOCK_JOB_ERROR", "timestamp": {"microseconds": "USECS", "seconds": "SECS"}} 3348bd5ceebfSJohn Snow{"data": {"device": "backup_1", "error": "Input/output error", "len": 67108864, "offset": 983040, "speed": 0, "type": "backup"}, "event": "BLOCK_JOB_COMPLETED", "timestamp": {"microseconds": "USECS", "seconds": "SECS"}} 3349bd5ceebfSJohn Snow{ 3350bd5ceebfSJohn Snow "bitmaps": { 33515c4343b8SVladimir Sementsov-Ogievskiy "drive0": [ 3352bd5ceebfSJohn Snow { 3353bd5ceebfSJohn Snow "busy": false, 3354bd5ceebfSJohn Snow "count": 66125824, 3355bd5ceebfSJohn Snow "granularity": 65536, 3356bd5ceebfSJohn Snow "name": "bitmap0", 3357bd5ceebfSJohn Snow "persistent": false, 335881cbfd50SDaniel P. Berrangé "recording": true 3359bd5ceebfSJohn Snow } 3360bd5ceebfSJohn Snow ] 3361bd5ceebfSJohn Snow } 3362bd5ceebfSJohn Snow} 3363bd5ceebfSJohn Snow 3364bd5ceebfSJohn Snow= Checking Bitmap bitmap0 = 3365bd5ceebfSJohn Snowexpecting 1009 dirty sectors; have 1009. OK! 3366bd5ceebfSJohn Snow 3367bd5ceebfSJohn Snow--- Write #3 --- 3368bd5ceebfSJohn Snow 3369bd5ceebfSJohn Snowwrite -P0xaa 0x0010000 0x30000 3370bd5ceebfSJohn Snow{"return": ""} 3371bd5ceebfSJohn Snowwrite -P0xbb 0x00d8000 0x10000 3372bd5ceebfSJohn Snow{"return": ""} 3373bd5ceebfSJohn Snowwrite -P0xcc 0x2028000 0x10000 3374bd5ceebfSJohn Snow{"return": ""} 3375bd5ceebfSJohn Snowwrite -P0xdd 0x3fc0000 0x10000 3376bd5ceebfSJohn Snow{"return": ""} 3377bd5ceebfSJohn Snow{ 3378bd5ceebfSJohn Snow "bitmaps": { 33795c4343b8SVladimir Sementsov-Ogievskiy "drive0": [ 3380bd5ceebfSJohn Snow { 3381bd5ceebfSJohn Snow "busy": false, 3382bd5ceebfSJohn Snow "count": 66453504, 3383bd5ceebfSJohn Snow "granularity": 65536, 3384bd5ceebfSJohn Snow "name": "bitmap0", 3385bd5ceebfSJohn Snow "persistent": false, 338681cbfd50SDaniel P. Berrangé "recording": true 3387bd5ceebfSJohn Snow } 3388bd5ceebfSJohn Snow ] 3389bd5ceebfSJohn Snow } 3390bd5ceebfSJohn Snow} 3391bd5ceebfSJohn Snow 3392bd5ceebfSJohn Snow= Checking Bitmap bitmap0 = 3393bd5ceebfSJohn Snowexpecting 1014 dirty sectors; have 1014. OK! 3394bd5ceebfSJohn Snow 3395bd5ceebfSJohn Snow--- Reference Backup #2 --- 3396bd5ceebfSJohn Snow 3397bd5ceebfSJohn Snow{} 3398bd5ceebfSJohn Snow{"execute": "job-dismiss", "arguments": {"id": "bdc-file-job"}} 3399bd5ceebfSJohn Snow{"return": {}} 3400bd5ceebfSJohn Snow{} 3401bd5ceebfSJohn Snow{} 3402bd5ceebfSJohn Snow{"execute": "job-dismiss", "arguments": {"id": "bdc-fmt-job"}} 3403bd5ceebfSJohn Snow{"return": {}} 3404bd5ceebfSJohn Snow{} 34052d0f32e3SVladimir Sementsov-Ogievskiy{"execute": "blockdev-backup", "arguments": {"device": "drive0", "filter-node-name": "backup-top", "job-id": "ref_backup_2", "sync": "full", "target": "ref_target_2", "x-perf": {"max-workers": 1}}} 3406bd5ceebfSJohn Snow{"return": {}} 3407bd5ceebfSJohn Snow{"data": {"device": "ref_backup_2", "len": 67108864, "offset": 67108864, "speed": 0, "type": "backup"}, "event": "BLOCK_JOB_COMPLETED", "timestamp": {"microseconds": "USECS", "seconds": "SECS"}} 3408bd5ceebfSJohn Snow 3409bd5ceebfSJohn Snow--- Test Backup #2 --- 3410bd5ceebfSJohn Snow 3411bd5ceebfSJohn Snow{} 3412bd5ceebfSJohn Snow{"execute": "job-dismiss", "arguments": {"id": "bdc-file-job"}} 3413bd5ceebfSJohn Snow{"return": {}} 3414bd5ceebfSJohn Snow{} 3415bd5ceebfSJohn Snow{} 3416bd5ceebfSJohn Snow{"execute": "job-dismiss", "arguments": {"id": "bdc-fmt-job"}} 3417bd5ceebfSJohn Snow{"return": {}} 3418bd5ceebfSJohn Snow{} 34192d0f32e3SVladimir Sementsov-Ogievskiy{"execute": "blockdev-backup", "arguments": {"auto-finalize": false, "bitmap": "bitmap0", "bitmap-mode": "always", "device": "drive0", "filter-node-name": "backup-top", "job-id": "backup_2", "sync": "bitmap", "target": "backup_target_2", "x-perf": {"max-workers": 1}}} 3420bd5ceebfSJohn Snow{"return": {}} 3421bd5ceebfSJohn Snow{"execute": "job-finalize", "arguments": {"id": "backup_2"}} 3422bd5ceebfSJohn Snow{"return": {}} 3423bd5ceebfSJohn Snow{"data": {"id": "backup_2", "type": "backup"}, "event": "BLOCK_JOB_PENDING", "timestamp": {"microseconds": "USECS", "seconds": "SECS"}} 3424bd5ceebfSJohn Snow{"data": {"device": "backup_2", "len": 66453504, "offset": 66453504, "speed": 0, "type": "backup"}, "event": "BLOCK_JOB_COMPLETED", "timestamp": {"microseconds": "USECS", "seconds": "SECS"}} 3425bd5ceebfSJohn Snow{ 3426bd5ceebfSJohn Snow "bitmaps": { 34275c4343b8SVladimir Sementsov-Ogievskiy "drive0": [ 3428bd5ceebfSJohn Snow { 3429bd5ceebfSJohn Snow "busy": false, 3430bd5ceebfSJohn Snow "count": 0, 3431bd5ceebfSJohn Snow "granularity": 65536, 3432bd5ceebfSJohn Snow "name": "bitmap0", 3433bd5ceebfSJohn Snow "persistent": false, 343481cbfd50SDaniel P. Berrangé "recording": true 3435bd5ceebfSJohn Snow } 3436bd5ceebfSJohn Snow ] 3437bd5ceebfSJohn Snow } 3438bd5ceebfSJohn Snow} 3439bd5ceebfSJohn Snow 3440bd5ceebfSJohn Snow= Checking Bitmap bitmap0 = 3441bd5ceebfSJohn Snowexpecting 0 dirty sectors; have 0. OK! 3442bd5ceebfSJohn Snow 3443bd5ceebfSJohn Snow--- Cleanup --- 3444bd5ceebfSJohn Snow 3445bd5ceebfSJohn Snow{"execute": "block-dirty-bitmap-remove", "arguments": {"name": "bitmap0", "node": "drive0"}} 3446bd5ceebfSJohn Snow{"return": {}} 3447bd5ceebfSJohn Snow{ 34485c4343b8SVladimir Sementsov-Ogievskiy "bitmaps": {} 3449bd5ceebfSJohn Snow} 3450bd5ceebfSJohn Snow 3451bd5ceebfSJohn Snow--- Verification --- 3452bd5ceebfSJohn Snow 3453bd5ceebfSJohn Snowqemu_img compare "TEST_DIR/PID-bsync1" "TEST_DIR/PID-fbackup1" ==> Mismatch, OK! 3454bd5ceebfSJohn Snowqemu_img compare "TEST_DIR/PID-bsync2" "TEST_DIR/PID-fbackup2" ==> Identical, OK! 3455bd5ceebfSJohn Snowqemu_img compare "TEST_DIR/PID-img" "TEST_DIR/PID-fbackup2" ==> Identical, OK! 3456bd5ceebfSJohn Snow 3457bd5ceebfSJohn Snow 3458bd5ceebfSJohn Snow=== Mode full; Bitmap Sync always without failure === 3459bd5ceebfSJohn Snow 3460bd5ceebfSJohn Snow--- Preparing image & VM --- 3461bd5ceebfSJohn Snow 3462bd5ceebfSJohn Snow{"execute": "blockdev-add", "arguments": {"driver": "qcow2", "file": {"driver": "file", "filename": "TEST_DIR/PID-img"}, "node-name": "drive0"}} 3463bd5ceebfSJohn Snow{"return": {}} 3464bd5ceebfSJohn Snow 3465bd5ceebfSJohn Snow--- Write #0 --- 3466bd5ceebfSJohn Snow 3467bd5ceebfSJohn Snowwrite -P0x49 0x0000000 0x10000 3468bd5ceebfSJohn Snow{"return": ""} 3469bd5ceebfSJohn Snowwrite -P0x6c 0x0100000 0x10000 3470bd5ceebfSJohn Snow{"return": ""} 3471bd5ceebfSJohn Snowwrite -P0x6f 0x2000000 0x10000 3472bd5ceebfSJohn Snow{"return": ""} 3473bd5ceebfSJohn Snowwrite -P0x76 0x3ff0000 0x10000 3474bd5ceebfSJohn Snow{"return": ""} 3475bd5ceebfSJohn Snow{ 34765c4343b8SVladimir Sementsov-Ogievskiy "bitmaps": {} 3477bd5ceebfSJohn Snow} 3478bd5ceebfSJohn Snow 3479bd5ceebfSJohn Snow--- Reference Backup #0 --- 3480bd5ceebfSJohn Snow 3481bd5ceebfSJohn Snow{} 3482bd5ceebfSJohn Snow{"execute": "job-dismiss", "arguments": {"id": "bdc-file-job"}} 3483bd5ceebfSJohn Snow{"return": {}} 3484bd5ceebfSJohn Snow{} 3485bd5ceebfSJohn Snow{} 3486bd5ceebfSJohn Snow{"execute": "job-dismiss", "arguments": {"id": "bdc-fmt-job"}} 3487bd5ceebfSJohn Snow{"return": {}} 3488bd5ceebfSJohn Snow{} 34892d0f32e3SVladimir Sementsov-Ogievskiy{"execute": "blockdev-backup", "arguments": {"device": "drive0", "filter-node-name": "backup-top", "job-id": "ref_backup_0", "sync": "full", "target": "ref_target_0", "x-perf": {"max-workers": 1}}} 3490bd5ceebfSJohn Snow{"return": {}} 3491bd5ceebfSJohn Snow{"data": {"device": "ref_backup_0", "len": 67108864, "offset": 67108864, "speed": 0, "type": "backup"}, "event": "BLOCK_JOB_COMPLETED", "timestamp": {"microseconds": "USECS", "seconds": "SECS"}} 3492bd5ceebfSJohn Snow 3493bd5ceebfSJohn Snow--- Add Bitmap --- 3494bd5ceebfSJohn Snow 3495bd5ceebfSJohn Snow{"execute": "block-dirty-bitmap-add", "arguments": {"granularity": 65536, "name": "bitmap0", "node": "drive0"}} 3496bd5ceebfSJohn Snow{"return": {}} 3497bd5ceebfSJohn Snow 3498bd5ceebfSJohn Snow--- Write #1 --- 3499bd5ceebfSJohn Snow 3500bd5ceebfSJohn Snowwrite -P0x65 0x0000000 0x10000 3501bd5ceebfSJohn Snow{"return": ""} 3502bd5ceebfSJohn Snowwrite -P0x77 0x00f8000 0x10000 3503bd5ceebfSJohn Snow{"return": ""} 3504bd5ceebfSJohn Snowwrite -P0x72 0x2008000 0x10000 3505bd5ceebfSJohn Snow{"return": ""} 3506bd5ceebfSJohn Snowwrite -P0x69 0x3fe0000 0x10000 3507bd5ceebfSJohn Snow{"return": ""} 3508bd5ceebfSJohn Snow{ 3509bd5ceebfSJohn Snow "bitmaps": { 35105c4343b8SVladimir Sementsov-Ogievskiy "drive0": [ 3511bd5ceebfSJohn Snow { 3512bd5ceebfSJohn Snow "busy": false, 3513bd5ceebfSJohn Snow "count": 393216, 3514bd5ceebfSJohn Snow "granularity": 65536, 3515bd5ceebfSJohn Snow "name": "bitmap0", 3516bd5ceebfSJohn Snow "persistent": false, 351781cbfd50SDaniel P. Berrangé "recording": true 3518bd5ceebfSJohn Snow } 3519bd5ceebfSJohn Snow ] 3520bd5ceebfSJohn Snow } 3521bd5ceebfSJohn Snow} 3522bd5ceebfSJohn Snow 3523bd5ceebfSJohn Snow= Checking Bitmap bitmap0 = 3524bd5ceebfSJohn Snowexpecting 6 dirty sectors; have 6. OK! 3525bd5ceebfSJohn Snow 3526bd5ceebfSJohn Snow--- Reference Backup #1 --- 3527bd5ceebfSJohn Snow 3528bd5ceebfSJohn Snow{} 3529bd5ceebfSJohn Snow{"execute": "job-dismiss", "arguments": {"id": "bdc-file-job"}} 3530bd5ceebfSJohn Snow{"return": {}} 3531bd5ceebfSJohn Snow{} 3532bd5ceebfSJohn Snow{} 3533bd5ceebfSJohn Snow{"execute": "job-dismiss", "arguments": {"id": "bdc-fmt-job"}} 3534bd5ceebfSJohn Snow{"return": {}} 3535bd5ceebfSJohn Snow{} 35362d0f32e3SVladimir Sementsov-Ogievskiy{"execute": "blockdev-backup", "arguments": {"device": "drive0", "filter-node-name": "backup-top", "job-id": "ref_backup_1", "sync": "full", "target": "ref_target_1", "x-perf": {"max-workers": 1}}} 3537bd5ceebfSJohn Snow{"return": {}} 3538bd5ceebfSJohn Snow{"data": {"device": "ref_backup_1", "len": 67108864, "offset": 67108864, "speed": 0, "type": "backup"}, "event": "BLOCK_JOB_COMPLETED", "timestamp": {"microseconds": "USECS", "seconds": "SECS"}} 3539bd5ceebfSJohn Snow 3540bd5ceebfSJohn Snow--- Test Backup #1 --- 3541bd5ceebfSJohn Snow 3542bd5ceebfSJohn Snow{} 3543bd5ceebfSJohn Snow{"execute": "job-dismiss", "arguments": {"id": "bdc-file-job"}} 3544bd5ceebfSJohn Snow{"return": {}} 3545bd5ceebfSJohn Snow{} 3546bd5ceebfSJohn Snow{} 3547bd5ceebfSJohn Snow{"execute": "job-dismiss", "arguments": {"id": "bdc-fmt-job"}} 3548bd5ceebfSJohn Snow{"return": {}} 3549bd5ceebfSJohn Snow{} 35502d0f32e3SVladimir Sementsov-Ogievskiy{"execute": "blockdev-backup", "arguments": {"auto-finalize": false, "bitmap": "bitmap0", "bitmap-mode": "always", "device": "drive0", "filter-node-name": "backup-top", "job-id": "backup_1", "sync": "full", "target": "backup_target_1", "x-perf": {"max-workers": 1}}} 3551bd5ceebfSJohn Snow{"return": {}} 3552bd5ceebfSJohn Snow 3553bd5ceebfSJohn Snow--- Write #2 --- 3554bd5ceebfSJohn Snow 3555bd5ceebfSJohn Snowwrite -P0x74 0x0010000 0x10000 3556bd5ceebfSJohn Snow{"return": ""} 3557bd5ceebfSJohn Snowwrite -P0x69 0x00e8000 0x10000 3558bd5ceebfSJohn Snow{"return": ""} 3559bd5ceebfSJohn Snowwrite -P0x6e 0x2018000 0x10000 3560bd5ceebfSJohn Snow{"return": ""} 3561bd5ceebfSJohn Snowwrite -P0x67 0x3fe0000 0x20000 3562bd5ceebfSJohn Snow{"return": ""} 3563bd5ceebfSJohn Snow{ 3564bd5ceebfSJohn Snow "bitmaps": { 3565af5bcd77SVladimir Sementsov-Ogievskiy "backup-top": [ 3566af5bcd77SVladimir Sementsov-Ogievskiy { 3567af5bcd77SVladimir Sementsov-Ogievskiy "busy": false, 3568af5bcd77SVladimir Sementsov-Ogievskiy "count": 67108864, 3569af5bcd77SVladimir Sementsov-Ogievskiy "granularity": 65536, 3570af5bcd77SVladimir Sementsov-Ogievskiy "persistent": false, 3571af5bcd77SVladimir Sementsov-Ogievskiy "recording": false 3572af5bcd77SVladimir Sementsov-Ogievskiy }, 3573af5bcd77SVladimir Sementsov-Ogievskiy { 3574af5bcd77SVladimir Sementsov-Ogievskiy "busy": false, 3575af5bcd77SVladimir Sementsov-Ogievskiy "count": 458752, 3576af5bcd77SVladimir Sementsov-Ogievskiy "granularity": 65536, 3577af5bcd77SVladimir Sementsov-Ogievskiy "persistent": false, 3578af5bcd77SVladimir Sementsov-Ogievskiy "recording": false 3579*006e845bSVladimir Sementsov-Ogievskiy }, 3580bd5ceebfSJohn Snow { 3581bd5ceebfSJohn Snow "busy": false, 3582bd5ceebfSJohn Snow "count": 0, 3583bd5ceebfSJohn Snow "granularity": 65536, 3584bd5ceebfSJohn Snow "persistent": false, 358581cbfd50SDaniel P. Berrangé "recording": false 3586*006e845bSVladimir Sementsov-Ogievskiy } 3587*006e845bSVladimir Sementsov-Ogievskiy ], 3588*006e845bSVladimir Sementsov-Ogievskiy "drive0": [ 3589bd5ceebfSJohn Snow { 3590bd5ceebfSJohn Snow "busy": false, 3591bd5ceebfSJohn Snow "count": 458752, 3592bd5ceebfSJohn Snow "granularity": 65536, 3593bd5ceebfSJohn Snow "persistent": false, 359481cbfd50SDaniel P. Berrangé "recording": true 3595bd5ceebfSJohn Snow }, 3596bd5ceebfSJohn Snow { 3597bd5ceebfSJohn Snow "busy": true, 3598bd5ceebfSJohn Snow "count": 393216, 3599bd5ceebfSJohn Snow "granularity": 65536, 3600bd5ceebfSJohn Snow "name": "bitmap0", 3601bd5ceebfSJohn Snow "persistent": false, 360281cbfd50SDaniel P. Berrangé "recording": true 3603bd5ceebfSJohn Snow } 3604bd5ceebfSJohn Snow ] 3605bd5ceebfSJohn Snow } 3606bd5ceebfSJohn Snow} 3607bd5ceebfSJohn Snow 3608bd5ceebfSJohn Snow= Checking Bitmap bitmap0 = 3609bd5ceebfSJohn Snowexpecting 6 dirty sectors; have 6. OK! 3610bd5ceebfSJohn Snow 3611bd5ceebfSJohn Snow= Checking Bitmap (anonymous) = 3612bd5ceebfSJohn Snowexpecting 7 dirty sectors; have 7. OK! 3613bd5ceebfSJohn Snow 3614bd5ceebfSJohn Snow{"execute": "job-finalize", "arguments": {"id": "backup_1"}} 3615bd5ceebfSJohn Snow{"return": {}} 3616bd5ceebfSJohn Snow{"data": {"id": "backup_1", "type": "backup"}, "event": "BLOCK_JOB_PENDING", "timestamp": {"microseconds": "USECS", "seconds": "SECS"}} 3617bd5ceebfSJohn Snow{"data": {"device": "backup_1", "len": 67108864, "offset": 67108864, "speed": 0, "type": "backup"}, "event": "BLOCK_JOB_COMPLETED", "timestamp": {"microseconds": "USECS", "seconds": "SECS"}} 3618bd5ceebfSJohn Snow{ 3619bd5ceebfSJohn Snow "bitmaps": { 36205c4343b8SVladimir Sementsov-Ogievskiy "drive0": [ 3621bd5ceebfSJohn Snow { 3622bd5ceebfSJohn Snow "busy": false, 3623bd5ceebfSJohn Snow "count": 458752, 3624bd5ceebfSJohn Snow "granularity": 65536, 3625bd5ceebfSJohn Snow "name": "bitmap0", 3626bd5ceebfSJohn Snow "persistent": false, 362781cbfd50SDaniel P. Berrangé "recording": true 3628bd5ceebfSJohn Snow } 3629bd5ceebfSJohn Snow ] 3630bd5ceebfSJohn Snow } 3631bd5ceebfSJohn Snow} 3632bd5ceebfSJohn Snow 3633bd5ceebfSJohn Snow= Checking Bitmap bitmap0 = 3634bd5ceebfSJohn Snowexpecting 7 dirty sectors; have 7. OK! 3635bd5ceebfSJohn Snow 3636bd5ceebfSJohn Snow--- Write #3 --- 3637bd5ceebfSJohn Snow 3638bd5ceebfSJohn Snowwrite -P0xaa 0x0010000 0x30000 3639bd5ceebfSJohn Snow{"return": ""} 3640bd5ceebfSJohn Snowwrite -P0xbb 0x00d8000 0x10000 3641bd5ceebfSJohn Snow{"return": ""} 3642bd5ceebfSJohn Snowwrite -P0xcc 0x2028000 0x10000 3643bd5ceebfSJohn Snow{"return": ""} 3644bd5ceebfSJohn Snowwrite -P0xdd 0x3fc0000 0x10000 3645bd5ceebfSJohn Snow{"return": ""} 3646bd5ceebfSJohn Snow{ 3647bd5ceebfSJohn Snow "bitmaps": { 36485c4343b8SVladimir Sementsov-Ogievskiy "drive0": [ 3649bd5ceebfSJohn Snow { 3650bd5ceebfSJohn Snow "busy": false, 3651bd5ceebfSJohn Snow "count": 786432, 3652bd5ceebfSJohn Snow "granularity": 65536, 3653bd5ceebfSJohn Snow "name": "bitmap0", 3654bd5ceebfSJohn Snow "persistent": false, 365581cbfd50SDaniel P. Berrangé "recording": true 3656bd5ceebfSJohn Snow } 3657bd5ceebfSJohn Snow ] 3658bd5ceebfSJohn Snow } 3659bd5ceebfSJohn Snow} 3660bd5ceebfSJohn Snow 3661bd5ceebfSJohn Snow= Checking Bitmap bitmap0 = 3662bd5ceebfSJohn Snowexpecting 12 dirty sectors; have 12. OK! 3663bd5ceebfSJohn Snow 3664bd5ceebfSJohn Snow--- Reference Backup #2 --- 3665bd5ceebfSJohn Snow 3666bd5ceebfSJohn Snow{} 3667bd5ceebfSJohn Snow{"execute": "job-dismiss", "arguments": {"id": "bdc-file-job"}} 3668bd5ceebfSJohn Snow{"return": {}} 3669bd5ceebfSJohn Snow{} 3670bd5ceebfSJohn Snow{} 3671bd5ceebfSJohn Snow{"execute": "job-dismiss", "arguments": {"id": "bdc-fmt-job"}} 3672bd5ceebfSJohn Snow{"return": {}} 3673bd5ceebfSJohn Snow{} 36742d0f32e3SVladimir Sementsov-Ogievskiy{"execute": "blockdev-backup", "arguments": {"device": "drive0", "filter-node-name": "backup-top", "job-id": "ref_backup_2", "sync": "full", "target": "ref_target_2", "x-perf": {"max-workers": 1}}} 3675bd5ceebfSJohn Snow{"return": {}} 3676bd5ceebfSJohn Snow{"data": {"device": "ref_backup_2", "len": 67108864, "offset": 67108864, "speed": 0, "type": "backup"}, "event": "BLOCK_JOB_COMPLETED", "timestamp": {"microseconds": "USECS", "seconds": "SECS"}} 3677bd5ceebfSJohn Snow 3678bd5ceebfSJohn Snow--- Test Backup #2 --- 3679bd5ceebfSJohn Snow 3680bd5ceebfSJohn Snow{} 3681bd5ceebfSJohn Snow{"execute": "job-dismiss", "arguments": {"id": "bdc-file-job"}} 3682bd5ceebfSJohn Snow{"return": {}} 3683bd5ceebfSJohn Snow{} 3684bd5ceebfSJohn Snow{} 3685bd5ceebfSJohn Snow{"execute": "job-dismiss", "arguments": {"id": "bdc-fmt-job"}} 3686bd5ceebfSJohn Snow{"return": {}} 3687bd5ceebfSJohn Snow{} 36882d0f32e3SVladimir Sementsov-Ogievskiy{"execute": "blockdev-backup", "arguments": {"auto-finalize": false, "bitmap": "bitmap0", "bitmap-mode": "always", "device": "drive0", "filter-node-name": "backup-top", "job-id": "backup_2", "sync": "bitmap", "target": "backup_target_2", "x-perf": {"max-workers": 1}}} 3689bd5ceebfSJohn Snow{"return": {}} 3690bd5ceebfSJohn Snow{"execute": "job-finalize", "arguments": {"id": "backup_2"}} 3691bd5ceebfSJohn Snow{"return": {}} 3692bd5ceebfSJohn Snow{"data": {"id": "backup_2", "type": "backup"}, "event": "BLOCK_JOB_PENDING", "timestamp": {"microseconds": "USECS", "seconds": "SECS"}} 3693bd5ceebfSJohn Snow{"data": {"device": "backup_2", "len": 786432, "offset": 786432, "speed": 0, "type": "backup"}, "event": "BLOCK_JOB_COMPLETED", "timestamp": {"microseconds": "USECS", "seconds": "SECS"}} 3694bd5ceebfSJohn Snow{ 3695bd5ceebfSJohn Snow "bitmaps": { 36965c4343b8SVladimir Sementsov-Ogievskiy "drive0": [ 3697bd5ceebfSJohn Snow { 3698bd5ceebfSJohn Snow "busy": false, 3699bd5ceebfSJohn Snow "count": 0, 3700bd5ceebfSJohn Snow "granularity": 65536, 3701bd5ceebfSJohn Snow "name": "bitmap0", 3702bd5ceebfSJohn Snow "persistent": false, 370381cbfd50SDaniel P. Berrangé "recording": true 3704bd5ceebfSJohn Snow } 3705bd5ceebfSJohn Snow ] 3706bd5ceebfSJohn Snow } 3707bd5ceebfSJohn Snow} 3708bd5ceebfSJohn Snow 3709bd5ceebfSJohn Snow= Checking Bitmap bitmap0 = 3710bd5ceebfSJohn Snowexpecting 0 dirty sectors; have 0. OK! 3711bd5ceebfSJohn Snow 3712bd5ceebfSJohn Snow--- Cleanup --- 3713bd5ceebfSJohn Snow 3714bd5ceebfSJohn Snow{"execute": "block-dirty-bitmap-remove", "arguments": {"name": "bitmap0", "node": "drive0"}} 3715bd5ceebfSJohn Snow{"return": {}} 3716bd5ceebfSJohn Snow{ 37175c4343b8SVladimir Sementsov-Ogievskiy "bitmaps": {} 3718bd5ceebfSJohn Snow} 3719bd5ceebfSJohn Snow 3720bd5ceebfSJohn Snow--- Verification --- 3721bd5ceebfSJohn Snow 3722bd5ceebfSJohn Snowqemu_img compare "TEST_DIR/PID-bsync1" "TEST_DIR/PID-fbackup1" ==> Identical, OK! 3723bd5ceebfSJohn Snowqemu_img compare "TEST_DIR/PID-bsync2" "TEST_DIR/PID-fbackup2" ==> Identical, OK! 3724bd5ceebfSJohn Snowqemu_img compare "TEST_DIR/PID-img" "TEST_DIR/PID-fbackup2" ==> Identical, OK! 3725bd5ceebfSJohn Snow 3726bd5ceebfSJohn Snow 3727bd5ceebfSJohn Snow=== Mode top; Bitmap Sync on-success with simulated failure === 3728bd5ceebfSJohn Snow 3729bd5ceebfSJohn Snow--- Preparing image & VM --- 3730bd5ceebfSJohn Snow 3731bd5ceebfSJohn Snow{"execute": "blockdev-add", "arguments": {"driver": "qcow2", "file": {"driver": "file", "filename": "TEST_DIR/PID-img"}, "node-name": "drive0"}} 3732bd5ceebfSJohn Snow{"return": {}} 3733bd5ceebfSJohn Snow 3734bd5ceebfSJohn Snow--- Write #0 --- 3735bd5ceebfSJohn Snow 3736bd5ceebfSJohn Snowwrite -P0x49 0x0000000 0x10000 3737bd5ceebfSJohn Snow{"return": ""} 3738bd5ceebfSJohn Snowwrite -P0x6c 0x0100000 0x10000 3739bd5ceebfSJohn Snow{"return": ""} 3740bd5ceebfSJohn Snowwrite -P0x6f 0x2000000 0x10000 3741bd5ceebfSJohn Snow{"return": ""} 3742bd5ceebfSJohn Snowwrite -P0x76 0x3ff0000 0x10000 3743bd5ceebfSJohn Snow{"return": ""} 3744bd5ceebfSJohn Snow{ 37455c4343b8SVladimir Sementsov-Ogievskiy "bitmaps": {} 3746bd5ceebfSJohn Snow} 3747bd5ceebfSJohn Snow 3748bd5ceebfSJohn Snow--- Reference Backup #0 --- 3749bd5ceebfSJohn Snow 3750bd5ceebfSJohn Snow{} 3751bd5ceebfSJohn Snow{"execute": "job-dismiss", "arguments": {"id": "bdc-file-job"}} 3752bd5ceebfSJohn Snow{"return": {}} 3753bd5ceebfSJohn Snow{} 3754bd5ceebfSJohn Snow{} 3755bd5ceebfSJohn Snow{"execute": "job-dismiss", "arguments": {"id": "bdc-fmt-job"}} 3756bd5ceebfSJohn Snow{"return": {}} 3757bd5ceebfSJohn Snow{} 37582d0f32e3SVladimir Sementsov-Ogievskiy{"execute": "blockdev-backup", "arguments": {"device": "drive0", "filter-node-name": "backup-top", "job-id": "ref_backup_0", "sync": "full", "target": "ref_target_0", "x-perf": {"max-workers": 1}}} 3759bd5ceebfSJohn Snow{"return": {}} 3760bd5ceebfSJohn Snow{"data": {"device": "ref_backup_0", "len": 67108864, "offset": 67108864, "speed": 0, "type": "backup"}, "event": "BLOCK_JOB_COMPLETED", "timestamp": {"microseconds": "USECS", "seconds": "SECS"}} 3761bd5ceebfSJohn Snow 3762bd5ceebfSJohn Snow--- Add Bitmap --- 3763bd5ceebfSJohn Snow 3764bd5ceebfSJohn Snow{"execute": "block-dirty-bitmap-add", "arguments": {"granularity": 65536, "name": "bitmap0", "node": "drive0"}} 3765bd5ceebfSJohn Snow{"return": {}} 3766bd5ceebfSJohn Snow 3767bd5ceebfSJohn Snow--- Write #1 --- 3768bd5ceebfSJohn Snow 3769bd5ceebfSJohn Snowwrite -P0x65 0x0000000 0x10000 3770bd5ceebfSJohn Snow{"return": ""} 3771bd5ceebfSJohn Snowwrite -P0x77 0x00f8000 0x10000 3772bd5ceebfSJohn Snow{"return": ""} 3773bd5ceebfSJohn Snowwrite -P0x72 0x2008000 0x10000 3774bd5ceebfSJohn Snow{"return": ""} 3775bd5ceebfSJohn Snowwrite -P0x69 0x3fe0000 0x10000 3776bd5ceebfSJohn Snow{"return": ""} 3777bd5ceebfSJohn Snow{ 3778bd5ceebfSJohn Snow "bitmaps": { 37795c4343b8SVladimir Sementsov-Ogievskiy "drive0": [ 3780bd5ceebfSJohn Snow { 3781bd5ceebfSJohn Snow "busy": false, 3782bd5ceebfSJohn Snow "count": 393216, 3783bd5ceebfSJohn Snow "granularity": 65536, 3784bd5ceebfSJohn Snow "name": "bitmap0", 3785bd5ceebfSJohn Snow "persistent": false, 378681cbfd50SDaniel P. Berrangé "recording": true 3787bd5ceebfSJohn Snow } 3788bd5ceebfSJohn Snow ] 3789bd5ceebfSJohn Snow } 3790bd5ceebfSJohn Snow} 3791bd5ceebfSJohn Snow 3792bd5ceebfSJohn Snow= Checking Bitmap bitmap0 = 3793bd5ceebfSJohn Snowexpecting 6 dirty sectors; have 6. OK! 3794bd5ceebfSJohn Snow 3795bd5ceebfSJohn Snow--- Reference Backup #1 --- 3796bd5ceebfSJohn Snow 3797bd5ceebfSJohn Snow{} 3798bd5ceebfSJohn Snow{"execute": "job-dismiss", "arguments": {"id": "bdc-file-job"}} 3799bd5ceebfSJohn Snow{"return": {}} 3800bd5ceebfSJohn Snow{} 3801bd5ceebfSJohn Snow{} 3802bd5ceebfSJohn Snow{"execute": "job-dismiss", "arguments": {"id": "bdc-fmt-job"}} 3803bd5ceebfSJohn Snow{"return": {}} 3804bd5ceebfSJohn Snow{} 38052d0f32e3SVladimir Sementsov-Ogievskiy{"execute": "blockdev-backup", "arguments": {"device": "drive0", "filter-node-name": "backup-top", "job-id": "ref_backup_1", "sync": "full", "target": "ref_target_1", "x-perf": {"max-workers": 1}}} 3806bd5ceebfSJohn Snow{"return": {}} 3807bd5ceebfSJohn Snow{"data": {"device": "ref_backup_1", "len": 67108864, "offset": 67108864, "speed": 0, "type": "backup"}, "event": "BLOCK_JOB_COMPLETED", "timestamp": {"microseconds": "USECS", "seconds": "SECS"}} 3808bd5ceebfSJohn Snow 3809bd5ceebfSJohn Snow--- Test Backup #1 --- 3810bd5ceebfSJohn Snow 3811bd5ceebfSJohn Snow{} 3812bd5ceebfSJohn Snow{"execute": "job-dismiss", "arguments": {"id": "bdc-file-job"}} 3813bd5ceebfSJohn Snow{"return": {}} 3814bd5ceebfSJohn Snow{} 3815bd5ceebfSJohn Snow{} 3816bd5ceebfSJohn Snow{"execute": "job-dismiss", "arguments": {"id": "bdc-fmt-job"}} 3817bd5ceebfSJohn Snow{"return": {}} 3818bd5ceebfSJohn Snow{} 38192d0f32e3SVladimir Sementsov-Ogievskiy{"execute": "blockdev-backup", "arguments": {"auto-finalize": false, "bitmap": "bitmap0", "bitmap-mode": "on-success", "device": "drive0", "filter-node-name": "backup-top", "job-id": "backup_1", "sync": "top", "target": "backup_target_1", "x-perf": {"max-workers": 1}}} 3820bd5ceebfSJohn Snow{"return": {}} 3821bd5ceebfSJohn Snow 3822bd5ceebfSJohn Snow--- Write #2 --- 3823bd5ceebfSJohn Snow 3824bd5ceebfSJohn Snowwrite -P0x74 0x0010000 0x10000 3825bd5ceebfSJohn Snow{"return": ""} 3826bd5ceebfSJohn Snowwrite -P0x69 0x00e8000 0x10000 3827bd5ceebfSJohn Snow{"return": ""} 3828bd5ceebfSJohn Snowwrite -P0x6e 0x2018000 0x10000 3829bd5ceebfSJohn Snow{"return": ""} 3830bd5ceebfSJohn Snowwrite -P0x67 0x3fe0000 0x20000 3831bd5ceebfSJohn Snow{"return": ""} 3832bd5ceebfSJohn Snow{ 3833bd5ceebfSJohn Snow "bitmaps": { 3834af5bcd77SVladimir Sementsov-Ogievskiy "backup-top": [ 3835af5bcd77SVladimir Sementsov-Ogievskiy { 3836af5bcd77SVladimir Sementsov-Ogievskiy "busy": false, 3837af5bcd77SVladimir Sementsov-Ogievskiy "count": 67108864, 3838af5bcd77SVladimir Sementsov-Ogievskiy "granularity": 65536, 3839af5bcd77SVladimir Sementsov-Ogievskiy "persistent": false, 3840af5bcd77SVladimir Sementsov-Ogievskiy "recording": false 3841af5bcd77SVladimir Sementsov-Ogievskiy }, 3842af5bcd77SVladimir Sementsov-Ogievskiy { 3843af5bcd77SVladimir Sementsov-Ogievskiy "busy": false, 3844af5bcd77SVladimir Sementsov-Ogievskiy "count": 458752, 3845af5bcd77SVladimir Sementsov-Ogievskiy "granularity": 65536, 3846af5bcd77SVladimir Sementsov-Ogievskiy "persistent": false, 3847af5bcd77SVladimir Sementsov-Ogievskiy "recording": false 3848*006e845bSVladimir Sementsov-Ogievskiy }, 3849bd5ceebfSJohn Snow { 3850bd5ceebfSJohn Snow "busy": false, 3851bd5ceebfSJohn Snow "count": 0, 3852bd5ceebfSJohn Snow "granularity": 65536, 3853bd5ceebfSJohn Snow "persistent": false, 385481cbfd50SDaniel P. Berrangé "recording": false 3855*006e845bSVladimir Sementsov-Ogievskiy } 3856*006e845bSVladimir Sementsov-Ogievskiy ], 3857*006e845bSVladimir Sementsov-Ogievskiy "drive0": [ 3858bd5ceebfSJohn Snow { 3859bd5ceebfSJohn Snow "busy": false, 3860bd5ceebfSJohn Snow "count": 458752, 3861bd5ceebfSJohn Snow "granularity": 65536, 3862bd5ceebfSJohn Snow "persistent": false, 386381cbfd50SDaniel P. Berrangé "recording": true 3864bd5ceebfSJohn Snow }, 3865bd5ceebfSJohn Snow { 3866bd5ceebfSJohn Snow "busy": true, 3867bd5ceebfSJohn Snow "count": 393216, 3868bd5ceebfSJohn Snow "granularity": 65536, 3869bd5ceebfSJohn Snow "name": "bitmap0", 3870bd5ceebfSJohn Snow "persistent": false, 387181cbfd50SDaniel P. Berrangé "recording": true 3872bd5ceebfSJohn Snow } 3873bd5ceebfSJohn Snow ] 3874bd5ceebfSJohn Snow } 3875bd5ceebfSJohn Snow} 3876bd5ceebfSJohn Snow 3877bd5ceebfSJohn Snow= Checking Bitmap bitmap0 = 3878bd5ceebfSJohn Snowexpecting 6 dirty sectors; have 6. OK! 3879bd5ceebfSJohn Snow 3880bd5ceebfSJohn Snow= Checking Bitmap (anonymous) = 3881bd5ceebfSJohn Snowexpecting 7 dirty sectors; have 7. OK! 3882bd5ceebfSJohn Snow 3883bd5ceebfSJohn Snow{"execute": "job-cancel", "arguments": {"id": "backup_1"}} 3884bd5ceebfSJohn Snow{"return": {}} 3885bd5ceebfSJohn Snow{"data": {"id": "backup_1", "type": "backup"}, "event": "BLOCK_JOB_PENDING", "timestamp": {"microseconds": "USECS", "seconds": "SECS"}} 3886bd5ceebfSJohn Snow{"data": {"device": "backup_1", "len": 458752, "offset": 458752, "speed": 0, "type": "backup"}, "event": "BLOCK_JOB_CANCELLED", "timestamp": {"microseconds": "USECS", "seconds": "SECS"}} 3887bd5ceebfSJohn Snow{ 3888bd5ceebfSJohn Snow "bitmaps": { 38895c4343b8SVladimir Sementsov-Ogievskiy "drive0": [ 3890bd5ceebfSJohn Snow { 3891bd5ceebfSJohn Snow "busy": false, 3892bd5ceebfSJohn Snow "count": 655360, 3893bd5ceebfSJohn Snow "granularity": 65536, 3894bd5ceebfSJohn Snow "name": "bitmap0", 3895bd5ceebfSJohn Snow "persistent": false, 389681cbfd50SDaniel P. Berrangé "recording": true 3897bd5ceebfSJohn Snow } 3898bd5ceebfSJohn Snow ] 3899bd5ceebfSJohn Snow } 3900bd5ceebfSJohn Snow} 3901bd5ceebfSJohn Snow 3902bd5ceebfSJohn Snow= Checking Bitmap bitmap0 = 3903bd5ceebfSJohn Snowexpecting 10 dirty sectors; have 10. OK! 3904bd5ceebfSJohn Snow 3905bd5ceebfSJohn Snow--- Write #3 --- 3906bd5ceebfSJohn Snow 3907bd5ceebfSJohn Snowwrite -P0xaa 0x0010000 0x30000 3908bd5ceebfSJohn Snow{"return": ""} 3909bd5ceebfSJohn Snowwrite -P0xbb 0x00d8000 0x10000 3910bd5ceebfSJohn Snow{"return": ""} 3911bd5ceebfSJohn Snowwrite -P0xcc 0x2028000 0x10000 3912bd5ceebfSJohn Snow{"return": ""} 3913bd5ceebfSJohn Snowwrite -P0xdd 0x3fc0000 0x10000 3914bd5ceebfSJohn Snow{"return": ""} 3915bd5ceebfSJohn Snow{ 3916bd5ceebfSJohn Snow "bitmaps": { 39175c4343b8SVladimir Sementsov-Ogievskiy "drive0": [ 3918bd5ceebfSJohn Snow { 3919bd5ceebfSJohn Snow "busy": false, 3920bd5ceebfSJohn Snow "count": 983040, 3921bd5ceebfSJohn Snow "granularity": 65536, 3922bd5ceebfSJohn Snow "name": "bitmap0", 3923bd5ceebfSJohn Snow "persistent": false, 392481cbfd50SDaniel P. Berrangé "recording": true 3925bd5ceebfSJohn Snow } 3926bd5ceebfSJohn Snow ] 3927bd5ceebfSJohn Snow } 3928bd5ceebfSJohn Snow} 3929bd5ceebfSJohn Snow 3930bd5ceebfSJohn Snow= Checking Bitmap bitmap0 = 3931bd5ceebfSJohn Snowexpecting 15 dirty sectors; have 15. OK! 3932bd5ceebfSJohn Snow 3933bd5ceebfSJohn Snow--- Reference Backup #2 --- 3934bd5ceebfSJohn Snow 3935bd5ceebfSJohn Snow{} 3936bd5ceebfSJohn Snow{"execute": "job-dismiss", "arguments": {"id": "bdc-file-job"}} 3937bd5ceebfSJohn Snow{"return": {}} 3938bd5ceebfSJohn Snow{} 3939bd5ceebfSJohn Snow{} 3940bd5ceebfSJohn Snow{"execute": "job-dismiss", "arguments": {"id": "bdc-fmt-job"}} 3941bd5ceebfSJohn Snow{"return": {}} 3942bd5ceebfSJohn Snow{} 39432d0f32e3SVladimir Sementsov-Ogievskiy{"execute": "blockdev-backup", "arguments": {"device": "drive0", "filter-node-name": "backup-top", "job-id": "ref_backup_2", "sync": "full", "target": "ref_target_2", "x-perf": {"max-workers": 1}}} 3944bd5ceebfSJohn Snow{"return": {}} 3945bd5ceebfSJohn Snow{"data": {"device": "ref_backup_2", "len": 67108864, "offset": 67108864, "speed": 0, "type": "backup"}, "event": "BLOCK_JOB_COMPLETED", "timestamp": {"microseconds": "USECS", "seconds": "SECS"}} 3946bd5ceebfSJohn Snow 3947bd5ceebfSJohn Snow--- Test Backup #2 --- 3948bd5ceebfSJohn Snow 3949bd5ceebfSJohn Snow{} 3950bd5ceebfSJohn Snow{"execute": "job-dismiss", "arguments": {"id": "bdc-file-job"}} 3951bd5ceebfSJohn Snow{"return": {}} 3952bd5ceebfSJohn Snow{} 3953bd5ceebfSJohn Snow{} 3954bd5ceebfSJohn Snow{"execute": "job-dismiss", "arguments": {"id": "bdc-fmt-job"}} 3955bd5ceebfSJohn Snow{"return": {}} 3956bd5ceebfSJohn Snow{} 39572d0f32e3SVladimir Sementsov-Ogievskiy{"execute": "blockdev-backup", "arguments": {"auto-finalize": false, "bitmap": "bitmap0", "bitmap-mode": "on-success", "device": "drive0", "filter-node-name": "backup-top", "job-id": "backup_2", "sync": "bitmap", "target": "backup_target_2", "x-perf": {"max-workers": 1}}} 3958bd5ceebfSJohn Snow{"return": {}} 3959bd5ceebfSJohn Snow{"execute": "job-finalize", "arguments": {"id": "backup_2"}} 3960bd5ceebfSJohn Snow{"return": {}} 3961bd5ceebfSJohn Snow{"data": {"id": "backup_2", "type": "backup"}, "event": "BLOCK_JOB_PENDING", "timestamp": {"microseconds": "USECS", "seconds": "SECS"}} 3962bd5ceebfSJohn Snow{"data": {"device": "backup_2", "len": 983040, "offset": 983040, "speed": 0, "type": "backup"}, "event": "BLOCK_JOB_COMPLETED", "timestamp": {"microseconds": "USECS", "seconds": "SECS"}} 3963bd5ceebfSJohn Snow{ 3964bd5ceebfSJohn Snow "bitmaps": { 39655c4343b8SVladimir Sementsov-Ogievskiy "drive0": [ 3966bd5ceebfSJohn Snow { 3967bd5ceebfSJohn Snow "busy": false, 3968bd5ceebfSJohn Snow "count": 0, 3969bd5ceebfSJohn Snow "granularity": 65536, 3970bd5ceebfSJohn Snow "name": "bitmap0", 3971bd5ceebfSJohn Snow "persistent": false, 397281cbfd50SDaniel P. Berrangé "recording": true 3973bd5ceebfSJohn Snow } 3974bd5ceebfSJohn Snow ] 3975bd5ceebfSJohn Snow } 3976bd5ceebfSJohn Snow} 3977bd5ceebfSJohn Snow 3978bd5ceebfSJohn Snow= Checking Bitmap bitmap0 = 3979bd5ceebfSJohn Snowexpecting 0 dirty sectors; have 0. OK! 3980bd5ceebfSJohn Snow 3981bd5ceebfSJohn Snow--- Cleanup --- 3982bd5ceebfSJohn Snow 3983bd5ceebfSJohn Snow{"execute": "block-dirty-bitmap-remove", "arguments": {"name": "bitmap0", "node": "drive0"}} 3984bd5ceebfSJohn Snow{"return": {}} 3985bd5ceebfSJohn Snow{ 39865c4343b8SVladimir Sementsov-Ogievskiy "bitmaps": {} 3987bd5ceebfSJohn Snow} 3988bd5ceebfSJohn Snow 3989bd5ceebfSJohn Snow--- Verification --- 3990bd5ceebfSJohn Snow 3991bd5ceebfSJohn Snowqemu_img compare "TEST_DIR/PID-bsync1" "TEST_DIR/PID-fbackup1" ==> Identical, OK! 3992bd5ceebfSJohn Snowqemu_img compare "TEST_DIR/PID-bsync2" "TEST_DIR/PID-fbackup2" ==> Identical, OK! 3993bd5ceebfSJohn Snowqemu_img compare "TEST_DIR/PID-img" "TEST_DIR/PID-fbackup2" ==> Identical, OK! 3994bd5ceebfSJohn Snow 3995bd5ceebfSJohn Snow 3996bd5ceebfSJohn Snow=== Mode top; Bitmap Sync on-success with intermediate failure === 3997bd5ceebfSJohn Snow 3998bd5ceebfSJohn Snow--- Preparing image & VM --- 3999bd5ceebfSJohn Snow 4000bd5ceebfSJohn Snow{"execute": "blockdev-add", "arguments": {"driver": "qcow2", "file": {"driver": "blkdebug", "image": {"driver": "file", "filename": "TEST_DIR/PID-img"}, "inject-error": [{"errno": 5, "event": "read_aio", "immediately": false, "once": true, "state": 3}], "set-state": [{"event": "flush_to_disk", "new-state": 2, "state": 1}, {"event": "read_aio", "new-state": 3, "state": 2}]}, "node-name": "drive0"}} 4001bd5ceebfSJohn Snow{"return": {}} 4002bd5ceebfSJohn Snow 4003bd5ceebfSJohn Snow--- Write #0 --- 4004bd5ceebfSJohn Snow 4005bd5ceebfSJohn Snowwrite -P0x49 0x0000000 0x10000 4006bd5ceebfSJohn Snow{"return": ""} 4007bd5ceebfSJohn Snowwrite -P0x6c 0x0100000 0x10000 4008bd5ceebfSJohn Snow{"return": ""} 4009bd5ceebfSJohn Snowwrite -P0x6f 0x2000000 0x10000 4010bd5ceebfSJohn Snow{"return": ""} 4011bd5ceebfSJohn Snowwrite -P0x76 0x3ff0000 0x10000 4012bd5ceebfSJohn Snow{"return": ""} 4013bd5ceebfSJohn Snow{ 40145c4343b8SVladimir Sementsov-Ogievskiy "bitmaps": {} 4015bd5ceebfSJohn Snow} 4016bd5ceebfSJohn Snow 4017bd5ceebfSJohn Snow--- Reference Backup #0 --- 4018bd5ceebfSJohn Snow 4019bd5ceebfSJohn Snow{} 4020bd5ceebfSJohn Snow{"execute": "job-dismiss", "arguments": {"id": "bdc-file-job"}} 4021bd5ceebfSJohn Snow{"return": {}} 4022bd5ceebfSJohn Snow{} 4023bd5ceebfSJohn Snow{} 4024bd5ceebfSJohn Snow{"execute": "job-dismiss", "arguments": {"id": "bdc-fmt-job"}} 4025bd5ceebfSJohn Snow{"return": {}} 4026bd5ceebfSJohn Snow{} 40272d0f32e3SVladimir Sementsov-Ogievskiy{"execute": "blockdev-backup", "arguments": {"device": "drive0", "filter-node-name": "backup-top", "job-id": "ref_backup_0", "sync": "full", "target": "ref_target_0", "x-perf": {"max-workers": 1}}} 4028bd5ceebfSJohn Snow{"return": {}} 4029bd5ceebfSJohn Snow{"data": {"device": "ref_backup_0", "len": 67108864, "offset": 67108864, "speed": 0, "type": "backup"}, "event": "BLOCK_JOB_COMPLETED", "timestamp": {"microseconds": "USECS", "seconds": "SECS"}} 4030bd5ceebfSJohn Snow 4031bd5ceebfSJohn Snow--- Add Bitmap --- 4032bd5ceebfSJohn Snow 4033bd5ceebfSJohn Snow{"execute": "block-dirty-bitmap-add", "arguments": {"granularity": 65536, "name": "bitmap0", "node": "drive0"}} 4034bd5ceebfSJohn Snow{"return": {}} 4035bd5ceebfSJohn Snow 4036bd5ceebfSJohn Snow--- Write #1 --- 4037bd5ceebfSJohn Snow 4038bd5ceebfSJohn Snowwrite -P0x65 0x0000000 0x10000 4039bd5ceebfSJohn Snow{"return": ""} 4040bd5ceebfSJohn Snowwrite -P0x77 0x00f8000 0x10000 4041bd5ceebfSJohn Snow{"return": ""} 4042bd5ceebfSJohn Snowwrite -P0x72 0x2008000 0x10000 4043bd5ceebfSJohn Snow{"return": ""} 4044bd5ceebfSJohn Snowwrite -P0x69 0x3fe0000 0x10000 4045bd5ceebfSJohn Snow{"return": ""} 4046bd5ceebfSJohn Snow{ 4047bd5ceebfSJohn Snow "bitmaps": { 40485c4343b8SVladimir Sementsov-Ogievskiy "drive0": [ 4049bd5ceebfSJohn Snow { 4050bd5ceebfSJohn Snow "busy": false, 4051bd5ceebfSJohn Snow "count": 393216, 4052bd5ceebfSJohn Snow "granularity": 65536, 4053bd5ceebfSJohn Snow "name": "bitmap0", 4054bd5ceebfSJohn Snow "persistent": false, 405581cbfd50SDaniel P. Berrangé "recording": true 4056bd5ceebfSJohn Snow } 4057bd5ceebfSJohn Snow ] 4058bd5ceebfSJohn Snow } 4059bd5ceebfSJohn Snow} 4060bd5ceebfSJohn Snow 4061bd5ceebfSJohn Snow= Checking Bitmap bitmap0 = 4062bd5ceebfSJohn Snowexpecting 6 dirty sectors; have 6. OK! 4063bd5ceebfSJohn Snow 4064bd5ceebfSJohn Snow--- Reference Backup #1 --- 4065bd5ceebfSJohn Snow 4066bd5ceebfSJohn Snow{} 4067bd5ceebfSJohn Snow{"execute": "job-dismiss", "arguments": {"id": "bdc-file-job"}} 4068bd5ceebfSJohn Snow{"return": {}} 4069bd5ceebfSJohn Snow{} 4070bd5ceebfSJohn Snow{} 4071bd5ceebfSJohn Snow{"execute": "job-dismiss", "arguments": {"id": "bdc-fmt-job"}} 4072bd5ceebfSJohn Snow{"return": {}} 4073bd5ceebfSJohn Snow{} 40742d0f32e3SVladimir Sementsov-Ogievskiy{"execute": "blockdev-backup", "arguments": {"device": "drive0", "filter-node-name": "backup-top", "job-id": "ref_backup_1", "sync": "full", "target": "ref_target_1", "x-perf": {"max-workers": 1}}} 4075bd5ceebfSJohn Snow{"return": {}} 4076bd5ceebfSJohn Snow{"data": {"device": "ref_backup_1", "len": 67108864, "offset": 67108864, "speed": 0, "type": "backup"}, "event": "BLOCK_JOB_COMPLETED", "timestamp": {"microseconds": "USECS", "seconds": "SECS"}} 4077bd5ceebfSJohn Snow 4078bd5ceebfSJohn Snow{"return": ""} 4079bd5ceebfSJohn Snow 4080bd5ceebfSJohn Snow--- Test Backup #1 --- 4081bd5ceebfSJohn Snow 4082bd5ceebfSJohn Snow{} 4083bd5ceebfSJohn Snow{"execute": "job-dismiss", "arguments": {"id": "bdc-file-job"}} 4084bd5ceebfSJohn Snow{"return": {}} 4085bd5ceebfSJohn Snow{} 4086bd5ceebfSJohn Snow{} 4087bd5ceebfSJohn Snow{"execute": "job-dismiss", "arguments": {"id": "bdc-fmt-job"}} 4088bd5ceebfSJohn Snow{"return": {}} 4089bd5ceebfSJohn Snow{} 40902d0f32e3SVladimir Sementsov-Ogievskiy{"execute": "blockdev-backup", "arguments": {"auto-finalize": false, "bitmap": "bitmap0", "bitmap-mode": "on-success", "device": "drive0", "filter-node-name": "backup-top", "job-id": "backup_1", "sync": "top", "target": "backup_target_1", "x-perf": {"max-workers": 1}}} 4091bd5ceebfSJohn Snow{"return": {}} 4092bd5ceebfSJohn Snow{"data": {"action": "report", "device": "backup_1", "operation": "read"}, "event": "BLOCK_JOB_ERROR", "timestamp": {"microseconds": "USECS", "seconds": "SECS"}} 4093bd5ceebfSJohn Snow{"data": {"device": "backup_1", "error": "Input/output error", "len": 458752, "offset": 65536, "speed": 0, "type": "backup"}, "event": "BLOCK_JOB_COMPLETED", "timestamp": {"microseconds": "USECS", "seconds": "SECS"}} 4094bd5ceebfSJohn Snow{ 4095bd5ceebfSJohn Snow "bitmaps": { 40965c4343b8SVladimir Sementsov-Ogievskiy "drive0": [ 4097bd5ceebfSJohn Snow { 4098bd5ceebfSJohn Snow "busy": false, 4099bd5ceebfSJohn Snow "count": 393216, 4100bd5ceebfSJohn Snow "granularity": 65536, 4101bd5ceebfSJohn Snow "name": "bitmap0", 4102bd5ceebfSJohn Snow "persistent": false, 410381cbfd50SDaniel P. Berrangé "recording": true 4104bd5ceebfSJohn Snow } 4105bd5ceebfSJohn Snow ] 4106bd5ceebfSJohn Snow } 4107bd5ceebfSJohn Snow} 4108bd5ceebfSJohn Snow 4109bd5ceebfSJohn Snow= Checking Bitmap bitmap0 = 4110bd5ceebfSJohn Snowexpecting 6 dirty sectors; have 6. OK! 4111bd5ceebfSJohn Snow 4112bd5ceebfSJohn Snow--- Write #3 --- 4113bd5ceebfSJohn Snow 4114bd5ceebfSJohn Snowwrite -P0xaa 0x0010000 0x30000 4115bd5ceebfSJohn Snow{"return": ""} 4116bd5ceebfSJohn Snowwrite -P0xbb 0x00d8000 0x10000 4117bd5ceebfSJohn Snow{"return": ""} 4118bd5ceebfSJohn Snowwrite -P0xcc 0x2028000 0x10000 4119bd5ceebfSJohn Snow{"return": ""} 4120bd5ceebfSJohn Snowwrite -P0xdd 0x3fc0000 0x10000 4121bd5ceebfSJohn Snow{"return": ""} 4122bd5ceebfSJohn Snow{ 4123bd5ceebfSJohn Snow "bitmaps": { 41245c4343b8SVladimir Sementsov-Ogievskiy "drive0": [ 4125bd5ceebfSJohn Snow { 4126bd5ceebfSJohn Snow "busy": false, 4127bd5ceebfSJohn Snow "count": 917504, 4128bd5ceebfSJohn Snow "granularity": 65536, 4129bd5ceebfSJohn Snow "name": "bitmap0", 4130bd5ceebfSJohn Snow "persistent": false, 413181cbfd50SDaniel P. Berrangé "recording": true 4132bd5ceebfSJohn Snow } 4133bd5ceebfSJohn Snow ] 4134bd5ceebfSJohn Snow } 4135bd5ceebfSJohn Snow} 4136bd5ceebfSJohn Snow 4137bd5ceebfSJohn Snow= Checking Bitmap bitmap0 = 4138bd5ceebfSJohn Snowexpecting 14 dirty sectors; have 14. OK! 4139bd5ceebfSJohn Snow 4140bd5ceebfSJohn Snow--- Reference Backup #2 --- 4141bd5ceebfSJohn Snow 4142bd5ceebfSJohn Snow{} 4143bd5ceebfSJohn Snow{"execute": "job-dismiss", "arguments": {"id": "bdc-file-job"}} 4144bd5ceebfSJohn Snow{"return": {}} 4145bd5ceebfSJohn Snow{} 4146bd5ceebfSJohn Snow{} 4147bd5ceebfSJohn Snow{"execute": "job-dismiss", "arguments": {"id": "bdc-fmt-job"}} 4148bd5ceebfSJohn Snow{"return": {}} 4149bd5ceebfSJohn Snow{} 41502d0f32e3SVladimir Sementsov-Ogievskiy{"execute": "blockdev-backup", "arguments": {"device": "drive0", "filter-node-name": "backup-top", "job-id": "ref_backup_2", "sync": "full", "target": "ref_target_2", "x-perf": {"max-workers": 1}}} 4151bd5ceebfSJohn Snow{"return": {}} 4152bd5ceebfSJohn Snow{"data": {"device": "ref_backup_2", "len": 67108864, "offset": 67108864, "speed": 0, "type": "backup"}, "event": "BLOCK_JOB_COMPLETED", "timestamp": {"microseconds": "USECS", "seconds": "SECS"}} 4153bd5ceebfSJohn Snow 4154bd5ceebfSJohn Snow--- Test Backup #2 --- 4155bd5ceebfSJohn Snow 4156bd5ceebfSJohn Snow{} 4157bd5ceebfSJohn Snow{"execute": "job-dismiss", "arguments": {"id": "bdc-file-job"}} 4158bd5ceebfSJohn Snow{"return": {}} 4159bd5ceebfSJohn Snow{} 4160bd5ceebfSJohn Snow{} 4161bd5ceebfSJohn Snow{"execute": "job-dismiss", "arguments": {"id": "bdc-fmt-job"}} 4162bd5ceebfSJohn Snow{"return": {}} 4163bd5ceebfSJohn Snow{} 41642d0f32e3SVladimir Sementsov-Ogievskiy{"execute": "blockdev-backup", "arguments": {"auto-finalize": false, "bitmap": "bitmap0", "bitmap-mode": "on-success", "device": "drive0", "filter-node-name": "backup-top", "job-id": "backup_2", "sync": "bitmap", "target": "backup_target_2", "x-perf": {"max-workers": 1}}} 4165bd5ceebfSJohn Snow{"return": {}} 4166bd5ceebfSJohn Snow{"execute": "job-finalize", "arguments": {"id": "backup_2"}} 4167bd5ceebfSJohn Snow{"return": {}} 4168bd5ceebfSJohn Snow{"data": {"id": "backup_2", "type": "backup"}, "event": "BLOCK_JOB_PENDING", "timestamp": {"microseconds": "USECS", "seconds": "SECS"}} 4169bd5ceebfSJohn Snow{"data": {"device": "backup_2", "len": 917504, "offset": 917504, "speed": 0, "type": "backup"}, "event": "BLOCK_JOB_COMPLETED", "timestamp": {"microseconds": "USECS", "seconds": "SECS"}} 4170bd5ceebfSJohn Snow{ 4171bd5ceebfSJohn Snow "bitmaps": { 41725c4343b8SVladimir Sementsov-Ogievskiy "drive0": [ 4173bd5ceebfSJohn Snow { 4174bd5ceebfSJohn Snow "busy": false, 4175bd5ceebfSJohn Snow "count": 0, 4176bd5ceebfSJohn Snow "granularity": 65536, 4177bd5ceebfSJohn Snow "name": "bitmap0", 4178bd5ceebfSJohn Snow "persistent": false, 417981cbfd50SDaniel P. Berrangé "recording": true 4180bd5ceebfSJohn Snow } 4181bd5ceebfSJohn Snow ] 4182bd5ceebfSJohn Snow } 4183bd5ceebfSJohn Snow} 4184bd5ceebfSJohn Snow 4185bd5ceebfSJohn Snow= Checking Bitmap bitmap0 = 4186bd5ceebfSJohn Snowexpecting 0 dirty sectors; have 0. OK! 4187bd5ceebfSJohn Snow 4188bd5ceebfSJohn Snow--- Cleanup --- 4189bd5ceebfSJohn Snow 4190bd5ceebfSJohn Snow{"execute": "block-dirty-bitmap-remove", "arguments": {"name": "bitmap0", "node": "drive0"}} 4191bd5ceebfSJohn Snow{"return": {}} 4192bd5ceebfSJohn Snow{ 41935c4343b8SVladimir Sementsov-Ogievskiy "bitmaps": {} 4194bd5ceebfSJohn Snow} 4195bd5ceebfSJohn Snow 4196bd5ceebfSJohn Snow--- Verification --- 4197bd5ceebfSJohn Snow 4198bd5ceebfSJohn Snowqemu_img compare "TEST_DIR/PID-bsync1" "TEST_DIR/PID-fbackup1" ==> Mismatch, OK! 4199bd5ceebfSJohn Snowqemu_img compare "TEST_DIR/PID-bsync2" "TEST_DIR/PID-fbackup2" ==> Identical, OK! 4200bd5ceebfSJohn Snowqemu_img compare "TEST_DIR/PID-img" "TEST_DIR/PID-fbackup2" ==> Identical, OK! 4201bd5ceebfSJohn Snow 4202bd5ceebfSJohn Snow 4203bd5ceebfSJohn Snow=== Mode top; Bitmap Sync on-success without failure === 4204bd5ceebfSJohn Snow 4205bd5ceebfSJohn Snow--- Preparing image & VM --- 4206bd5ceebfSJohn Snow 4207bd5ceebfSJohn Snow{"execute": "blockdev-add", "arguments": {"driver": "qcow2", "file": {"driver": "file", "filename": "TEST_DIR/PID-img"}, "node-name": "drive0"}} 4208bd5ceebfSJohn Snow{"return": {}} 4209bd5ceebfSJohn Snow 4210bd5ceebfSJohn Snow--- Write #0 --- 4211bd5ceebfSJohn Snow 4212bd5ceebfSJohn Snowwrite -P0x49 0x0000000 0x10000 4213bd5ceebfSJohn Snow{"return": ""} 4214bd5ceebfSJohn Snowwrite -P0x6c 0x0100000 0x10000 4215bd5ceebfSJohn Snow{"return": ""} 4216bd5ceebfSJohn Snowwrite -P0x6f 0x2000000 0x10000 4217bd5ceebfSJohn Snow{"return": ""} 4218bd5ceebfSJohn Snowwrite -P0x76 0x3ff0000 0x10000 4219bd5ceebfSJohn Snow{"return": ""} 4220bd5ceebfSJohn Snow{ 42215c4343b8SVladimir Sementsov-Ogievskiy "bitmaps": {} 4222bd5ceebfSJohn Snow} 4223bd5ceebfSJohn Snow 4224bd5ceebfSJohn Snow--- Reference Backup #0 --- 4225bd5ceebfSJohn Snow 4226bd5ceebfSJohn Snow{} 4227bd5ceebfSJohn Snow{"execute": "job-dismiss", "arguments": {"id": "bdc-file-job"}} 4228bd5ceebfSJohn Snow{"return": {}} 4229bd5ceebfSJohn Snow{} 4230bd5ceebfSJohn Snow{} 4231bd5ceebfSJohn Snow{"execute": "job-dismiss", "arguments": {"id": "bdc-fmt-job"}} 4232bd5ceebfSJohn Snow{"return": {}} 4233bd5ceebfSJohn Snow{} 42342d0f32e3SVladimir Sementsov-Ogievskiy{"execute": "blockdev-backup", "arguments": {"device": "drive0", "filter-node-name": "backup-top", "job-id": "ref_backup_0", "sync": "full", "target": "ref_target_0", "x-perf": {"max-workers": 1}}} 4235bd5ceebfSJohn Snow{"return": {}} 4236bd5ceebfSJohn Snow{"data": {"device": "ref_backup_0", "len": 67108864, "offset": 67108864, "speed": 0, "type": "backup"}, "event": "BLOCK_JOB_COMPLETED", "timestamp": {"microseconds": "USECS", "seconds": "SECS"}} 4237bd5ceebfSJohn Snow 4238bd5ceebfSJohn Snow--- Add Bitmap --- 4239bd5ceebfSJohn Snow 4240bd5ceebfSJohn Snow{"execute": "block-dirty-bitmap-add", "arguments": {"granularity": 65536, "name": "bitmap0", "node": "drive0"}} 4241bd5ceebfSJohn Snow{"return": {}} 4242bd5ceebfSJohn Snow 4243bd5ceebfSJohn Snow--- Write #1 --- 4244bd5ceebfSJohn Snow 4245bd5ceebfSJohn Snowwrite -P0x65 0x0000000 0x10000 4246bd5ceebfSJohn Snow{"return": ""} 4247bd5ceebfSJohn Snowwrite -P0x77 0x00f8000 0x10000 4248bd5ceebfSJohn Snow{"return": ""} 4249bd5ceebfSJohn Snowwrite -P0x72 0x2008000 0x10000 4250bd5ceebfSJohn Snow{"return": ""} 4251bd5ceebfSJohn Snowwrite -P0x69 0x3fe0000 0x10000 4252bd5ceebfSJohn Snow{"return": ""} 4253bd5ceebfSJohn Snow{ 4254bd5ceebfSJohn Snow "bitmaps": { 42555c4343b8SVladimir Sementsov-Ogievskiy "drive0": [ 4256bd5ceebfSJohn Snow { 4257bd5ceebfSJohn Snow "busy": false, 4258bd5ceebfSJohn Snow "count": 393216, 4259bd5ceebfSJohn Snow "granularity": 65536, 4260bd5ceebfSJohn Snow "name": "bitmap0", 4261bd5ceebfSJohn Snow "persistent": false, 426281cbfd50SDaniel P. Berrangé "recording": true 4263bd5ceebfSJohn Snow } 4264bd5ceebfSJohn Snow ] 4265bd5ceebfSJohn Snow } 4266bd5ceebfSJohn Snow} 4267bd5ceebfSJohn Snow 4268bd5ceebfSJohn Snow= Checking Bitmap bitmap0 = 4269bd5ceebfSJohn Snowexpecting 6 dirty sectors; have 6. OK! 4270bd5ceebfSJohn Snow 4271bd5ceebfSJohn Snow--- Reference Backup #1 --- 4272bd5ceebfSJohn Snow 4273bd5ceebfSJohn Snow{} 4274bd5ceebfSJohn Snow{"execute": "job-dismiss", "arguments": {"id": "bdc-file-job"}} 4275bd5ceebfSJohn Snow{"return": {}} 4276bd5ceebfSJohn Snow{} 4277bd5ceebfSJohn Snow{} 4278bd5ceebfSJohn Snow{"execute": "job-dismiss", "arguments": {"id": "bdc-fmt-job"}} 4279bd5ceebfSJohn Snow{"return": {}} 4280bd5ceebfSJohn Snow{} 42812d0f32e3SVladimir Sementsov-Ogievskiy{"execute": "blockdev-backup", "arguments": {"device": "drive0", "filter-node-name": "backup-top", "job-id": "ref_backup_1", "sync": "full", "target": "ref_target_1", "x-perf": {"max-workers": 1}}} 4282bd5ceebfSJohn Snow{"return": {}} 4283bd5ceebfSJohn Snow{"data": {"device": "ref_backup_1", "len": 67108864, "offset": 67108864, "speed": 0, "type": "backup"}, "event": "BLOCK_JOB_COMPLETED", "timestamp": {"microseconds": "USECS", "seconds": "SECS"}} 4284bd5ceebfSJohn Snow 4285bd5ceebfSJohn Snow--- Test Backup #1 --- 4286bd5ceebfSJohn Snow 4287bd5ceebfSJohn Snow{} 4288bd5ceebfSJohn Snow{"execute": "job-dismiss", "arguments": {"id": "bdc-file-job"}} 4289bd5ceebfSJohn Snow{"return": {}} 4290bd5ceebfSJohn Snow{} 4291bd5ceebfSJohn Snow{} 4292bd5ceebfSJohn Snow{"execute": "job-dismiss", "arguments": {"id": "bdc-fmt-job"}} 4293bd5ceebfSJohn Snow{"return": {}} 4294bd5ceebfSJohn Snow{} 42952d0f32e3SVladimir Sementsov-Ogievskiy{"execute": "blockdev-backup", "arguments": {"auto-finalize": false, "bitmap": "bitmap0", "bitmap-mode": "on-success", "device": "drive0", "filter-node-name": "backup-top", "job-id": "backup_1", "sync": "top", "target": "backup_target_1", "x-perf": {"max-workers": 1}}} 4296bd5ceebfSJohn Snow{"return": {}} 4297bd5ceebfSJohn Snow 4298bd5ceebfSJohn Snow--- Write #2 --- 4299bd5ceebfSJohn Snow 4300bd5ceebfSJohn Snowwrite -P0x74 0x0010000 0x10000 4301bd5ceebfSJohn Snow{"return": ""} 4302bd5ceebfSJohn Snowwrite -P0x69 0x00e8000 0x10000 4303bd5ceebfSJohn Snow{"return": ""} 4304bd5ceebfSJohn Snowwrite -P0x6e 0x2018000 0x10000 4305bd5ceebfSJohn Snow{"return": ""} 4306bd5ceebfSJohn Snowwrite -P0x67 0x3fe0000 0x20000 4307bd5ceebfSJohn Snow{"return": ""} 4308bd5ceebfSJohn Snow{ 4309bd5ceebfSJohn Snow "bitmaps": { 4310af5bcd77SVladimir Sementsov-Ogievskiy "backup-top": [ 4311af5bcd77SVladimir Sementsov-Ogievskiy { 4312af5bcd77SVladimir Sementsov-Ogievskiy "busy": false, 4313af5bcd77SVladimir Sementsov-Ogievskiy "count": 67108864, 4314af5bcd77SVladimir Sementsov-Ogievskiy "granularity": 65536, 4315af5bcd77SVladimir Sementsov-Ogievskiy "persistent": false, 4316af5bcd77SVladimir Sementsov-Ogievskiy "recording": false 4317af5bcd77SVladimir Sementsov-Ogievskiy }, 4318af5bcd77SVladimir Sementsov-Ogievskiy { 4319af5bcd77SVladimir Sementsov-Ogievskiy "busy": false, 4320af5bcd77SVladimir Sementsov-Ogievskiy "count": 458752, 4321af5bcd77SVladimir Sementsov-Ogievskiy "granularity": 65536, 4322af5bcd77SVladimir Sementsov-Ogievskiy "persistent": false, 4323af5bcd77SVladimir Sementsov-Ogievskiy "recording": false 4324*006e845bSVladimir Sementsov-Ogievskiy }, 4325bd5ceebfSJohn Snow { 4326bd5ceebfSJohn Snow "busy": false, 4327bd5ceebfSJohn Snow "count": 0, 4328bd5ceebfSJohn Snow "granularity": 65536, 4329bd5ceebfSJohn Snow "persistent": false, 433081cbfd50SDaniel P. Berrangé "recording": false 4331*006e845bSVladimir Sementsov-Ogievskiy } 4332*006e845bSVladimir Sementsov-Ogievskiy ], 4333*006e845bSVladimir Sementsov-Ogievskiy "drive0": [ 4334bd5ceebfSJohn Snow { 4335bd5ceebfSJohn Snow "busy": false, 4336bd5ceebfSJohn Snow "count": 458752, 4337bd5ceebfSJohn Snow "granularity": 65536, 4338bd5ceebfSJohn Snow "persistent": false, 433981cbfd50SDaniel P. Berrangé "recording": true 4340bd5ceebfSJohn Snow }, 4341bd5ceebfSJohn Snow { 4342bd5ceebfSJohn Snow "busy": true, 4343bd5ceebfSJohn Snow "count": 393216, 4344bd5ceebfSJohn Snow "granularity": 65536, 4345bd5ceebfSJohn Snow "name": "bitmap0", 4346bd5ceebfSJohn Snow "persistent": false, 434781cbfd50SDaniel P. Berrangé "recording": true 4348bd5ceebfSJohn Snow } 4349bd5ceebfSJohn Snow ] 4350bd5ceebfSJohn Snow } 4351bd5ceebfSJohn Snow} 4352bd5ceebfSJohn Snow 4353bd5ceebfSJohn Snow= Checking Bitmap bitmap0 = 4354bd5ceebfSJohn Snowexpecting 6 dirty sectors; have 6. OK! 4355bd5ceebfSJohn Snow 4356bd5ceebfSJohn Snow= Checking Bitmap (anonymous) = 4357bd5ceebfSJohn Snowexpecting 7 dirty sectors; have 7. OK! 4358bd5ceebfSJohn Snow 4359bd5ceebfSJohn Snow{"execute": "job-finalize", "arguments": {"id": "backup_1"}} 4360bd5ceebfSJohn Snow{"return": {}} 4361bd5ceebfSJohn Snow{"data": {"id": "backup_1", "type": "backup"}, "event": "BLOCK_JOB_PENDING", "timestamp": {"microseconds": "USECS", "seconds": "SECS"}} 4362bd5ceebfSJohn Snow{"data": {"device": "backup_1", "len": 458752, "offset": 458752, "speed": 0, "type": "backup"}, "event": "BLOCK_JOB_COMPLETED", "timestamp": {"microseconds": "USECS", "seconds": "SECS"}} 4363bd5ceebfSJohn Snow{ 4364bd5ceebfSJohn Snow "bitmaps": { 43655c4343b8SVladimir Sementsov-Ogievskiy "drive0": [ 4366bd5ceebfSJohn Snow { 4367bd5ceebfSJohn Snow "busy": false, 4368bd5ceebfSJohn Snow "count": 458752, 4369bd5ceebfSJohn Snow "granularity": 65536, 4370bd5ceebfSJohn Snow "name": "bitmap0", 4371bd5ceebfSJohn Snow "persistent": false, 437281cbfd50SDaniel P. Berrangé "recording": true 4373bd5ceebfSJohn Snow } 4374bd5ceebfSJohn Snow ] 4375bd5ceebfSJohn Snow } 4376bd5ceebfSJohn Snow} 4377bd5ceebfSJohn Snow 4378bd5ceebfSJohn Snow= Checking Bitmap bitmap0 = 4379bd5ceebfSJohn Snowexpecting 7 dirty sectors; have 7. OK! 4380bd5ceebfSJohn Snow 4381bd5ceebfSJohn Snow--- Write #3 --- 4382bd5ceebfSJohn Snow 4383bd5ceebfSJohn Snowwrite -P0xaa 0x0010000 0x30000 4384bd5ceebfSJohn Snow{"return": ""} 4385bd5ceebfSJohn Snowwrite -P0xbb 0x00d8000 0x10000 4386bd5ceebfSJohn Snow{"return": ""} 4387bd5ceebfSJohn Snowwrite -P0xcc 0x2028000 0x10000 4388bd5ceebfSJohn Snow{"return": ""} 4389bd5ceebfSJohn Snowwrite -P0xdd 0x3fc0000 0x10000 4390bd5ceebfSJohn Snow{"return": ""} 4391bd5ceebfSJohn Snow{ 4392bd5ceebfSJohn Snow "bitmaps": { 43935c4343b8SVladimir Sementsov-Ogievskiy "drive0": [ 4394bd5ceebfSJohn Snow { 4395bd5ceebfSJohn Snow "busy": false, 4396bd5ceebfSJohn Snow "count": 786432, 4397bd5ceebfSJohn Snow "granularity": 65536, 4398bd5ceebfSJohn Snow "name": "bitmap0", 4399bd5ceebfSJohn Snow "persistent": false, 440081cbfd50SDaniel P. Berrangé "recording": true 4401bd5ceebfSJohn Snow } 4402bd5ceebfSJohn Snow ] 4403bd5ceebfSJohn Snow } 4404bd5ceebfSJohn Snow} 4405bd5ceebfSJohn Snow 4406bd5ceebfSJohn Snow= Checking Bitmap bitmap0 = 4407bd5ceebfSJohn Snowexpecting 12 dirty sectors; have 12. OK! 4408bd5ceebfSJohn Snow 4409bd5ceebfSJohn Snow--- Reference Backup #2 --- 4410bd5ceebfSJohn Snow 4411bd5ceebfSJohn Snow{} 4412bd5ceebfSJohn Snow{"execute": "job-dismiss", "arguments": {"id": "bdc-file-job"}} 4413bd5ceebfSJohn Snow{"return": {}} 4414bd5ceebfSJohn Snow{} 4415bd5ceebfSJohn Snow{} 4416bd5ceebfSJohn Snow{"execute": "job-dismiss", "arguments": {"id": "bdc-fmt-job"}} 4417bd5ceebfSJohn Snow{"return": {}} 4418bd5ceebfSJohn Snow{} 44192d0f32e3SVladimir Sementsov-Ogievskiy{"execute": "blockdev-backup", "arguments": {"device": "drive0", "filter-node-name": "backup-top", "job-id": "ref_backup_2", "sync": "full", "target": "ref_target_2", "x-perf": {"max-workers": 1}}} 4420bd5ceebfSJohn Snow{"return": {}} 4421bd5ceebfSJohn Snow{"data": {"device": "ref_backup_2", "len": 67108864, "offset": 67108864, "speed": 0, "type": "backup"}, "event": "BLOCK_JOB_COMPLETED", "timestamp": {"microseconds": "USECS", "seconds": "SECS"}} 4422bd5ceebfSJohn Snow 4423bd5ceebfSJohn Snow--- Test Backup #2 --- 4424bd5ceebfSJohn Snow 4425bd5ceebfSJohn Snow{} 4426bd5ceebfSJohn Snow{"execute": "job-dismiss", "arguments": {"id": "bdc-file-job"}} 4427bd5ceebfSJohn Snow{"return": {}} 4428bd5ceebfSJohn Snow{} 4429bd5ceebfSJohn Snow{} 4430bd5ceebfSJohn Snow{"execute": "job-dismiss", "arguments": {"id": "bdc-fmt-job"}} 4431bd5ceebfSJohn Snow{"return": {}} 4432bd5ceebfSJohn Snow{} 44332d0f32e3SVladimir Sementsov-Ogievskiy{"execute": "blockdev-backup", "arguments": {"auto-finalize": false, "bitmap": "bitmap0", "bitmap-mode": "on-success", "device": "drive0", "filter-node-name": "backup-top", "job-id": "backup_2", "sync": "bitmap", "target": "backup_target_2", "x-perf": {"max-workers": 1}}} 4434bd5ceebfSJohn Snow{"return": {}} 4435bd5ceebfSJohn Snow{"execute": "job-finalize", "arguments": {"id": "backup_2"}} 4436bd5ceebfSJohn Snow{"return": {}} 4437bd5ceebfSJohn Snow{"data": {"id": "backup_2", "type": "backup"}, "event": "BLOCK_JOB_PENDING", "timestamp": {"microseconds": "USECS", "seconds": "SECS"}} 4438bd5ceebfSJohn Snow{"data": {"device": "backup_2", "len": 786432, "offset": 786432, "speed": 0, "type": "backup"}, "event": "BLOCK_JOB_COMPLETED", "timestamp": {"microseconds": "USECS", "seconds": "SECS"}} 4439bd5ceebfSJohn Snow{ 4440bd5ceebfSJohn Snow "bitmaps": { 44415c4343b8SVladimir Sementsov-Ogievskiy "drive0": [ 4442bd5ceebfSJohn Snow { 4443bd5ceebfSJohn Snow "busy": false, 4444bd5ceebfSJohn Snow "count": 0, 4445bd5ceebfSJohn Snow "granularity": 65536, 4446bd5ceebfSJohn Snow "name": "bitmap0", 4447bd5ceebfSJohn Snow "persistent": false, 444881cbfd50SDaniel P. Berrangé "recording": true 4449bd5ceebfSJohn Snow } 4450bd5ceebfSJohn Snow ] 4451bd5ceebfSJohn Snow } 4452bd5ceebfSJohn Snow} 4453bd5ceebfSJohn Snow 4454bd5ceebfSJohn Snow= Checking Bitmap bitmap0 = 4455bd5ceebfSJohn Snowexpecting 0 dirty sectors; have 0. OK! 4456bd5ceebfSJohn Snow 4457bd5ceebfSJohn Snow--- Cleanup --- 4458bd5ceebfSJohn Snow 4459bd5ceebfSJohn Snow{"execute": "block-dirty-bitmap-remove", "arguments": {"name": "bitmap0", "node": "drive0"}} 4460bd5ceebfSJohn Snow{"return": {}} 4461bd5ceebfSJohn Snow{ 44625c4343b8SVladimir Sementsov-Ogievskiy "bitmaps": {} 4463bd5ceebfSJohn Snow} 4464bd5ceebfSJohn Snow 4465bd5ceebfSJohn Snow--- Verification --- 4466bd5ceebfSJohn Snow 4467bd5ceebfSJohn Snowqemu_img compare "TEST_DIR/PID-bsync1" "TEST_DIR/PID-fbackup1" ==> Identical, OK! 4468bd5ceebfSJohn Snowqemu_img compare "TEST_DIR/PID-bsync2" "TEST_DIR/PID-fbackup2" ==> Identical, OK! 4469bd5ceebfSJohn Snowqemu_img compare "TEST_DIR/PID-img" "TEST_DIR/PID-fbackup2" ==> Identical, OK! 4470bd5ceebfSJohn Snow 4471bd5ceebfSJohn Snow 4472bd5ceebfSJohn Snow=== Mode top; Bitmap Sync always with simulated failure === 4473bd5ceebfSJohn Snow 4474bd5ceebfSJohn Snow--- Preparing image & VM --- 4475bd5ceebfSJohn Snow 4476bd5ceebfSJohn Snow{"execute": "blockdev-add", "arguments": {"driver": "qcow2", "file": {"driver": "file", "filename": "TEST_DIR/PID-img"}, "node-name": "drive0"}} 4477bd5ceebfSJohn Snow{"return": {}} 4478bd5ceebfSJohn Snow 4479bd5ceebfSJohn Snow--- Write #0 --- 4480bd5ceebfSJohn Snow 4481bd5ceebfSJohn Snowwrite -P0x49 0x0000000 0x10000 4482bd5ceebfSJohn Snow{"return": ""} 4483bd5ceebfSJohn Snowwrite -P0x6c 0x0100000 0x10000 4484bd5ceebfSJohn Snow{"return": ""} 4485bd5ceebfSJohn Snowwrite -P0x6f 0x2000000 0x10000 4486bd5ceebfSJohn Snow{"return": ""} 4487bd5ceebfSJohn Snowwrite -P0x76 0x3ff0000 0x10000 4488bd5ceebfSJohn Snow{"return": ""} 4489bd5ceebfSJohn Snow{ 44905c4343b8SVladimir Sementsov-Ogievskiy "bitmaps": {} 4491bd5ceebfSJohn Snow} 4492bd5ceebfSJohn Snow 4493bd5ceebfSJohn Snow--- Reference Backup #0 --- 4494bd5ceebfSJohn Snow 4495bd5ceebfSJohn Snow{} 4496bd5ceebfSJohn Snow{"execute": "job-dismiss", "arguments": {"id": "bdc-file-job"}} 4497bd5ceebfSJohn Snow{"return": {}} 4498bd5ceebfSJohn Snow{} 4499bd5ceebfSJohn Snow{} 4500bd5ceebfSJohn Snow{"execute": "job-dismiss", "arguments": {"id": "bdc-fmt-job"}} 4501bd5ceebfSJohn Snow{"return": {}} 4502bd5ceebfSJohn Snow{} 45032d0f32e3SVladimir Sementsov-Ogievskiy{"execute": "blockdev-backup", "arguments": {"device": "drive0", "filter-node-name": "backup-top", "job-id": "ref_backup_0", "sync": "full", "target": "ref_target_0", "x-perf": {"max-workers": 1}}} 4504bd5ceebfSJohn Snow{"return": {}} 4505bd5ceebfSJohn Snow{"data": {"device": "ref_backup_0", "len": 67108864, "offset": 67108864, "speed": 0, "type": "backup"}, "event": "BLOCK_JOB_COMPLETED", "timestamp": {"microseconds": "USECS", "seconds": "SECS"}} 4506bd5ceebfSJohn Snow 4507bd5ceebfSJohn Snow--- Add Bitmap --- 4508bd5ceebfSJohn Snow 4509bd5ceebfSJohn Snow{"execute": "block-dirty-bitmap-add", "arguments": {"granularity": 65536, "name": "bitmap0", "node": "drive0"}} 4510bd5ceebfSJohn Snow{"return": {}} 4511bd5ceebfSJohn Snow 4512bd5ceebfSJohn Snow--- Write #1 --- 4513bd5ceebfSJohn Snow 4514bd5ceebfSJohn Snowwrite -P0x65 0x0000000 0x10000 4515bd5ceebfSJohn Snow{"return": ""} 4516bd5ceebfSJohn Snowwrite -P0x77 0x00f8000 0x10000 4517bd5ceebfSJohn Snow{"return": ""} 4518bd5ceebfSJohn Snowwrite -P0x72 0x2008000 0x10000 4519bd5ceebfSJohn Snow{"return": ""} 4520bd5ceebfSJohn Snowwrite -P0x69 0x3fe0000 0x10000 4521bd5ceebfSJohn Snow{"return": ""} 4522bd5ceebfSJohn Snow{ 4523bd5ceebfSJohn Snow "bitmaps": { 45245c4343b8SVladimir Sementsov-Ogievskiy "drive0": [ 4525bd5ceebfSJohn Snow { 4526bd5ceebfSJohn Snow "busy": false, 4527bd5ceebfSJohn Snow "count": 393216, 4528bd5ceebfSJohn Snow "granularity": 65536, 4529bd5ceebfSJohn Snow "name": "bitmap0", 4530bd5ceebfSJohn Snow "persistent": false, 453181cbfd50SDaniel P. Berrangé "recording": true 4532bd5ceebfSJohn Snow } 4533bd5ceebfSJohn Snow ] 4534bd5ceebfSJohn Snow } 4535bd5ceebfSJohn Snow} 4536bd5ceebfSJohn Snow 4537bd5ceebfSJohn Snow= Checking Bitmap bitmap0 = 4538bd5ceebfSJohn Snowexpecting 6 dirty sectors; have 6. OK! 4539bd5ceebfSJohn Snow 4540bd5ceebfSJohn Snow--- Reference Backup #1 --- 4541bd5ceebfSJohn Snow 4542bd5ceebfSJohn Snow{} 4543bd5ceebfSJohn Snow{"execute": "job-dismiss", "arguments": {"id": "bdc-file-job"}} 4544bd5ceebfSJohn Snow{"return": {}} 4545bd5ceebfSJohn Snow{} 4546bd5ceebfSJohn Snow{} 4547bd5ceebfSJohn Snow{"execute": "job-dismiss", "arguments": {"id": "bdc-fmt-job"}} 4548bd5ceebfSJohn Snow{"return": {}} 4549bd5ceebfSJohn Snow{} 45502d0f32e3SVladimir Sementsov-Ogievskiy{"execute": "blockdev-backup", "arguments": {"device": "drive0", "filter-node-name": "backup-top", "job-id": "ref_backup_1", "sync": "full", "target": "ref_target_1", "x-perf": {"max-workers": 1}}} 4551bd5ceebfSJohn Snow{"return": {}} 4552bd5ceebfSJohn Snow{"data": {"device": "ref_backup_1", "len": 67108864, "offset": 67108864, "speed": 0, "type": "backup"}, "event": "BLOCK_JOB_COMPLETED", "timestamp": {"microseconds": "USECS", "seconds": "SECS"}} 4553bd5ceebfSJohn Snow 4554bd5ceebfSJohn Snow--- Test Backup #1 --- 4555bd5ceebfSJohn Snow 4556bd5ceebfSJohn Snow{} 4557bd5ceebfSJohn Snow{"execute": "job-dismiss", "arguments": {"id": "bdc-file-job"}} 4558bd5ceebfSJohn Snow{"return": {}} 4559bd5ceebfSJohn Snow{} 4560bd5ceebfSJohn Snow{} 4561bd5ceebfSJohn Snow{"execute": "job-dismiss", "arguments": {"id": "bdc-fmt-job"}} 4562bd5ceebfSJohn Snow{"return": {}} 4563bd5ceebfSJohn Snow{} 45642d0f32e3SVladimir Sementsov-Ogievskiy{"execute": "blockdev-backup", "arguments": {"auto-finalize": false, "bitmap": "bitmap0", "bitmap-mode": "always", "device": "drive0", "filter-node-name": "backup-top", "job-id": "backup_1", "sync": "top", "target": "backup_target_1", "x-perf": {"max-workers": 1}}} 4565bd5ceebfSJohn Snow{"return": {}} 4566bd5ceebfSJohn Snow 4567bd5ceebfSJohn Snow--- Write #2 --- 4568bd5ceebfSJohn Snow 4569bd5ceebfSJohn Snowwrite -P0x74 0x0010000 0x10000 4570bd5ceebfSJohn Snow{"return": ""} 4571bd5ceebfSJohn Snowwrite -P0x69 0x00e8000 0x10000 4572bd5ceebfSJohn Snow{"return": ""} 4573bd5ceebfSJohn Snowwrite -P0x6e 0x2018000 0x10000 4574bd5ceebfSJohn Snow{"return": ""} 4575bd5ceebfSJohn Snowwrite -P0x67 0x3fe0000 0x20000 4576bd5ceebfSJohn Snow{"return": ""} 4577bd5ceebfSJohn Snow{ 4578bd5ceebfSJohn Snow "bitmaps": { 4579af5bcd77SVladimir Sementsov-Ogievskiy "backup-top": [ 4580af5bcd77SVladimir Sementsov-Ogievskiy { 4581af5bcd77SVladimir Sementsov-Ogievskiy "busy": false, 4582af5bcd77SVladimir Sementsov-Ogievskiy "count": 67108864, 4583af5bcd77SVladimir Sementsov-Ogievskiy "granularity": 65536, 4584af5bcd77SVladimir Sementsov-Ogievskiy "persistent": false, 4585af5bcd77SVladimir Sementsov-Ogievskiy "recording": false 4586af5bcd77SVladimir Sementsov-Ogievskiy }, 4587af5bcd77SVladimir Sementsov-Ogievskiy { 4588af5bcd77SVladimir Sementsov-Ogievskiy "busy": false, 4589af5bcd77SVladimir Sementsov-Ogievskiy "count": 458752, 4590af5bcd77SVladimir Sementsov-Ogievskiy "granularity": 65536, 4591af5bcd77SVladimir Sementsov-Ogievskiy "persistent": false, 4592af5bcd77SVladimir Sementsov-Ogievskiy "recording": false 4593*006e845bSVladimir Sementsov-Ogievskiy }, 4594bd5ceebfSJohn Snow { 4595bd5ceebfSJohn Snow "busy": false, 4596bd5ceebfSJohn Snow "count": 0, 4597bd5ceebfSJohn Snow "granularity": 65536, 4598bd5ceebfSJohn Snow "persistent": false, 459981cbfd50SDaniel P. Berrangé "recording": false 4600*006e845bSVladimir Sementsov-Ogievskiy } 4601*006e845bSVladimir Sementsov-Ogievskiy ], 4602*006e845bSVladimir Sementsov-Ogievskiy "drive0": [ 4603bd5ceebfSJohn Snow { 4604bd5ceebfSJohn Snow "busy": false, 4605bd5ceebfSJohn Snow "count": 458752, 4606bd5ceebfSJohn Snow "granularity": 65536, 4607bd5ceebfSJohn Snow "persistent": false, 460881cbfd50SDaniel P. Berrangé "recording": true 4609bd5ceebfSJohn Snow }, 4610bd5ceebfSJohn Snow { 4611bd5ceebfSJohn Snow "busy": true, 4612bd5ceebfSJohn Snow "count": 393216, 4613bd5ceebfSJohn Snow "granularity": 65536, 4614bd5ceebfSJohn Snow "name": "bitmap0", 4615bd5ceebfSJohn Snow "persistent": false, 461681cbfd50SDaniel P. Berrangé "recording": true 4617bd5ceebfSJohn Snow } 4618bd5ceebfSJohn Snow ] 4619bd5ceebfSJohn Snow } 4620bd5ceebfSJohn Snow} 4621bd5ceebfSJohn Snow 4622bd5ceebfSJohn Snow= Checking Bitmap bitmap0 = 4623bd5ceebfSJohn Snowexpecting 6 dirty sectors; have 6. OK! 4624bd5ceebfSJohn Snow 4625bd5ceebfSJohn Snow= Checking Bitmap (anonymous) = 4626bd5ceebfSJohn Snowexpecting 7 dirty sectors; have 7. OK! 4627bd5ceebfSJohn Snow 4628bd5ceebfSJohn Snow{"execute": "job-cancel", "arguments": {"id": "backup_1"}} 4629bd5ceebfSJohn Snow{"return": {}} 4630bd5ceebfSJohn Snow{"data": {"id": "backup_1", "type": "backup"}, "event": "BLOCK_JOB_PENDING", "timestamp": {"microseconds": "USECS", "seconds": "SECS"}} 4631bd5ceebfSJohn Snow{"data": {"device": "backup_1", "len": 458752, "offset": 458752, "speed": 0, "type": "backup"}, "event": "BLOCK_JOB_CANCELLED", "timestamp": {"microseconds": "USECS", "seconds": "SECS"}} 4632bd5ceebfSJohn Snow{ 4633bd5ceebfSJohn Snow "bitmaps": { 46345c4343b8SVladimir Sementsov-Ogievskiy "drive0": [ 4635bd5ceebfSJohn Snow { 4636bd5ceebfSJohn Snow "busy": false, 4637bd5ceebfSJohn Snow "count": 458752, 4638bd5ceebfSJohn Snow "granularity": 65536, 4639bd5ceebfSJohn Snow "name": "bitmap0", 4640bd5ceebfSJohn Snow "persistent": false, 464181cbfd50SDaniel P. Berrangé "recording": true 4642bd5ceebfSJohn Snow } 4643bd5ceebfSJohn Snow ] 4644bd5ceebfSJohn Snow } 4645bd5ceebfSJohn Snow} 4646bd5ceebfSJohn Snow 4647bd5ceebfSJohn Snow= Checking Bitmap bitmap0 = 4648bd5ceebfSJohn Snowexpecting 7 dirty sectors; have 7. OK! 4649bd5ceebfSJohn Snow 4650bd5ceebfSJohn Snow--- Write #3 --- 4651bd5ceebfSJohn Snow 4652bd5ceebfSJohn Snowwrite -P0xaa 0x0010000 0x30000 4653bd5ceebfSJohn Snow{"return": ""} 4654bd5ceebfSJohn Snowwrite -P0xbb 0x00d8000 0x10000 4655bd5ceebfSJohn Snow{"return": ""} 4656bd5ceebfSJohn Snowwrite -P0xcc 0x2028000 0x10000 4657bd5ceebfSJohn Snow{"return": ""} 4658bd5ceebfSJohn Snowwrite -P0xdd 0x3fc0000 0x10000 4659bd5ceebfSJohn Snow{"return": ""} 4660bd5ceebfSJohn Snow{ 4661bd5ceebfSJohn Snow "bitmaps": { 46625c4343b8SVladimir Sementsov-Ogievskiy "drive0": [ 4663bd5ceebfSJohn Snow { 4664bd5ceebfSJohn Snow "busy": false, 4665bd5ceebfSJohn Snow "count": 786432, 4666bd5ceebfSJohn Snow "granularity": 65536, 4667bd5ceebfSJohn Snow "name": "bitmap0", 4668bd5ceebfSJohn Snow "persistent": false, 466981cbfd50SDaniel P. Berrangé "recording": true 4670bd5ceebfSJohn Snow } 4671bd5ceebfSJohn Snow ] 4672bd5ceebfSJohn Snow } 4673bd5ceebfSJohn Snow} 4674bd5ceebfSJohn Snow 4675bd5ceebfSJohn Snow= Checking Bitmap bitmap0 = 4676bd5ceebfSJohn Snowexpecting 12 dirty sectors; have 12. OK! 4677bd5ceebfSJohn Snow 4678bd5ceebfSJohn Snow--- Reference Backup #2 --- 4679bd5ceebfSJohn Snow 4680bd5ceebfSJohn Snow{} 4681bd5ceebfSJohn Snow{"execute": "job-dismiss", "arguments": {"id": "bdc-file-job"}} 4682bd5ceebfSJohn Snow{"return": {}} 4683bd5ceebfSJohn Snow{} 4684bd5ceebfSJohn Snow{} 4685bd5ceebfSJohn Snow{"execute": "job-dismiss", "arguments": {"id": "bdc-fmt-job"}} 4686bd5ceebfSJohn Snow{"return": {}} 4687bd5ceebfSJohn Snow{} 46882d0f32e3SVladimir Sementsov-Ogievskiy{"execute": "blockdev-backup", "arguments": {"device": "drive0", "filter-node-name": "backup-top", "job-id": "ref_backup_2", "sync": "full", "target": "ref_target_2", "x-perf": {"max-workers": 1}}} 4689bd5ceebfSJohn Snow{"return": {}} 4690bd5ceebfSJohn Snow{"data": {"device": "ref_backup_2", "len": 67108864, "offset": 67108864, "speed": 0, "type": "backup"}, "event": "BLOCK_JOB_COMPLETED", "timestamp": {"microseconds": "USECS", "seconds": "SECS"}} 4691bd5ceebfSJohn Snow 4692bd5ceebfSJohn Snow--- Test Backup #2 --- 4693bd5ceebfSJohn Snow 4694bd5ceebfSJohn Snow{} 4695bd5ceebfSJohn Snow{"execute": "job-dismiss", "arguments": {"id": "bdc-file-job"}} 4696bd5ceebfSJohn Snow{"return": {}} 4697bd5ceebfSJohn Snow{} 4698bd5ceebfSJohn Snow{} 4699bd5ceebfSJohn Snow{"execute": "job-dismiss", "arguments": {"id": "bdc-fmt-job"}} 4700bd5ceebfSJohn Snow{"return": {}} 4701bd5ceebfSJohn Snow{} 47022d0f32e3SVladimir Sementsov-Ogievskiy{"execute": "blockdev-backup", "arguments": {"auto-finalize": false, "bitmap": "bitmap0", "bitmap-mode": "always", "device": "drive0", "filter-node-name": "backup-top", "job-id": "backup_2", "sync": "bitmap", "target": "backup_target_2", "x-perf": {"max-workers": 1}}} 4703bd5ceebfSJohn Snow{"return": {}} 4704bd5ceebfSJohn Snow{"execute": "job-finalize", "arguments": {"id": "backup_2"}} 4705bd5ceebfSJohn Snow{"return": {}} 4706bd5ceebfSJohn Snow{"data": {"id": "backup_2", "type": "backup"}, "event": "BLOCK_JOB_PENDING", "timestamp": {"microseconds": "USECS", "seconds": "SECS"}} 4707bd5ceebfSJohn Snow{"data": {"device": "backup_2", "len": 786432, "offset": 786432, "speed": 0, "type": "backup"}, "event": "BLOCK_JOB_COMPLETED", "timestamp": {"microseconds": "USECS", "seconds": "SECS"}} 4708bd5ceebfSJohn Snow{ 4709bd5ceebfSJohn Snow "bitmaps": { 47105c4343b8SVladimir Sementsov-Ogievskiy "drive0": [ 4711bd5ceebfSJohn Snow { 4712bd5ceebfSJohn Snow "busy": false, 4713bd5ceebfSJohn Snow "count": 0, 4714bd5ceebfSJohn Snow "granularity": 65536, 4715bd5ceebfSJohn Snow "name": "bitmap0", 4716bd5ceebfSJohn Snow "persistent": false, 471781cbfd50SDaniel P. Berrangé "recording": true 4718bd5ceebfSJohn Snow } 4719bd5ceebfSJohn Snow ] 4720bd5ceebfSJohn Snow } 4721bd5ceebfSJohn Snow} 4722bd5ceebfSJohn Snow 4723bd5ceebfSJohn Snow= Checking Bitmap bitmap0 = 4724bd5ceebfSJohn Snowexpecting 0 dirty sectors; have 0. OK! 4725bd5ceebfSJohn Snow 4726bd5ceebfSJohn Snow--- Cleanup --- 4727bd5ceebfSJohn Snow 4728bd5ceebfSJohn Snow{"execute": "block-dirty-bitmap-remove", "arguments": {"name": "bitmap0", "node": "drive0"}} 4729bd5ceebfSJohn Snow{"return": {}} 4730bd5ceebfSJohn Snow{ 47315c4343b8SVladimir Sementsov-Ogievskiy "bitmaps": {} 4732bd5ceebfSJohn Snow} 4733bd5ceebfSJohn Snow 4734bd5ceebfSJohn Snow--- Verification --- 4735bd5ceebfSJohn Snow 4736bd5ceebfSJohn Snowqemu_img compare "TEST_DIR/PID-bsync1" "TEST_DIR/PID-fbackup1" ==> Identical, OK! 4737bd5ceebfSJohn Snowqemu_img compare "TEST_DIR/PID-bsync2" "TEST_DIR/PID-fbackup2" ==> Identical, OK! 4738bd5ceebfSJohn Snowqemu_img compare "TEST_DIR/PID-img" "TEST_DIR/PID-fbackup2" ==> Identical, OK! 4739bd5ceebfSJohn Snow 4740bd5ceebfSJohn Snow 4741bd5ceebfSJohn Snow=== Mode top; Bitmap Sync always with intermediate failure === 4742bd5ceebfSJohn Snow 4743bd5ceebfSJohn Snow--- Preparing image & VM --- 4744bd5ceebfSJohn Snow 4745bd5ceebfSJohn Snow{"execute": "blockdev-add", "arguments": {"driver": "qcow2", "file": {"driver": "blkdebug", "image": {"driver": "file", "filename": "TEST_DIR/PID-img"}, "inject-error": [{"errno": 5, "event": "read_aio", "immediately": false, "once": true, "state": 3}], "set-state": [{"event": "flush_to_disk", "new-state": 2, "state": 1}, {"event": "read_aio", "new-state": 3, "state": 2}]}, "node-name": "drive0"}} 4746bd5ceebfSJohn Snow{"return": {}} 4747bd5ceebfSJohn Snow 4748bd5ceebfSJohn Snow--- Write #0 --- 4749bd5ceebfSJohn Snow 4750bd5ceebfSJohn Snowwrite -P0x49 0x0000000 0x10000 4751bd5ceebfSJohn Snow{"return": ""} 4752bd5ceebfSJohn Snowwrite -P0x6c 0x0100000 0x10000 4753bd5ceebfSJohn Snow{"return": ""} 4754bd5ceebfSJohn Snowwrite -P0x6f 0x2000000 0x10000 4755bd5ceebfSJohn Snow{"return": ""} 4756bd5ceebfSJohn Snowwrite -P0x76 0x3ff0000 0x10000 4757bd5ceebfSJohn Snow{"return": ""} 4758bd5ceebfSJohn Snow{ 47595c4343b8SVladimir Sementsov-Ogievskiy "bitmaps": {} 4760bd5ceebfSJohn Snow} 4761bd5ceebfSJohn Snow 4762bd5ceebfSJohn Snow--- Reference Backup #0 --- 4763bd5ceebfSJohn Snow 4764bd5ceebfSJohn Snow{} 4765bd5ceebfSJohn Snow{"execute": "job-dismiss", "arguments": {"id": "bdc-file-job"}} 4766bd5ceebfSJohn Snow{"return": {}} 4767bd5ceebfSJohn Snow{} 4768bd5ceebfSJohn Snow{} 4769bd5ceebfSJohn Snow{"execute": "job-dismiss", "arguments": {"id": "bdc-fmt-job"}} 4770bd5ceebfSJohn Snow{"return": {}} 4771bd5ceebfSJohn Snow{} 47722d0f32e3SVladimir Sementsov-Ogievskiy{"execute": "blockdev-backup", "arguments": {"device": "drive0", "filter-node-name": "backup-top", "job-id": "ref_backup_0", "sync": "full", "target": "ref_target_0", "x-perf": {"max-workers": 1}}} 4773bd5ceebfSJohn Snow{"return": {}} 4774bd5ceebfSJohn Snow{"data": {"device": "ref_backup_0", "len": 67108864, "offset": 67108864, "speed": 0, "type": "backup"}, "event": "BLOCK_JOB_COMPLETED", "timestamp": {"microseconds": "USECS", "seconds": "SECS"}} 4775bd5ceebfSJohn Snow 4776bd5ceebfSJohn Snow--- Add Bitmap --- 4777bd5ceebfSJohn Snow 4778bd5ceebfSJohn Snow{"execute": "block-dirty-bitmap-add", "arguments": {"granularity": 65536, "name": "bitmap0", "node": "drive0"}} 4779bd5ceebfSJohn Snow{"return": {}} 4780bd5ceebfSJohn Snow 4781bd5ceebfSJohn Snow--- Write #1 --- 4782bd5ceebfSJohn Snow 4783bd5ceebfSJohn Snowwrite -P0x65 0x0000000 0x10000 4784bd5ceebfSJohn Snow{"return": ""} 4785bd5ceebfSJohn Snowwrite -P0x77 0x00f8000 0x10000 4786bd5ceebfSJohn Snow{"return": ""} 4787bd5ceebfSJohn Snowwrite -P0x72 0x2008000 0x10000 4788bd5ceebfSJohn Snow{"return": ""} 4789bd5ceebfSJohn Snowwrite -P0x69 0x3fe0000 0x10000 4790bd5ceebfSJohn Snow{"return": ""} 4791bd5ceebfSJohn Snow{ 4792bd5ceebfSJohn Snow "bitmaps": { 47935c4343b8SVladimir Sementsov-Ogievskiy "drive0": [ 4794bd5ceebfSJohn Snow { 4795bd5ceebfSJohn Snow "busy": false, 4796bd5ceebfSJohn Snow "count": 393216, 4797bd5ceebfSJohn Snow "granularity": 65536, 4798bd5ceebfSJohn Snow "name": "bitmap0", 4799bd5ceebfSJohn Snow "persistent": false, 480081cbfd50SDaniel P. Berrangé "recording": true 4801bd5ceebfSJohn Snow } 4802bd5ceebfSJohn Snow ] 4803bd5ceebfSJohn Snow } 4804bd5ceebfSJohn Snow} 4805bd5ceebfSJohn Snow 4806bd5ceebfSJohn Snow= Checking Bitmap bitmap0 = 4807bd5ceebfSJohn Snowexpecting 6 dirty sectors; have 6. OK! 4808bd5ceebfSJohn Snow 4809bd5ceebfSJohn Snow--- Reference Backup #1 --- 4810bd5ceebfSJohn Snow 4811bd5ceebfSJohn Snow{} 4812bd5ceebfSJohn Snow{"execute": "job-dismiss", "arguments": {"id": "bdc-file-job"}} 4813bd5ceebfSJohn Snow{"return": {}} 4814bd5ceebfSJohn Snow{} 4815bd5ceebfSJohn Snow{} 4816bd5ceebfSJohn Snow{"execute": "job-dismiss", "arguments": {"id": "bdc-fmt-job"}} 4817bd5ceebfSJohn Snow{"return": {}} 4818bd5ceebfSJohn Snow{} 48192d0f32e3SVladimir Sementsov-Ogievskiy{"execute": "blockdev-backup", "arguments": {"device": "drive0", "filter-node-name": "backup-top", "job-id": "ref_backup_1", "sync": "full", "target": "ref_target_1", "x-perf": {"max-workers": 1}}} 4820bd5ceebfSJohn Snow{"return": {}} 4821bd5ceebfSJohn Snow{"data": {"device": "ref_backup_1", "len": 67108864, "offset": 67108864, "speed": 0, "type": "backup"}, "event": "BLOCK_JOB_COMPLETED", "timestamp": {"microseconds": "USECS", "seconds": "SECS"}} 4822bd5ceebfSJohn Snow 4823bd5ceebfSJohn Snow{"return": ""} 4824bd5ceebfSJohn Snow 4825bd5ceebfSJohn Snow--- Test Backup #1 --- 4826bd5ceebfSJohn Snow 4827bd5ceebfSJohn Snow{} 4828bd5ceebfSJohn Snow{"execute": "job-dismiss", "arguments": {"id": "bdc-file-job"}} 4829bd5ceebfSJohn Snow{"return": {}} 4830bd5ceebfSJohn Snow{} 4831bd5ceebfSJohn Snow{} 4832bd5ceebfSJohn Snow{"execute": "job-dismiss", "arguments": {"id": "bdc-fmt-job"}} 4833bd5ceebfSJohn Snow{"return": {}} 4834bd5ceebfSJohn Snow{} 48352d0f32e3SVladimir Sementsov-Ogievskiy{"execute": "blockdev-backup", "arguments": {"auto-finalize": false, "bitmap": "bitmap0", "bitmap-mode": "always", "device": "drive0", "filter-node-name": "backup-top", "job-id": "backup_1", "sync": "top", "target": "backup_target_1", "x-perf": {"max-workers": 1}}} 4836bd5ceebfSJohn Snow{"return": {}} 4837bd5ceebfSJohn Snow{"data": {"action": "report", "device": "backup_1", "operation": "read"}, "event": "BLOCK_JOB_ERROR", "timestamp": {"microseconds": "USECS", "seconds": "SECS"}} 4838bd5ceebfSJohn Snow{"data": {"device": "backup_1", "error": "Input/output error", "len": 458752, "offset": 65536, "speed": 0, "type": "backup"}, "event": "BLOCK_JOB_COMPLETED", "timestamp": {"microseconds": "USECS", "seconds": "SECS"}} 4839bd5ceebfSJohn Snow{ 4840bd5ceebfSJohn Snow "bitmaps": { 48415c4343b8SVladimir Sementsov-Ogievskiy "drive0": [ 4842bd5ceebfSJohn Snow { 4843bd5ceebfSJohn Snow "busy": false, 4844bd5ceebfSJohn Snow "count": 393216, 4845bd5ceebfSJohn Snow "granularity": 65536, 4846bd5ceebfSJohn Snow "name": "bitmap0", 4847bd5ceebfSJohn Snow "persistent": false, 484881cbfd50SDaniel P. Berrangé "recording": true 4849bd5ceebfSJohn Snow } 4850bd5ceebfSJohn Snow ] 4851bd5ceebfSJohn Snow } 4852bd5ceebfSJohn Snow} 4853bd5ceebfSJohn Snow 4854bd5ceebfSJohn Snow= Checking Bitmap bitmap0 = 4855bd5ceebfSJohn Snowexpecting 6 dirty sectors; have 6. OK! 4856bd5ceebfSJohn Snow 4857bd5ceebfSJohn Snow--- Write #3 --- 4858bd5ceebfSJohn Snow 4859bd5ceebfSJohn Snowwrite -P0xaa 0x0010000 0x30000 4860bd5ceebfSJohn Snow{"return": ""} 4861bd5ceebfSJohn Snowwrite -P0xbb 0x00d8000 0x10000 4862bd5ceebfSJohn Snow{"return": ""} 4863bd5ceebfSJohn Snowwrite -P0xcc 0x2028000 0x10000 4864bd5ceebfSJohn Snow{"return": ""} 4865bd5ceebfSJohn Snowwrite -P0xdd 0x3fc0000 0x10000 4866bd5ceebfSJohn Snow{"return": ""} 4867bd5ceebfSJohn Snow{ 4868bd5ceebfSJohn Snow "bitmaps": { 48695c4343b8SVladimir Sementsov-Ogievskiy "drive0": [ 4870bd5ceebfSJohn Snow { 4871bd5ceebfSJohn Snow "busy": false, 4872bd5ceebfSJohn Snow "count": 917504, 4873bd5ceebfSJohn Snow "granularity": 65536, 4874bd5ceebfSJohn Snow "name": "bitmap0", 4875bd5ceebfSJohn Snow "persistent": false, 487681cbfd50SDaniel P. Berrangé "recording": true 4877bd5ceebfSJohn Snow } 4878bd5ceebfSJohn Snow ] 4879bd5ceebfSJohn Snow } 4880bd5ceebfSJohn Snow} 4881bd5ceebfSJohn Snow 4882bd5ceebfSJohn Snow= Checking Bitmap bitmap0 = 4883bd5ceebfSJohn Snowexpecting 14 dirty sectors; have 14. OK! 4884bd5ceebfSJohn Snow 4885bd5ceebfSJohn Snow--- Reference Backup #2 --- 4886bd5ceebfSJohn Snow 4887bd5ceebfSJohn Snow{} 4888bd5ceebfSJohn Snow{"execute": "job-dismiss", "arguments": {"id": "bdc-file-job"}} 4889bd5ceebfSJohn Snow{"return": {}} 4890bd5ceebfSJohn Snow{} 4891bd5ceebfSJohn Snow{} 4892bd5ceebfSJohn Snow{"execute": "job-dismiss", "arguments": {"id": "bdc-fmt-job"}} 4893bd5ceebfSJohn Snow{"return": {}} 4894bd5ceebfSJohn Snow{} 48952d0f32e3SVladimir Sementsov-Ogievskiy{"execute": "blockdev-backup", "arguments": {"device": "drive0", "filter-node-name": "backup-top", "job-id": "ref_backup_2", "sync": "full", "target": "ref_target_2", "x-perf": {"max-workers": 1}}} 4896bd5ceebfSJohn Snow{"return": {}} 4897bd5ceebfSJohn Snow{"data": {"device": "ref_backup_2", "len": 67108864, "offset": 67108864, "speed": 0, "type": "backup"}, "event": "BLOCK_JOB_COMPLETED", "timestamp": {"microseconds": "USECS", "seconds": "SECS"}} 4898bd5ceebfSJohn Snow 4899bd5ceebfSJohn Snow--- Test Backup #2 --- 4900bd5ceebfSJohn Snow 4901bd5ceebfSJohn Snow{} 4902bd5ceebfSJohn Snow{"execute": "job-dismiss", "arguments": {"id": "bdc-file-job"}} 4903bd5ceebfSJohn Snow{"return": {}} 4904bd5ceebfSJohn Snow{} 4905bd5ceebfSJohn Snow{} 4906bd5ceebfSJohn Snow{"execute": "job-dismiss", "arguments": {"id": "bdc-fmt-job"}} 4907bd5ceebfSJohn Snow{"return": {}} 4908bd5ceebfSJohn Snow{} 49092d0f32e3SVladimir Sementsov-Ogievskiy{"execute": "blockdev-backup", "arguments": {"auto-finalize": false, "bitmap": "bitmap0", "bitmap-mode": "always", "device": "drive0", "filter-node-name": "backup-top", "job-id": "backup_2", "sync": "bitmap", "target": "backup_target_2", "x-perf": {"max-workers": 1}}} 4910bd5ceebfSJohn Snow{"return": {}} 4911bd5ceebfSJohn Snow{"execute": "job-finalize", "arguments": {"id": "backup_2"}} 4912bd5ceebfSJohn Snow{"return": {}} 4913bd5ceebfSJohn Snow{"data": {"id": "backup_2", "type": "backup"}, "event": "BLOCK_JOB_PENDING", "timestamp": {"microseconds": "USECS", "seconds": "SECS"}} 4914bd5ceebfSJohn Snow{"data": {"device": "backup_2", "len": 917504, "offset": 917504, "speed": 0, "type": "backup"}, "event": "BLOCK_JOB_COMPLETED", "timestamp": {"microseconds": "USECS", "seconds": "SECS"}} 4915bd5ceebfSJohn Snow{ 4916bd5ceebfSJohn Snow "bitmaps": { 49175c4343b8SVladimir Sementsov-Ogievskiy "drive0": [ 4918bd5ceebfSJohn Snow { 4919bd5ceebfSJohn Snow "busy": false, 4920bd5ceebfSJohn Snow "count": 0, 4921bd5ceebfSJohn Snow "granularity": 65536, 4922bd5ceebfSJohn Snow "name": "bitmap0", 4923bd5ceebfSJohn Snow "persistent": false, 492481cbfd50SDaniel P. Berrangé "recording": true 4925bd5ceebfSJohn Snow } 4926bd5ceebfSJohn Snow ] 4927bd5ceebfSJohn Snow } 4928bd5ceebfSJohn Snow} 4929bd5ceebfSJohn Snow 4930bd5ceebfSJohn Snow= Checking Bitmap bitmap0 = 4931bd5ceebfSJohn Snowexpecting 0 dirty sectors; have 0. OK! 4932bd5ceebfSJohn Snow 4933bd5ceebfSJohn Snow--- Cleanup --- 4934bd5ceebfSJohn Snow 4935bd5ceebfSJohn Snow{"execute": "block-dirty-bitmap-remove", "arguments": {"name": "bitmap0", "node": "drive0"}} 4936bd5ceebfSJohn Snow{"return": {}} 4937bd5ceebfSJohn Snow{ 49385c4343b8SVladimir Sementsov-Ogievskiy "bitmaps": {} 4939bd5ceebfSJohn Snow} 4940bd5ceebfSJohn Snow 4941bd5ceebfSJohn Snow--- Verification --- 4942bd5ceebfSJohn Snow 4943bd5ceebfSJohn Snowqemu_img compare "TEST_DIR/PID-bsync1" "TEST_DIR/PID-fbackup1" ==> Mismatch, OK! 4944bd5ceebfSJohn Snowqemu_img compare "TEST_DIR/PID-bsync2" "TEST_DIR/PID-fbackup2" ==> Identical, OK! 4945bd5ceebfSJohn Snowqemu_img compare "TEST_DIR/PID-img" "TEST_DIR/PID-fbackup2" ==> Identical, OK! 4946bd5ceebfSJohn Snow 4947bd5ceebfSJohn Snow 4948bd5ceebfSJohn Snow=== Mode top; Bitmap Sync always without failure === 4949bd5ceebfSJohn Snow 4950bd5ceebfSJohn Snow--- Preparing image & VM --- 4951bd5ceebfSJohn Snow 4952bd5ceebfSJohn Snow{"execute": "blockdev-add", "arguments": {"driver": "qcow2", "file": {"driver": "file", "filename": "TEST_DIR/PID-img"}, "node-name": "drive0"}} 4953bd5ceebfSJohn Snow{"return": {}} 4954bd5ceebfSJohn Snow 4955bd5ceebfSJohn Snow--- Write #0 --- 4956bd5ceebfSJohn Snow 4957bd5ceebfSJohn Snowwrite -P0x49 0x0000000 0x10000 4958bd5ceebfSJohn Snow{"return": ""} 4959bd5ceebfSJohn Snowwrite -P0x6c 0x0100000 0x10000 4960bd5ceebfSJohn Snow{"return": ""} 4961bd5ceebfSJohn Snowwrite -P0x6f 0x2000000 0x10000 4962bd5ceebfSJohn Snow{"return": ""} 4963bd5ceebfSJohn Snowwrite -P0x76 0x3ff0000 0x10000 4964bd5ceebfSJohn Snow{"return": ""} 4965bd5ceebfSJohn Snow{ 49665c4343b8SVladimir Sementsov-Ogievskiy "bitmaps": {} 4967bd5ceebfSJohn Snow} 4968bd5ceebfSJohn Snow 4969bd5ceebfSJohn Snow--- Reference Backup #0 --- 4970bd5ceebfSJohn Snow 4971bd5ceebfSJohn Snow{} 4972bd5ceebfSJohn Snow{"execute": "job-dismiss", "arguments": {"id": "bdc-file-job"}} 4973bd5ceebfSJohn Snow{"return": {}} 4974bd5ceebfSJohn Snow{} 4975bd5ceebfSJohn Snow{} 4976bd5ceebfSJohn Snow{"execute": "job-dismiss", "arguments": {"id": "bdc-fmt-job"}} 4977bd5ceebfSJohn Snow{"return": {}} 4978bd5ceebfSJohn Snow{} 49792d0f32e3SVladimir Sementsov-Ogievskiy{"execute": "blockdev-backup", "arguments": {"device": "drive0", "filter-node-name": "backup-top", "job-id": "ref_backup_0", "sync": "full", "target": "ref_target_0", "x-perf": {"max-workers": 1}}} 4980bd5ceebfSJohn Snow{"return": {}} 4981bd5ceebfSJohn Snow{"data": {"device": "ref_backup_0", "len": 67108864, "offset": 67108864, "speed": 0, "type": "backup"}, "event": "BLOCK_JOB_COMPLETED", "timestamp": {"microseconds": "USECS", "seconds": "SECS"}} 4982bd5ceebfSJohn Snow 4983bd5ceebfSJohn Snow--- Add Bitmap --- 4984bd5ceebfSJohn Snow 4985bd5ceebfSJohn Snow{"execute": "block-dirty-bitmap-add", "arguments": {"granularity": 65536, "name": "bitmap0", "node": "drive0"}} 4986bd5ceebfSJohn Snow{"return": {}} 4987bd5ceebfSJohn Snow 4988bd5ceebfSJohn Snow--- Write #1 --- 4989bd5ceebfSJohn Snow 4990bd5ceebfSJohn Snowwrite -P0x65 0x0000000 0x10000 4991bd5ceebfSJohn Snow{"return": ""} 4992bd5ceebfSJohn Snowwrite -P0x77 0x00f8000 0x10000 4993bd5ceebfSJohn Snow{"return": ""} 4994bd5ceebfSJohn Snowwrite -P0x72 0x2008000 0x10000 4995bd5ceebfSJohn Snow{"return": ""} 4996bd5ceebfSJohn Snowwrite -P0x69 0x3fe0000 0x10000 4997bd5ceebfSJohn Snow{"return": ""} 4998bd5ceebfSJohn Snow{ 4999bd5ceebfSJohn Snow "bitmaps": { 50005c4343b8SVladimir Sementsov-Ogievskiy "drive0": [ 5001bd5ceebfSJohn Snow { 5002bd5ceebfSJohn Snow "busy": false, 5003bd5ceebfSJohn Snow "count": 393216, 5004bd5ceebfSJohn Snow "granularity": 65536, 5005bd5ceebfSJohn Snow "name": "bitmap0", 5006bd5ceebfSJohn Snow "persistent": false, 500781cbfd50SDaniel P. Berrangé "recording": true 5008bd5ceebfSJohn Snow } 5009bd5ceebfSJohn Snow ] 5010bd5ceebfSJohn Snow } 5011bd5ceebfSJohn Snow} 5012bd5ceebfSJohn Snow 5013bd5ceebfSJohn Snow= Checking Bitmap bitmap0 = 5014bd5ceebfSJohn Snowexpecting 6 dirty sectors; have 6. OK! 5015bd5ceebfSJohn Snow 5016bd5ceebfSJohn Snow--- Reference Backup #1 --- 5017bd5ceebfSJohn Snow 5018bd5ceebfSJohn Snow{} 5019bd5ceebfSJohn Snow{"execute": "job-dismiss", "arguments": {"id": "bdc-file-job"}} 5020bd5ceebfSJohn Snow{"return": {}} 5021bd5ceebfSJohn Snow{} 5022bd5ceebfSJohn Snow{} 5023bd5ceebfSJohn Snow{"execute": "job-dismiss", "arguments": {"id": "bdc-fmt-job"}} 5024bd5ceebfSJohn Snow{"return": {}} 5025bd5ceebfSJohn Snow{} 50262d0f32e3SVladimir Sementsov-Ogievskiy{"execute": "blockdev-backup", "arguments": {"device": "drive0", "filter-node-name": "backup-top", "job-id": "ref_backup_1", "sync": "full", "target": "ref_target_1", "x-perf": {"max-workers": 1}}} 5027bd5ceebfSJohn Snow{"return": {}} 5028bd5ceebfSJohn Snow{"data": {"device": "ref_backup_1", "len": 67108864, "offset": 67108864, "speed": 0, "type": "backup"}, "event": "BLOCK_JOB_COMPLETED", "timestamp": {"microseconds": "USECS", "seconds": "SECS"}} 5029bd5ceebfSJohn Snow 5030bd5ceebfSJohn Snow--- Test Backup #1 --- 5031bd5ceebfSJohn Snow 5032bd5ceebfSJohn Snow{} 5033bd5ceebfSJohn Snow{"execute": "job-dismiss", "arguments": {"id": "bdc-file-job"}} 5034bd5ceebfSJohn Snow{"return": {}} 5035bd5ceebfSJohn Snow{} 5036bd5ceebfSJohn Snow{} 5037bd5ceebfSJohn Snow{"execute": "job-dismiss", "arguments": {"id": "bdc-fmt-job"}} 5038bd5ceebfSJohn Snow{"return": {}} 5039bd5ceebfSJohn Snow{} 50402d0f32e3SVladimir Sementsov-Ogievskiy{"execute": "blockdev-backup", "arguments": {"auto-finalize": false, "bitmap": "bitmap0", "bitmap-mode": "always", "device": "drive0", "filter-node-name": "backup-top", "job-id": "backup_1", "sync": "top", "target": "backup_target_1", "x-perf": {"max-workers": 1}}} 5041bd5ceebfSJohn Snow{"return": {}} 5042bd5ceebfSJohn Snow 5043bd5ceebfSJohn Snow--- Write #2 --- 5044bd5ceebfSJohn Snow 5045bd5ceebfSJohn Snowwrite -P0x74 0x0010000 0x10000 5046bd5ceebfSJohn Snow{"return": ""} 5047bd5ceebfSJohn Snowwrite -P0x69 0x00e8000 0x10000 5048bd5ceebfSJohn Snow{"return": ""} 5049bd5ceebfSJohn Snowwrite -P0x6e 0x2018000 0x10000 5050bd5ceebfSJohn Snow{"return": ""} 5051bd5ceebfSJohn Snowwrite -P0x67 0x3fe0000 0x20000 5052bd5ceebfSJohn Snow{"return": ""} 5053bd5ceebfSJohn Snow{ 5054bd5ceebfSJohn Snow "bitmaps": { 5055af5bcd77SVladimir Sementsov-Ogievskiy "backup-top": [ 5056af5bcd77SVladimir Sementsov-Ogievskiy { 5057af5bcd77SVladimir Sementsov-Ogievskiy "busy": false, 5058af5bcd77SVladimir Sementsov-Ogievskiy "count": 67108864, 5059af5bcd77SVladimir Sementsov-Ogievskiy "granularity": 65536, 5060af5bcd77SVladimir Sementsov-Ogievskiy "persistent": false, 5061af5bcd77SVladimir Sementsov-Ogievskiy "recording": false 5062af5bcd77SVladimir Sementsov-Ogievskiy }, 5063af5bcd77SVladimir Sementsov-Ogievskiy { 5064af5bcd77SVladimir Sementsov-Ogievskiy "busy": false, 5065af5bcd77SVladimir Sementsov-Ogievskiy "count": 458752, 5066af5bcd77SVladimir Sementsov-Ogievskiy "granularity": 65536, 5067af5bcd77SVladimir Sementsov-Ogievskiy "persistent": false, 5068af5bcd77SVladimir Sementsov-Ogievskiy "recording": false 5069*006e845bSVladimir Sementsov-Ogievskiy }, 5070bd5ceebfSJohn Snow { 5071bd5ceebfSJohn Snow "busy": false, 5072bd5ceebfSJohn Snow "count": 0, 5073bd5ceebfSJohn Snow "granularity": 65536, 5074bd5ceebfSJohn Snow "persistent": false, 507581cbfd50SDaniel P. Berrangé "recording": false 5076*006e845bSVladimir Sementsov-Ogievskiy } 5077*006e845bSVladimir Sementsov-Ogievskiy ], 5078*006e845bSVladimir Sementsov-Ogievskiy "drive0": [ 5079bd5ceebfSJohn Snow { 5080bd5ceebfSJohn Snow "busy": false, 5081bd5ceebfSJohn Snow "count": 458752, 5082bd5ceebfSJohn Snow "granularity": 65536, 5083bd5ceebfSJohn Snow "persistent": false, 508481cbfd50SDaniel P. Berrangé "recording": true 5085bd5ceebfSJohn Snow }, 5086bd5ceebfSJohn Snow { 5087bd5ceebfSJohn Snow "busy": true, 5088bd5ceebfSJohn Snow "count": 393216, 5089bd5ceebfSJohn Snow "granularity": 65536, 5090bd5ceebfSJohn Snow "name": "bitmap0", 5091bd5ceebfSJohn Snow "persistent": false, 509281cbfd50SDaniel P. Berrangé "recording": true 5093bd5ceebfSJohn Snow } 5094bd5ceebfSJohn Snow ] 5095bd5ceebfSJohn Snow } 5096bd5ceebfSJohn Snow} 5097bd5ceebfSJohn Snow 5098bd5ceebfSJohn Snow= Checking Bitmap bitmap0 = 5099bd5ceebfSJohn Snowexpecting 6 dirty sectors; have 6. OK! 5100bd5ceebfSJohn Snow 5101bd5ceebfSJohn Snow= Checking Bitmap (anonymous) = 5102bd5ceebfSJohn Snowexpecting 7 dirty sectors; have 7. OK! 5103bd5ceebfSJohn Snow 5104bd5ceebfSJohn Snow{"execute": "job-finalize", "arguments": {"id": "backup_1"}} 5105bd5ceebfSJohn Snow{"return": {}} 5106bd5ceebfSJohn Snow{"data": {"id": "backup_1", "type": "backup"}, "event": "BLOCK_JOB_PENDING", "timestamp": {"microseconds": "USECS", "seconds": "SECS"}} 5107bd5ceebfSJohn Snow{"data": {"device": "backup_1", "len": 458752, "offset": 458752, "speed": 0, "type": "backup"}, "event": "BLOCK_JOB_COMPLETED", "timestamp": {"microseconds": "USECS", "seconds": "SECS"}} 5108bd5ceebfSJohn Snow{ 5109bd5ceebfSJohn Snow "bitmaps": { 51105c4343b8SVladimir Sementsov-Ogievskiy "drive0": [ 5111bd5ceebfSJohn Snow { 5112bd5ceebfSJohn Snow "busy": false, 5113bd5ceebfSJohn Snow "count": 458752, 5114bd5ceebfSJohn Snow "granularity": 65536, 5115bd5ceebfSJohn Snow "name": "bitmap0", 5116bd5ceebfSJohn Snow "persistent": false, 511781cbfd50SDaniel P. Berrangé "recording": true 5118bd5ceebfSJohn Snow } 5119bd5ceebfSJohn Snow ] 5120bd5ceebfSJohn Snow } 5121bd5ceebfSJohn Snow} 5122bd5ceebfSJohn Snow 5123bd5ceebfSJohn Snow= Checking Bitmap bitmap0 = 5124bd5ceebfSJohn Snowexpecting 7 dirty sectors; have 7. OK! 5125bd5ceebfSJohn Snow 5126bd5ceebfSJohn Snow--- Write #3 --- 5127bd5ceebfSJohn Snow 5128bd5ceebfSJohn Snowwrite -P0xaa 0x0010000 0x30000 5129bd5ceebfSJohn Snow{"return": ""} 5130bd5ceebfSJohn Snowwrite -P0xbb 0x00d8000 0x10000 5131bd5ceebfSJohn Snow{"return": ""} 5132bd5ceebfSJohn Snowwrite -P0xcc 0x2028000 0x10000 5133bd5ceebfSJohn Snow{"return": ""} 5134bd5ceebfSJohn Snowwrite -P0xdd 0x3fc0000 0x10000 5135bd5ceebfSJohn Snow{"return": ""} 5136bd5ceebfSJohn Snow{ 5137bd5ceebfSJohn Snow "bitmaps": { 51385c4343b8SVladimir Sementsov-Ogievskiy "drive0": [ 5139bd5ceebfSJohn Snow { 5140bd5ceebfSJohn Snow "busy": false, 5141bd5ceebfSJohn Snow "count": 786432, 5142bd5ceebfSJohn Snow "granularity": 65536, 5143bd5ceebfSJohn Snow "name": "bitmap0", 5144bd5ceebfSJohn Snow "persistent": false, 514581cbfd50SDaniel P. Berrangé "recording": true 5146bd5ceebfSJohn Snow } 5147bd5ceebfSJohn Snow ] 5148bd5ceebfSJohn Snow } 5149bd5ceebfSJohn Snow} 5150bd5ceebfSJohn Snow 5151bd5ceebfSJohn Snow= Checking Bitmap bitmap0 = 5152bd5ceebfSJohn Snowexpecting 12 dirty sectors; have 12. OK! 5153bd5ceebfSJohn Snow 5154bd5ceebfSJohn Snow--- Reference Backup #2 --- 5155bd5ceebfSJohn Snow 5156bd5ceebfSJohn Snow{} 5157bd5ceebfSJohn Snow{"execute": "job-dismiss", "arguments": {"id": "bdc-file-job"}} 5158bd5ceebfSJohn Snow{"return": {}} 5159bd5ceebfSJohn Snow{} 5160bd5ceebfSJohn Snow{} 5161bd5ceebfSJohn Snow{"execute": "job-dismiss", "arguments": {"id": "bdc-fmt-job"}} 5162bd5ceebfSJohn Snow{"return": {}} 5163bd5ceebfSJohn Snow{} 51642d0f32e3SVladimir Sementsov-Ogievskiy{"execute": "blockdev-backup", "arguments": {"device": "drive0", "filter-node-name": "backup-top", "job-id": "ref_backup_2", "sync": "full", "target": "ref_target_2", "x-perf": {"max-workers": 1}}} 5165bd5ceebfSJohn Snow{"return": {}} 5166bd5ceebfSJohn Snow{"data": {"device": "ref_backup_2", "len": 67108864, "offset": 67108864, "speed": 0, "type": "backup"}, "event": "BLOCK_JOB_COMPLETED", "timestamp": {"microseconds": "USECS", "seconds": "SECS"}} 5167bd5ceebfSJohn Snow 5168bd5ceebfSJohn Snow--- Test Backup #2 --- 5169bd5ceebfSJohn Snow 5170bd5ceebfSJohn Snow{} 5171bd5ceebfSJohn Snow{"execute": "job-dismiss", "arguments": {"id": "bdc-file-job"}} 5172bd5ceebfSJohn Snow{"return": {}} 5173bd5ceebfSJohn Snow{} 5174bd5ceebfSJohn Snow{} 5175bd5ceebfSJohn Snow{"execute": "job-dismiss", "arguments": {"id": "bdc-fmt-job"}} 5176bd5ceebfSJohn Snow{"return": {}} 5177bd5ceebfSJohn Snow{} 51782d0f32e3SVladimir Sementsov-Ogievskiy{"execute": "blockdev-backup", "arguments": {"auto-finalize": false, "bitmap": "bitmap0", "bitmap-mode": "always", "device": "drive0", "filter-node-name": "backup-top", "job-id": "backup_2", "sync": "bitmap", "target": "backup_target_2", "x-perf": {"max-workers": 1}}} 5179bd5ceebfSJohn Snow{"return": {}} 5180bd5ceebfSJohn Snow{"execute": "job-finalize", "arguments": {"id": "backup_2"}} 5181bd5ceebfSJohn Snow{"return": {}} 5182bd5ceebfSJohn Snow{"data": {"id": "backup_2", "type": "backup"}, "event": "BLOCK_JOB_PENDING", "timestamp": {"microseconds": "USECS", "seconds": "SECS"}} 5183bd5ceebfSJohn Snow{"data": {"device": "backup_2", "len": 786432, "offset": 786432, "speed": 0, "type": "backup"}, "event": "BLOCK_JOB_COMPLETED", "timestamp": {"microseconds": "USECS", "seconds": "SECS"}} 5184bd5ceebfSJohn Snow{ 5185bd5ceebfSJohn Snow "bitmaps": { 51865c4343b8SVladimir Sementsov-Ogievskiy "drive0": [ 5187bd5ceebfSJohn Snow { 5188bd5ceebfSJohn Snow "busy": false, 5189bd5ceebfSJohn Snow "count": 0, 5190bd5ceebfSJohn Snow "granularity": 65536, 5191bd5ceebfSJohn Snow "name": "bitmap0", 5192bd5ceebfSJohn Snow "persistent": false, 519381cbfd50SDaniel P. Berrangé "recording": true 5194bd5ceebfSJohn Snow } 5195bd5ceebfSJohn Snow ] 5196bd5ceebfSJohn Snow } 5197bd5ceebfSJohn Snow} 5198bd5ceebfSJohn Snow 5199bd5ceebfSJohn Snow= Checking Bitmap bitmap0 = 5200bd5ceebfSJohn Snowexpecting 0 dirty sectors; have 0. OK! 5201bd5ceebfSJohn Snow 5202bd5ceebfSJohn Snow--- Cleanup --- 5203bd5ceebfSJohn Snow 5204bd5ceebfSJohn Snow{"execute": "block-dirty-bitmap-remove", "arguments": {"name": "bitmap0", "node": "drive0"}} 5205bd5ceebfSJohn Snow{"return": {}} 5206bd5ceebfSJohn Snow{ 52075c4343b8SVladimir Sementsov-Ogievskiy "bitmaps": {} 5208bd5ceebfSJohn Snow} 5209bd5ceebfSJohn Snow 5210bd5ceebfSJohn Snow--- Verification --- 5211bd5ceebfSJohn Snow 5212bd5ceebfSJohn Snowqemu_img compare "TEST_DIR/PID-bsync1" "TEST_DIR/PID-fbackup1" ==> Identical, OK! 5213bd5ceebfSJohn Snowqemu_img compare "TEST_DIR/PID-bsync2" "TEST_DIR/PID-fbackup2" ==> Identical, OK! 5214bd5ceebfSJohn Snowqemu_img compare "TEST_DIR/PID-img" "TEST_DIR/PID-fbackup2" ==> Identical, OK! 5215bd5ceebfSJohn Snow 5216bd5ceebfSJohn Snow 5217352092d3SJohn Snow=== API failure tests === 5218352092d3SJohn Snow 5219352092d3SJohn Snow--- Preparing image & VM --- 5220352092d3SJohn Snow 5221352092d3SJohn Snow{"execute": "blockdev-add", "arguments": {"driver": "qcow2", "file": {"driver": "file", "filename": "TEST_DIR/PID-img"}, "node-name": "drive0"}} 5222352092d3SJohn Snow{"return": {}} 5223352092d3SJohn Snow 5224352092d3SJohn Snow{} 5225352092d3SJohn Snow{"execute": "job-dismiss", "arguments": {"id": "bdc-file-job"}} 5226352092d3SJohn Snow{"return": {}} 5227352092d3SJohn Snow{} 5228352092d3SJohn Snow{} 5229352092d3SJohn Snow{"execute": "job-dismiss", "arguments": {"id": "bdc-fmt-job"}} 5230352092d3SJohn Snow{"return": {}} 5231352092d3SJohn Snow{} 5232352092d3SJohn Snow 5233352092d3SJohn Snow{"execute": "block-dirty-bitmap-add", "arguments": {"granularity": 65536, "name": "bitmap0", "node": "drive0"}} 5234352092d3SJohn Snow{"return": {}} 5235352092d3SJohn Snow 5236352092d3SJohn Snow-- Testing invalid QMP commands -- 5237352092d3SJohn Snow 5238352092d3SJohn Snow-- Sync mode incremental tests -- 5239352092d3SJohn Snow 52402d0f32e3SVladimir Sementsov-Ogievskiy{"execute": "blockdev-backup", "arguments": {"bitmap-mode": "on-success", "device": "drive0", "filter-node-name": "backup-top", "job-id": "api_job", "sync": "incremental", "target": "backup_target", "x-perf": {"max-workers": 1}}} 5241352092d3SJohn Snow{"error": {"class": "GenericError", "desc": "must provide a valid bitmap name for 'incremental' sync mode"}} 5242352092d3SJohn Snow 52432d0f32e3SVladimir Sementsov-Ogievskiy{"execute": "blockdev-backup", "arguments": {"bitmap-mode": "always", "device": "drive0", "filter-node-name": "backup-top", "job-id": "api_job", "sync": "incremental", "target": "backup_target", "x-perf": {"max-workers": 1}}} 5244352092d3SJohn Snow{"error": {"class": "GenericError", "desc": "must provide a valid bitmap name for 'incremental' sync mode"}} 5245352092d3SJohn Snow 52462d0f32e3SVladimir Sementsov-Ogievskiy{"execute": "blockdev-backup", "arguments": {"bitmap-mode": "never", "device": "drive0", "filter-node-name": "backup-top", "job-id": "api_job", "sync": "incremental", "target": "backup_target", "x-perf": {"max-workers": 1}}} 5247352092d3SJohn Snow{"error": {"class": "GenericError", "desc": "must provide a valid bitmap name for 'incremental' sync mode"}} 5248352092d3SJohn Snow 52492d0f32e3SVladimir Sementsov-Ogievskiy{"execute": "blockdev-backup", "arguments": {"device": "drive0", "filter-node-name": "backup-top", "job-id": "api_job", "sync": "incremental", "target": "backup_target", "x-perf": {"max-workers": 1}}} 5250352092d3SJohn Snow{"error": {"class": "GenericError", "desc": "must provide a valid bitmap name for 'incremental' sync mode"}} 5251352092d3SJohn Snow 52522d0f32e3SVladimir Sementsov-Ogievskiy{"execute": "blockdev-backup", "arguments": {"bitmap": "bitmap404", "bitmap-mode": "on-success", "device": "drive0", "filter-node-name": "backup-top", "job-id": "api_job", "sync": "incremental", "target": "backup_target", "x-perf": {"max-workers": 1}}} 5253352092d3SJohn Snow{"error": {"class": "GenericError", "desc": "Bitmap 'bitmap404' could not be found"}} 5254352092d3SJohn Snow 52552d0f32e3SVladimir Sementsov-Ogievskiy{"execute": "blockdev-backup", "arguments": {"bitmap": "bitmap404", "bitmap-mode": "always", "device": "drive0", "filter-node-name": "backup-top", "job-id": "api_job", "sync": "incremental", "target": "backup_target", "x-perf": {"max-workers": 1}}} 5256352092d3SJohn Snow{"error": {"class": "GenericError", "desc": "Bitmap sync mode must be 'on-success' when using sync mode 'incremental'"}} 5257352092d3SJohn Snow 52582d0f32e3SVladimir Sementsov-Ogievskiy{"execute": "blockdev-backup", "arguments": {"bitmap": "bitmap404", "bitmap-mode": "never", "device": "drive0", "filter-node-name": "backup-top", "job-id": "api_job", "sync": "incremental", "target": "backup_target", "x-perf": {"max-workers": 1}}} 5259352092d3SJohn Snow{"error": {"class": "GenericError", "desc": "Bitmap sync mode must be 'on-success' when using sync mode 'incremental'"}} 5260352092d3SJohn Snow 52612d0f32e3SVladimir Sementsov-Ogievskiy{"execute": "blockdev-backup", "arguments": {"bitmap": "bitmap404", "device": "drive0", "filter-node-name": "backup-top", "job-id": "api_job", "sync": "incremental", "target": "backup_target", "x-perf": {"max-workers": 1}}} 5262352092d3SJohn Snow{"error": {"class": "GenericError", "desc": "Bitmap 'bitmap404' could not be found"}} 5263352092d3SJohn Snow 52642d0f32e3SVladimir Sementsov-Ogievskiy{"execute": "blockdev-backup", "arguments": {"bitmap": "bitmap0", "bitmap-mode": "always", "device": "drive0", "filter-node-name": "backup-top", "job-id": "api_job", "sync": "incremental", "target": "backup_target", "x-perf": {"max-workers": 1}}} 5265352092d3SJohn Snow{"error": {"class": "GenericError", "desc": "Bitmap sync mode must be 'on-success' when using sync mode 'incremental'"}} 5266352092d3SJohn Snow 52672d0f32e3SVladimir Sementsov-Ogievskiy{"execute": "blockdev-backup", "arguments": {"bitmap": "bitmap0", "bitmap-mode": "never", "device": "drive0", "filter-node-name": "backup-top", "job-id": "api_job", "sync": "incremental", "target": "backup_target", "x-perf": {"max-workers": 1}}} 5268352092d3SJohn Snow{"error": {"class": "GenericError", "desc": "Bitmap sync mode must be 'on-success' when using sync mode 'incremental'"}} 5269352092d3SJohn Snow 5270352092d3SJohn Snow-- Sync mode bitmap tests -- 5271352092d3SJohn Snow 52722d0f32e3SVladimir Sementsov-Ogievskiy{"execute": "blockdev-backup", "arguments": {"bitmap-mode": "on-success", "device": "drive0", "filter-node-name": "backup-top", "job-id": "api_job", "sync": "bitmap", "target": "backup_target", "x-perf": {"max-workers": 1}}} 5273352092d3SJohn Snow{"error": {"class": "GenericError", "desc": "must provide a valid bitmap name for 'bitmap' sync mode"}} 5274352092d3SJohn Snow 52752d0f32e3SVladimir Sementsov-Ogievskiy{"execute": "blockdev-backup", "arguments": {"bitmap-mode": "always", "device": "drive0", "filter-node-name": "backup-top", "job-id": "api_job", "sync": "bitmap", "target": "backup_target", "x-perf": {"max-workers": 1}}} 5276352092d3SJohn Snow{"error": {"class": "GenericError", "desc": "must provide a valid bitmap name for 'bitmap' sync mode"}} 5277352092d3SJohn Snow 52782d0f32e3SVladimir Sementsov-Ogievskiy{"execute": "blockdev-backup", "arguments": {"bitmap-mode": "never", "device": "drive0", "filter-node-name": "backup-top", "job-id": "api_job", "sync": "bitmap", "target": "backup_target", "x-perf": {"max-workers": 1}}} 5279352092d3SJohn Snow{"error": {"class": "GenericError", "desc": "must provide a valid bitmap name for 'bitmap' sync mode"}} 5280352092d3SJohn Snow 52812d0f32e3SVladimir Sementsov-Ogievskiy{"execute": "blockdev-backup", "arguments": {"device": "drive0", "filter-node-name": "backup-top", "job-id": "api_job", "sync": "bitmap", "target": "backup_target", "x-perf": {"max-workers": 1}}} 5282352092d3SJohn Snow{"error": {"class": "GenericError", "desc": "must provide a valid bitmap name for 'bitmap' sync mode"}} 5283352092d3SJohn Snow 52842d0f32e3SVladimir Sementsov-Ogievskiy{"execute": "blockdev-backup", "arguments": {"bitmap": "bitmap404", "bitmap-mode": "on-success", "device": "drive0", "filter-node-name": "backup-top", "job-id": "api_job", "sync": "bitmap", "target": "backup_target", "x-perf": {"max-workers": 1}}} 5285352092d3SJohn Snow{"error": {"class": "GenericError", "desc": "Bitmap 'bitmap404' could not be found"}} 5286352092d3SJohn Snow 52872d0f32e3SVladimir Sementsov-Ogievskiy{"execute": "blockdev-backup", "arguments": {"bitmap": "bitmap404", "bitmap-mode": "always", "device": "drive0", "filter-node-name": "backup-top", "job-id": "api_job", "sync": "bitmap", "target": "backup_target", "x-perf": {"max-workers": 1}}} 5288352092d3SJohn Snow{"error": {"class": "GenericError", "desc": "Bitmap 'bitmap404' could not be found"}} 5289352092d3SJohn Snow 52902d0f32e3SVladimir Sementsov-Ogievskiy{"execute": "blockdev-backup", "arguments": {"bitmap": "bitmap404", "bitmap-mode": "never", "device": "drive0", "filter-node-name": "backup-top", "job-id": "api_job", "sync": "bitmap", "target": "backup_target", "x-perf": {"max-workers": 1}}} 5291352092d3SJohn Snow{"error": {"class": "GenericError", "desc": "Bitmap 'bitmap404' could not be found"}} 5292352092d3SJohn Snow 52932d0f32e3SVladimir Sementsov-Ogievskiy{"execute": "blockdev-backup", "arguments": {"bitmap": "bitmap404", "device": "drive0", "filter-node-name": "backup-top", "job-id": "api_job", "sync": "bitmap", "target": "backup_target", "x-perf": {"max-workers": 1}}} 5294352092d3SJohn Snow{"error": {"class": "GenericError", "desc": "Bitmap 'bitmap404' could not be found"}} 5295352092d3SJohn Snow 52962d0f32e3SVladimir Sementsov-Ogievskiy{"execute": "blockdev-backup", "arguments": {"bitmap": "bitmap0", "device": "drive0", "filter-node-name": "backup-top", "job-id": "api_job", "sync": "bitmap", "target": "backup_target", "x-perf": {"max-workers": 1}}} 5297352092d3SJohn Snow{"error": {"class": "GenericError", "desc": "Bitmap sync mode must be given when providing a bitmap"}} 5298352092d3SJohn Snow 5299bd5ceebfSJohn Snow-- Sync mode full tests -- 5300bd5ceebfSJohn Snow 53012d0f32e3SVladimir Sementsov-Ogievskiy{"execute": "blockdev-backup", "arguments": {"bitmap-mode": "on-success", "device": "drive0", "filter-node-name": "backup-top", "job-id": "api_job", "sync": "full", "target": "backup_target", "x-perf": {"max-workers": 1}}} 5302bd5ceebfSJohn Snow{"error": {"class": "GenericError", "desc": "Cannot specify bitmap sync mode without a bitmap"}} 5303bd5ceebfSJohn Snow 53042d0f32e3SVladimir Sementsov-Ogievskiy{"execute": "blockdev-backup", "arguments": {"bitmap-mode": "always", "device": "drive0", "filter-node-name": "backup-top", "job-id": "api_job", "sync": "full", "target": "backup_target", "x-perf": {"max-workers": 1}}} 5305bd5ceebfSJohn Snow{"error": {"class": "GenericError", "desc": "Cannot specify bitmap sync mode without a bitmap"}} 5306bd5ceebfSJohn Snow 53072d0f32e3SVladimir Sementsov-Ogievskiy{"execute": "blockdev-backup", "arguments": {"bitmap-mode": "never", "device": "drive0", "filter-node-name": "backup-top", "job-id": "api_job", "sync": "full", "target": "backup_target", "x-perf": {"max-workers": 1}}} 5308bd5ceebfSJohn Snow{"error": {"class": "GenericError", "desc": "Cannot specify bitmap sync mode without a bitmap"}} 5309bd5ceebfSJohn Snow 53102d0f32e3SVladimir Sementsov-Ogievskiy{"execute": "blockdev-backup", "arguments": {"bitmap": "bitmap404", "bitmap-mode": "on-success", "device": "drive0", "filter-node-name": "backup-top", "job-id": "api_job", "sync": "full", "target": "backup_target", "x-perf": {"max-workers": 1}}} 5311bd5ceebfSJohn Snow{"error": {"class": "GenericError", "desc": "Bitmap 'bitmap404' could not be found"}} 5312bd5ceebfSJohn Snow 53132d0f32e3SVladimir Sementsov-Ogievskiy{"execute": "blockdev-backup", "arguments": {"bitmap": "bitmap404", "bitmap-mode": "always", "device": "drive0", "filter-node-name": "backup-top", "job-id": "api_job", "sync": "full", "target": "backup_target", "x-perf": {"max-workers": 1}}} 5314bd5ceebfSJohn Snow{"error": {"class": "GenericError", "desc": "Bitmap 'bitmap404' could not be found"}} 5315bd5ceebfSJohn Snow 53162d0f32e3SVladimir Sementsov-Ogievskiy{"execute": "blockdev-backup", "arguments": {"bitmap": "bitmap404", "bitmap-mode": "never", "device": "drive0", "filter-node-name": "backup-top", "job-id": "api_job", "sync": "full", "target": "backup_target", "x-perf": {"max-workers": 1}}} 5317bd5ceebfSJohn Snow{"error": {"class": "GenericError", "desc": "Bitmap 'bitmap404' could not be found"}} 5318bd5ceebfSJohn Snow 53192d0f32e3SVladimir Sementsov-Ogievskiy{"execute": "blockdev-backup", "arguments": {"bitmap": "bitmap404", "device": "drive0", "filter-node-name": "backup-top", "job-id": "api_job", "sync": "full", "target": "backup_target", "x-perf": {"max-workers": 1}}} 5320bd5ceebfSJohn Snow{"error": {"class": "GenericError", "desc": "Bitmap 'bitmap404' could not be found"}} 5321bd5ceebfSJohn Snow 53222d0f32e3SVladimir Sementsov-Ogievskiy{"execute": "blockdev-backup", "arguments": {"bitmap": "bitmap0", "bitmap-mode": "never", "device": "drive0", "filter-node-name": "backup-top", "job-id": "api_job", "sync": "full", "target": "backup_target", "x-perf": {"max-workers": 1}}} 5323bd5ceebfSJohn Snow{"error": {"class": "GenericError", "desc": "Bitmap sync mode 'never' has no meaningful effect when combined with sync mode 'full'"}} 5324bd5ceebfSJohn Snow 53252d0f32e3SVladimir Sementsov-Ogievskiy{"execute": "blockdev-backup", "arguments": {"bitmap": "bitmap0", "device": "drive0", "filter-node-name": "backup-top", "job-id": "api_job", "sync": "full", "target": "backup_target", "x-perf": {"max-workers": 1}}} 5326bd5ceebfSJohn Snow{"error": {"class": "GenericError", "desc": "Bitmap sync mode must be given when providing a bitmap"}} 5327bd5ceebfSJohn Snow 5328bd5ceebfSJohn Snow-- Sync mode top tests -- 5329bd5ceebfSJohn Snow 53302d0f32e3SVladimir Sementsov-Ogievskiy{"execute": "blockdev-backup", "arguments": {"bitmap-mode": "on-success", "device": "drive0", "filter-node-name": "backup-top", "job-id": "api_job", "sync": "top", "target": "backup_target", "x-perf": {"max-workers": 1}}} 5331bd5ceebfSJohn Snow{"error": {"class": "GenericError", "desc": "Cannot specify bitmap sync mode without a bitmap"}} 5332bd5ceebfSJohn Snow 53332d0f32e3SVladimir Sementsov-Ogievskiy{"execute": "blockdev-backup", "arguments": {"bitmap-mode": "always", "device": "drive0", "filter-node-name": "backup-top", "job-id": "api_job", "sync": "top", "target": "backup_target", "x-perf": {"max-workers": 1}}} 5334bd5ceebfSJohn Snow{"error": {"class": "GenericError", "desc": "Cannot specify bitmap sync mode without a bitmap"}} 5335bd5ceebfSJohn Snow 53362d0f32e3SVladimir Sementsov-Ogievskiy{"execute": "blockdev-backup", "arguments": {"bitmap-mode": "never", "device": "drive0", "filter-node-name": "backup-top", "job-id": "api_job", "sync": "top", "target": "backup_target", "x-perf": {"max-workers": 1}}} 5337bd5ceebfSJohn Snow{"error": {"class": "GenericError", "desc": "Cannot specify bitmap sync mode without a bitmap"}} 5338bd5ceebfSJohn Snow 53392d0f32e3SVladimir Sementsov-Ogievskiy{"execute": "blockdev-backup", "arguments": {"bitmap": "bitmap404", "bitmap-mode": "on-success", "device": "drive0", "filter-node-name": "backup-top", "job-id": "api_job", "sync": "top", "target": "backup_target", "x-perf": {"max-workers": 1}}} 5340bd5ceebfSJohn Snow{"error": {"class": "GenericError", "desc": "Bitmap 'bitmap404' could not be found"}} 5341bd5ceebfSJohn Snow 53422d0f32e3SVladimir Sementsov-Ogievskiy{"execute": "blockdev-backup", "arguments": {"bitmap": "bitmap404", "bitmap-mode": "always", "device": "drive0", "filter-node-name": "backup-top", "job-id": "api_job", "sync": "top", "target": "backup_target", "x-perf": {"max-workers": 1}}} 5343bd5ceebfSJohn Snow{"error": {"class": "GenericError", "desc": "Bitmap 'bitmap404' could not be found"}} 5344bd5ceebfSJohn Snow 53452d0f32e3SVladimir Sementsov-Ogievskiy{"execute": "blockdev-backup", "arguments": {"bitmap": "bitmap404", "bitmap-mode": "never", "device": "drive0", "filter-node-name": "backup-top", "job-id": "api_job", "sync": "top", "target": "backup_target", "x-perf": {"max-workers": 1}}} 5346bd5ceebfSJohn Snow{"error": {"class": "GenericError", "desc": "Bitmap 'bitmap404' could not be found"}} 5347bd5ceebfSJohn Snow 53482d0f32e3SVladimir Sementsov-Ogievskiy{"execute": "blockdev-backup", "arguments": {"bitmap": "bitmap404", "device": "drive0", "filter-node-name": "backup-top", "job-id": "api_job", "sync": "top", "target": "backup_target", "x-perf": {"max-workers": 1}}} 5349bd5ceebfSJohn Snow{"error": {"class": "GenericError", "desc": "Bitmap 'bitmap404' could not be found"}} 5350bd5ceebfSJohn Snow 53512d0f32e3SVladimir Sementsov-Ogievskiy{"execute": "blockdev-backup", "arguments": {"bitmap": "bitmap0", "bitmap-mode": "never", "device": "drive0", "filter-node-name": "backup-top", "job-id": "api_job", "sync": "top", "target": "backup_target", "x-perf": {"max-workers": 1}}} 5352bd5ceebfSJohn Snow{"error": {"class": "GenericError", "desc": "Bitmap sync mode 'never' has no meaningful effect when combined with sync mode 'top'"}} 5353bd5ceebfSJohn Snow 53542d0f32e3SVladimir Sementsov-Ogievskiy{"execute": "blockdev-backup", "arguments": {"bitmap": "bitmap0", "device": "drive0", "filter-node-name": "backup-top", "job-id": "api_job", "sync": "top", "target": "backup_target", "x-perf": {"max-workers": 1}}} 5355bd5ceebfSJohn Snow{"error": {"class": "GenericError", "desc": "Bitmap sync mode must be given when providing a bitmap"}} 5356bd5ceebfSJohn Snow 5357bd5ceebfSJohn Snow-- Sync mode none tests -- 5358bd5ceebfSJohn Snow 53592d0f32e3SVladimir Sementsov-Ogievskiy{"execute": "blockdev-backup", "arguments": {"bitmap-mode": "on-success", "device": "drive0", "filter-node-name": "backup-top", "job-id": "api_job", "sync": "none", "target": "backup_target", "x-perf": {"max-workers": 1}}} 5360bd5ceebfSJohn Snow{"error": {"class": "GenericError", "desc": "Cannot specify bitmap sync mode without a bitmap"}} 5361bd5ceebfSJohn Snow 53622d0f32e3SVladimir Sementsov-Ogievskiy{"execute": "blockdev-backup", "arguments": {"bitmap-mode": "always", "device": "drive0", "filter-node-name": "backup-top", "job-id": "api_job", "sync": "none", "target": "backup_target", "x-perf": {"max-workers": 1}}} 5363bd5ceebfSJohn Snow{"error": {"class": "GenericError", "desc": "Cannot specify bitmap sync mode without a bitmap"}} 5364bd5ceebfSJohn Snow 53652d0f32e3SVladimir Sementsov-Ogievskiy{"execute": "blockdev-backup", "arguments": {"bitmap-mode": "never", "device": "drive0", "filter-node-name": "backup-top", "job-id": "api_job", "sync": "none", "target": "backup_target", "x-perf": {"max-workers": 1}}} 5366bd5ceebfSJohn Snow{"error": {"class": "GenericError", "desc": "Cannot specify bitmap sync mode without a bitmap"}} 5367bd5ceebfSJohn Snow 53682d0f32e3SVladimir Sementsov-Ogievskiy{"execute": "blockdev-backup", "arguments": {"bitmap": "bitmap404", "bitmap-mode": "on-success", "device": "drive0", "filter-node-name": "backup-top", "job-id": "api_job", "sync": "none", "target": "backup_target", "x-perf": {"max-workers": 1}}} 5369bd5ceebfSJohn Snow{"error": {"class": "GenericError", "desc": "Bitmap 'bitmap404' could not be found"}} 5370bd5ceebfSJohn Snow 53712d0f32e3SVladimir Sementsov-Ogievskiy{"execute": "blockdev-backup", "arguments": {"bitmap": "bitmap404", "bitmap-mode": "always", "device": "drive0", "filter-node-name": "backup-top", "job-id": "api_job", "sync": "none", "target": "backup_target", "x-perf": {"max-workers": 1}}} 5372bd5ceebfSJohn Snow{"error": {"class": "GenericError", "desc": "Bitmap 'bitmap404' could not be found"}} 5373bd5ceebfSJohn Snow 53742d0f32e3SVladimir Sementsov-Ogievskiy{"execute": "blockdev-backup", "arguments": {"bitmap": "bitmap404", "bitmap-mode": "never", "device": "drive0", "filter-node-name": "backup-top", "job-id": "api_job", "sync": "none", "target": "backup_target", "x-perf": {"max-workers": 1}}} 5375bd5ceebfSJohn Snow{"error": {"class": "GenericError", "desc": "Bitmap 'bitmap404' could not be found"}} 5376bd5ceebfSJohn Snow 53772d0f32e3SVladimir Sementsov-Ogievskiy{"execute": "blockdev-backup", "arguments": {"bitmap": "bitmap404", "device": "drive0", "filter-node-name": "backup-top", "job-id": "api_job", "sync": "none", "target": "backup_target", "x-perf": {"max-workers": 1}}} 5378bd5ceebfSJohn Snow{"error": {"class": "GenericError", "desc": "Bitmap 'bitmap404' could not be found"}} 5379bd5ceebfSJohn Snow 53802d0f32e3SVladimir Sementsov-Ogievskiy{"execute": "blockdev-backup", "arguments": {"bitmap": "bitmap0", "bitmap-mode": "on-success", "device": "drive0", "filter-node-name": "backup-top", "job-id": "api_job", "sync": "none", "target": "backup_target", "x-perf": {"max-workers": 1}}} 5381bd5ceebfSJohn Snow{"error": {"class": "GenericError", "desc": "sync mode 'none' does not produce meaningful bitmap outputs"}} 5382bd5ceebfSJohn Snow 53832d0f32e3SVladimir Sementsov-Ogievskiy{"execute": "blockdev-backup", "arguments": {"bitmap": "bitmap0", "bitmap-mode": "always", "device": "drive0", "filter-node-name": "backup-top", "job-id": "api_job", "sync": "none", "target": "backup_target", "x-perf": {"max-workers": 1}}} 5384bd5ceebfSJohn Snow{"error": {"class": "GenericError", "desc": "sync mode 'none' does not produce meaningful bitmap outputs"}} 5385bd5ceebfSJohn Snow 53862d0f32e3SVladimir Sementsov-Ogievskiy{"execute": "blockdev-backup", "arguments": {"bitmap": "bitmap0", "bitmap-mode": "never", "device": "drive0", "filter-node-name": "backup-top", "job-id": "api_job", "sync": "none", "target": "backup_target", "x-perf": {"max-workers": 1}}} 5387bd5ceebfSJohn Snow{"error": {"class": "GenericError", "desc": "sync mode 'none' does not produce meaningful bitmap outputs"}} 5388bd5ceebfSJohn Snow 53892d0f32e3SVladimir Sementsov-Ogievskiy{"execute": "blockdev-backup", "arguments": {"bitmap": "bitmap0", "device": "drive0", "filter-node-name": "backup-top", "job-id": "api_job", "sync": "none", "target": "backup_target", "x-perf": {"max-workers": 1}}} 5390bd5ceebfSJohn Snow{"error": {"class": "GenericError", "desc": "Bitmap sync mode must be given when providing a bitmap"}} 5391bd5ceebfSJohn Snow 5392