shoot. I thought I had attached a cleaned up version of that.
I tested your newer diff, and i believe it still to be wrong.

My confusion stems from not knowing how partx_{add,del,resize}_partition
functions understand their 'int partno' argument.

Given the partition table layout created by the following input to sfdisk -uS 
$DEV:
0,0,0
4096,2048,L
0,0,0
2048,2048,L

sfdisk --durmp output shows that as:
$ sudo sfdisk -uS --dump /dev/vdb
# partition table of /dev/vdb
unit: sectors
/dev/vdb1 : start=        0, size=        0, Id= 0
/dev/vdb2 : start=     4096, size=     2048, Id=83
/dev/vdb3 : start=        0, size=        0, Id= 0
/dev/vdb4 : start=     2048, size=     2048, Id=83

There are 2 different numbering schemes being mixed here.
a.) the order of blkid_struct_partlist.parts array as returned by get_partlist
  To my understanding, this is the order as seen in the partition table.
ie:
  vdb2: 1
  vdb4: 0

b.) the "human order" that is input to partx.
  vdb2: 2
  vdb4: 4

The code as it is right now (and with your suggested fix) I believe
makes an invalid assumption about the relationship between A and B.

I'm fairly sure that partx_{add,del,resize}_partition assume 'b' for the
partno parameter.

My fix was to only deal with 'b' in the loop by adding the helper
function that got the partition 'b' with input 'a'. See my cleaned up
patch for example.


** Patch added: "suggested patch"
   
https://bugs.launchpad.net/ubuntu/+source/cloud-utils/+bug/1244662/+attachment/3945396/+files/lp1244662-partx-update.diff

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1244662

Title:
  growpart reverses changes because of partx failure

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/cloud-utils/+bug/1244662/+subscriptions

-- 
ubuntu-bugs mailing list
ubuntu-bugs@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to