Project

General

Profile

Bug #64735

Updated by Radoslaw Zarzynski 2 months ago

when rollback_to snap, we use the latest clone's current overlap to intersection_of older snapshot's clone overlap. 
 we should update the latest clone's current overlap to [0, obs.oi.size] before intersection_of other clone's overlap. 



 How to reproduce: 

 <pre> 
 rbd create ceph-vm-pool-1/test_rollback -s 4M 
 fio -ioengine=rbd -bs=4M -size=4M -rw=write -pool=ceph-vm-pool-1 -rbdname=test_rollback --group_report -name=test-direct=1 -numjobs=1 -iodepth=1 
 rbd snap create ceph-vm-pool-1/test_rollback@base 
 fio -ioengine=rbd -bs=4M -size=4M -rw=write -pool=ceph-vm-pool-1 -rbdname=test_rollback --group_report -name=test-direct=1 -numjobs=1 -iodepth=1 
 [root@test xingd]# rbd du --exact ceph-vm-pool-1/test_rollback 
 NAME                 PROVISIONED USED 
 test_rollback@base         4 MiB 4 MiB 
 test_rollback              4 MiB 4 MiB 
 <TOTAL>                    4 MiB 8 MiB 
 rbd snap rollback ceph-vm-pool-1/test_rollback@base 
 [root@test xingd]# rbd du --exact ceph-vm-pool-1/test_rollback 
 NAME                 PROVISIONED USED 
 test_rollback@base         4 MiB 4 MiB 
 test_rollback              4 MiB 4 MiB         ### this is not correct after rollback to snap 
 <TOTAL>                    4 MiB 8 MiB 
 </pre>

Back