Subject: bug#50168: closed (Re: bug#50168: Inconsistent behavior creating partitions with 'Xmib' and 'X%' (off-by-1 error?))

From: [email-masked] (GNU bug Tracking System)
Date: Thu, 26 Aug 2021 21:43:02 +0000

Your bug report

#50168: Inconsistent behavior creating partitions with 'Xmib' and 'X%' (off-by-1 error?)

which was filed against the parted package, has been closed.

The explanation is attached below, along with your original report.
If you require more details, please reply to [email-masked].

-- 
50168: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=50168
GNU Bug Tracking System
Contact [email-masked] with problems

Subject: Re: bug#50168: Inconsistent behavior creating partitions with 'Xmib' and 'X%' (off-by-1 error?)
From: "Brian C. Lane" <[email-masked]>
To: [email-masked]
Date: Thu, 26 Aug 2021 14:42:31 -0700
List-Id: <debbugs-submit.debbugs.gnu.org>

On Sun, Aug 22, 2021 at 07:59:06PM +0200, Diederik de Haas wrote:
> This is a forward of https://bugs.debian.org/988146 where I reported that 
> partitions were created differently when using 'mib' unit vs '%' unit.

This list is where those bugs end up, so the first one made it :)

> 
> Creating 4th partition ('60mib' '100%' ... Error: You requested a partition 
> from 62,9MB to 105MB (sectors 122880..204799).
> The closest location we can manage is 62,9MB to 105MB (sectors 
> 122881..204799).

When you use MiB as a unit you are requesting an exact location, so this
is telling you that sector 122880 (60*1024*1024) is already in use and
it has to use the next sector instead. The other units use a snap
algorithm with a radius of half the unit size (eg. 500k for MB) so it
doesn't have this problem, and it is the default so that's why the
output units are in MB.

Brian

-- 
Brian C. Lane (PST8PDT) - weldr.io - lorax - parted - pykickstart

Subject: Inconsistent behavior creating partitions with 'Xmib' and 'X%' (off-by-1 error?)
From: Diederik de Haas <[email-masked]>
To: [email-masked]
Date: Sun, 22 Aug 2021 19:59:06 +0200
List-Id: <debbugs-submit.debbugs.gnu.org>

[I'm not sure this is the appropriate place/way and if not, apologies, and can 
you point me to the right place/way]

Hi,

This is a forward of https://bugs.debian.org/988146 where I reported that 
partitions were created differently when using 'mib' unit vs '%' unit.

To demonstrate it, I created 3 scripts which creates a 100MB image and do the 
partitioning within that. 
When reporting the Debian bug, I only had the mixed test and 'parted-bug-test-
mixed.sh' is identical to the one attached here, apart from an 'else' clause 
which explicitly deletes a prior created image.

In parted-bug-test-mixed.sh, I mixed 'mib' and '%' and due to the 100MB, that 
should've worked, but it did not.

When using only 'mib' then the script fails too.
When using only '%' then the script succeeds.

I think parted does the right thing when using '%'.

Relevant portion of output when running the mixed script:
=======================================================
Creating partition table ... Done
Creating 1st partition ('4mib' '20%') ... Done
Creating 2nd partition ('20%' '40%' ... Done
Creating 3rd partition ('40mib' '60mib') ... Done

Showing partition layout
Disk temp/parted-test.img: 100 MiB, 104857600 bytes, 204800 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x03f77810

Device                Boot Start    End Sectors Size Id Type
temp/parted-test.img1       8192  40959   32768  16M  c W95 FAT32 (LBA)
temp/parted-test.img2      40960  81919   40960  20M 83 Linux
temp/parted-test.img3      81920 122880   40961  20M 83 Linux

Creating 4th partition ('60mib' '100%' ... Error: You requested a partition 
from 62,9MB to 105MB (sectors 122880..204799).
The closest location we can manage is 62,9MB to 105MB (sectors 
122881..204799).
=======================================================

Cheers,
  Diederik