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
|
Medium
|
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 # print the partition table
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 # enter extra functionality menu (experts only)
Expert command (m for help): f # fix partitions order
Expert command (m for help): r # return to main menu
Command (m for help): w # write table to disk and exit
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
ProcVersionSign
Uname: Linux 4.4.0-28-generic x86_64
ApportVersion: 2.20.1-0ubuntu2.1
Architecture: amd64
CurrentDesktop: Unity
Date: Sun Jul 10 13:31:29 2016
ExecutablePath: /sbin/parted
ExecutableTimes
InstallationDate: Installed on 2016-01-07 (184 days ago)
InstallationMedia: Ubuntu 15.10 "Wily Werewolf" - Release amd64 (20151021)
ProcCmdline: parted /tmp/emulated-
ProcCwd: /var/crash
Signal: 6
SourcePackage: parted
StacktraceTop:
ped_assert () from /lib/x86_
?? () from /lib/x86_
?? () from /lib/x86_
ped_disk_
?? () from /lib/x86_
Title: parted crashed with SIGABRT in ped_assert()
UpgradeStatus: Upgraded to xenial on 2016-04-07 (93 days ago)
UserGroups: adm lpadmin sambashare sudo
summary: |
- parted crashed with SIGABRT in ped_assert() + 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.) |
description: | updated |
information type: | Private → Public |
description: | updated |
description: | updated |
StacktraceTop: cond_text@ entry=0x7fc3f16 4808e "metadata_length > 0", file=file@ entry=0x7fc3f16 47e80 "../../ ../libparted/ labels/ dos.c", line=line@ entry=2313, function= function@ entry=0x7fc3f16 48400 <__PRETTY_ FUNCTION_ _.5892> "add_logical_ part_metadata" ) at ../../libparted /debug. c:111 part_metadata (log_part= 0x55687bcf8d20, disk=0x55687bcf 8230) at ../../. ./libparted/ labels/ dos.c:2313 alloc_metadata (disk=0x55687bc f8230) at ../../. ./libparted/ labels/ dos.c:2444 alloc_metadata (disk=0x55687bc f8230) at ../../libparted /disk.c: 1011 pop_update_ mode (disk=0x55687bc f8230) at ../../libparted /disk.c: 1164
ped_assert (cond_text=
add_logical_
msdos_
_disk_
_disk_