Parted crashed with a partition table modified by fdisk in a certain way(Assertion (metadata_length > 0) at ../../../libparted/labels/dos.c:2313 in function add_logical_part_metadata() failed.)
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
GNU Parted |
New
|
Undecided
|
|||
parted (Ubuntu) |
New
|
Undecided
|
Unassigned |
Bug Description
## Bug Reproduce Instructions ##
```````
user $ dd if=/dev/zero of=emulated-
100+0 records in
100+0 records out
104857600 bytes (105 MB, 100 MiB) copied, 0.112727 s, 930 MB/s
user $ parted --script emulated-disk.img mklabel msdos
user $ parted --script emulated-disk.img mkpart extended 1s -- -1s
Warning: The resulting partition is not properly aligned for best performance.
user $ parted --script emulated-disk.img mkpart logical -- 99MiB -1s # I used to create a tiny partition at the end and name it "XXX_Security" to store the disk's owner information, sometime Parted will hide small inter-partition gap so I usually create it first user $ parted --script emulated-disk.img mkpart logical 3s 99MiB # Then I create a filesystem to install GNU/Linux, it's not M$ Windows so I can just give them a logical partition Warning: The resulting partition is not properly aligned for best performance.
user $ parted --script emulated-disk.img print
user $ parted --script emulated-disk.img \
> unit s \
> print # Notice that the partition record is not in order and even that it's valid I still hate it...
Model: (file)
Disk emulated-disk.img: 204800s
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags:
Number Start End Size Type File system Flags
1 1s 204799s 204799s extended lba
6 3s 202751s 202749s logical
5 202752s 204799s 2048s logical
user $ fdisk emulated-disk.img # ...since it seems that Parted doesn't support fixing the order let's use fdisk from util-linux to do the task
Welcome to fdisk (util-linux 2.27.1).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.
Command (m for help): p
Disk emulated-disk.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: 0xee29eef8
Device Boot Start End Sectors Size Id Type
emulated-disk.img1 1 204799 204799 100M f W95 Ext'd (LBA)
emulated-disk.img5 202752 204799 2048 1M 83 Linux
emulated-disk.img6 3 202751 202749 99M 83 Linux
Partition table entries are not in disk order.
Command (m for help): x
Expert command (m for help): f
Expert command (m for help): r
Command (m for help): w
The partition table has been altered.
Syncing disks.
user $ parted --script emulated-disk.img print # ...then Parted crashed...:-(
Backtrace has 14 calls on stack:
14: /lib/x86_
13: /lib/x86_
12: /lib/x86_
11: /lib/x86_
10: /lib/x86_
9: /lib/x86_
8: /lib/x86_
7: /lib/x86_
6: /lib/x86_
5: parted(+0x7343) [0x560b013b5343]
4: parted(
3: parted(main+0x1238) [0x560b013b4028]
2: /lib/x86_
1: parted(_start+0x29) [0x560b013b41d9]
You found a bug in GNU Parted!
(...)
Assertion (metadata_length > 0) at ../../.
Aborted (core dumped)
```````
ProblemType: Crash
DistroRelease: Ubuntu 16.04
Package: parted 3.2-15
Uname: Linux 4.6.3-autodetec
ApportVersion: 2.20.1-0ubuntu2.1
Architecture: amd64
CrashCounter: 1
Date: Sun Jul 10 03:10:10 2016
ExecutablePath: /sbin/parted
InstallationDate: Installed on 2016-01-07 (184 days ago)
InstallationMedia: Ubuntu 15.10 "Wily Werewolf" - Release amd64 (20151021)
ProcCmdline: parted /dev/sda unit co print unit s print
SourcePackage: parted
UpgradeStatus: Upgraded to xenial on 2016-04-07 (93 days ago)
description: | updated |