Skip to content
  • Fabiano Rosas's avatar
    f187609f
    block-migration: Ensure we don't crash during migration cleanup · f187609f
    Fabiano Rosas authored
    
    
    We can fail the blk_insert_bs() at init_blk_migration(), leaving the
    BlkMigDevState without a dirty_bitmap and BlockDriverState. Account
    for the possibly missing elements when doing cleanup.
    
    Fix the following crashes:
    
    Thread 1 "qemu-system-x86" received signal SIGSEGV, Segmentation fault.
    0x0000555555ec83ef in bdrv_release_dirty_bitmap (bitmap=0x0) at ../block/dirty-bitmap.c:359
    359         BlockDriverState *bs = bitmap->bs;
     #0  0x0000555555ec83ef in bdrv_release_dirty_bitmap (bitmap=0x0) at ../block/dirty-bitmap.c:359
     #1  0x0000555555bba331 in unset_dirty_tracking () at ../migration/block.c:371
     #2  0x0000555555bbad98 in block_migration_cleanup_bmds () at ../migration/block.c:681
    
    Thread 1 "qemu-system-x86" received signal SIGSEGV, Segmentation fault.
    0x0000555555e971ff in bdrv_op_unblock (bs=0x0, op=BLOCK_OP_TYPE_BACKUP_SOURCE, reason=0x0) at ../block.c:7073
    7073        QLIST_FOREACH_SAFE(blocker, &bs->op_blockers[op], list, next) {
     #0  0x0000555555e971ff in bdrv_op_unblock (bs=0x0, op=BLOCK_OP_TYPE_BACKUP_SOURCE, reason=0x0) at ../block.c:7073
     #1  0x0000555555e9734a in bdrv_op_unblock_all (bs=0x0, reason=0x0) at ../block.c:7095
     #2  0x0000555555bbae13 in block_migration_cleanup_bmds () at ../migration/block.c:690
    
    Signed-off-by: default avatarFabiano Rosas <farosas@suse.de>
    Message-id: 20230731203338.27581-1-farosas@suse.de
    Signed-off-by: default avatarStefan Hajnoczi <stefanha@redhat.com>
    f187609f
    block-migration: Ensure we don't crash during migration cleanup
    Fabiano Rosas authored
    
    
    We can fail the blk_insert_bs() at init_blk_migration(), leaving the
    BlkMigDevState without a dirty_bitmap and BlockDriverState. Account
    for the possibly missing elements when doing cleanup.
    
    Fix the following crashes:
    
    Thread 1 "qemu-system-x86" received signal SIGSEGV, Segmentation fault.
    0x0000555555ec83ef in bdrv_release_dirty_bitmap (bitmap=0x0) at ../block/dirty-bitmap.c:359
    359         BlockDriverState *bs = bitmap->bs;
     #0  0x0000555555ec83ef in bdrv_release_dirty_bitmap (bitmap=0x0) at ../block/dirty-bitmap.c:359
     #1  0x0000555555bba331 in unset_dirty_tracking () at ../migration/block.c:371
     #2  0x0000555555bbad98 in block_migration_cleanup_bmds () at ../migration/block.c:681
    
    Thread 1 "qemu-system-x86" received signal SIGSEGV, Segmentation fault.
    0x0000555555e971ff in bdrv_op_unblock (bs=0x0, op=BLOCK_OP_TYPE_BACKUP_SOURCE, reason=0x0) at ../block.c:7073
    7073        QLIST_FOREACH_SAFE(blocker, &bs->op_blockers[op], list, next) {
     #0  0x0000555555e971ff in bdrv_op_unblock (bs=0x0, op=BLOCK_OP_TYPE_BACKUP_SOURCE, reason=0x0) at ../block.c:7073
     #1  0x0000555555e9734a in bdrv_op_unblock_all (bs=0x0, reason=0x0) at ../block.c:7095
     #2  0x0000555555bbae13 in block_migration_cleanup_bmds () at ../migration/block.c:690
    
    Signed-off-by: default avatarFabiano Rosas <farosas@suse.de>
    Message-id: 20230731203338.27581-1-farosas@suse.de
    Signed-off-by: default avatarStefan Hajnoczi <stefanha@redhat.com>
Loading