Dear Maintainer, I just tried to find some more information. I could reproduce the issue in a unstable amd64 VM on the second attempt.
It looks like in a garbage collector run a division by zero is triggered because we get there with sector_size==0. If wanted I can forward the core file. Kind regards, Bernhard 1708 gpt_alloc_metadata (PedDisk *disk) 1709 { ... 1718 gptlength = ped_div_round_up (sizeof (GuidPartitionTableHeader_t), 1719 disk->dev->sector_size); (gdb) bt #0 0x00007fb67449e727 in ped_div_round_up (divisor=0, numerator=100) at ../../../include/parted/natmath.h:130 #1 gpt_alloc_metadata (disk=0x558890efb060) at ../../../libparted/labels/gpt.c:1718 #2 0x00007fb67448851a in _disk_alloc_metadata (disk=0x558890efb060) at ../../libparted/disk.c:1164 #3 _disk_pop_update_mode (disk=0x558890efb060) at ../../libparted/disk.c:1164 #4 0x00007fb6744890b2 in ped_disk_delete_all (disk=disk@entry=0x558890efb060) at ../../libparted/disk.c:2104 #5 0x00007fb67449dd59 in gpt_free (disk=0x558890efb060) at ../../../libparted/labels/gpt.c:622 #6 0x00007fb674abee82 in ?? () #7 0x00007fb673c46348 in ?? () #8 0x000055888eb4b67b in dict_dealloc (mp=0x7fb673c46280) at ../Objects/dictobject.c:1086 #9 0x000055888ebf8339 in subtype_clear (self=<Disk at remote 0x7fb673bbaa10>) at ../Objects/typeobject.c:912 #10 0x000055888eb3860c in delete_garbage (old=0x55888eda25b0 <generations.lto_priv+80>, collectable=0x7ffd0ab2f4e0) at ../Modules/gcmodule.c:817 #11 collect (generation=2) at ../Modules/gcmodule.c:981 #12 0x000055888eb9fcaa in PyGC_Collect () at ../Modules/gcmodule.c:1439 #13 0x000055888eb9ef44 in Py_Finalize () at ../Python/pythonrun.c:455 #14 0x000055888ebc92c8 in Py_Exit (sts=0) at ../Python/pythonrun.c:1795 #15 0x000055888ebc6a8d in handle_system_exit () at ../Python/pythonrun.c:1160 #16 0x000055888ebc63b6 in PyErr_PrintEx (set_sys_last_vars=<optimized out>, set_sys_last_vars=<optimized out>) at ../Python/pythonrun.c:1170 #17 0x000055888ebc527d in RunModule (module=<optimized out>, set_argv0=<optimized out>) at ../Modules/main.c:199 #18 0x000055888eb2cea2 in Py_Main (argc=<optimized out>, argv=0x7ffd0ab2f888) at ../Modules/main.c:592 #19 0x00007fb674bc209b in __libc_start_main (main=0x55888eb2ca90 <main>, argc=5, argv=0x7ffd0ab2f888, init=<optimized out>, fini=<optimized out>, rtld_fini=<optimized out>, stack_end=0x7ffd0ab2f878) at ../csu/libc-start.c:308 #20 0x000055888eb2c9ca in _start () at ../Modules/gcmodule.c:1003
# Buster amd64 qemu VM 2019-04-23 apt update apt dist-upgrade apt build-dep pyparted apt install systemd-coredump fakeroot gdb python2.7-dbg libparted2-dbgsym mkdir /home/benutzer/source/pyparted/orig -p cd /home/benutzer/source/pyparted/orig apt source pyparted cd mkdir /home/benutzer/source/libparted2/orig -p cd /home/benutzer/source/libparted2/orig apt source libparted2 cd cd /home/benutzer/source/pyparted cp -a orig try1 cd try1/pyparted-3.11.2 dpkg-buildpackage ############# Switched to unstable dpkg-buildpackage -> first attempt succeeded, second failed ... runTest (tests.test_parted_device.DeviceWriteTestCase) ... skipped 'Unimplemented test case.' runTest (tests.test_parted_filesystem.FileSystemGetPedFileSystemTestCase) ... skipped 'Unimplemented test case.' runTest (tests.test_parted_filesystem.FileSystemGetSetTestCase) ... skipped 'Unimplemented test case.' runTest (tests.test_parted_filesystem.FileSystemNewTestCase) ... skipped 'Unimplemented test case.' runTest (tests.test_parted_filesystem.FileSystemStrTestCase) ... skipped 'Unimplemented test case.' ---------------------------------------------------------------------- Ran 273 tests in 0.905s OK (skipped=118) Floating point exception (core dumped) E: pybuild pybuild:341: test: plugin distutils failed with: exit code=136: cd /home/benutzer/source/pyparted/try1/pyparted-3.11.2/.pybuild/cpython2_2.7_parted/build; python2.7 -m unittest discover -v dh_auto_test: pybuild --test -i python{version} -p 2.7 returned exit code 13 make: *** [debian/rules:9: build] Fehler 25 dpkg-buildpackage: Fehler: Unterprozess debian/rules build lieferte Exitstatus 2 ############ dmesg: [ 568.228710] traps: python2.7[15867] trap divide error ip:7fb67449e727 sp:7ffd0ab2f360 error:0 in libparted.so.2.0.1[7fb674482000+2c000] root@debian:~# coredumpctl list TIME PID UID GID SIG COREFILE EXE Tue 2019-04-23 10:45:12 CEST 15867 1000 1000 8 present /usr/bin/python2.7 root@debian:~# coredumpctl gdb 15867 PID: 15867 (python2.7) UID: 1000 (benutzer) GID: 1000 (benutzer) Signal: 8 (FPE) Timestamp: Tue 2019-04-23 10:45:12 CEST (2min 45s ago) Command Line: python2.7 -m unittest discover -v Executable: /usr/bin/python2.7 Control Group: /user.slice/user-1000.slice/session-3.scope Unit: session-3.scope Slice: user-1000.slice Session: 3 Owner UID: 1000 (benutzer) Boot ID: 04731d72fe444b5c8567e7172ad9cf8a Machine ID: 32f43b50ac8c4b21941bc0b02f8e7811 Hostname: debian Storage: /var/lib/systemd/coredump/core.python2\x2e7.1000.04731d72fe444b5c8567e7172ad9cf8a.15867.1556009112000000.lz4 Message: Process 15867 (python2.7) of user 1000 dumped core. Stack trace of thread 15867: #0 0x00007fb67449e727 n/a (libparted.so.2) #1 0x00007fb67448851a n/a (libparted.so.2) #2 0x00007fb6744890b2 ped_disk_delete_all (libparted.so.2) #3 0x00007fb67449dd59 n/a (libparted.so.2) #4 0x00007fb674abee82 n/a (/home/benutzer/source/pyparted/try1/pyparted-3.11.2/.pybuild/cpython2_2.7_parted/build/_ped.so) GNU gdb (Debian 8.2.1-2) 8.2.1 Copyright (C) 2018 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html> This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Type "show copying" and "show warranty" for details. This GDB was configured as "x86_64-linux-gnu". Type "show configuration" for configuration details. For bug reporting instructions, please see: <http://www.gnu.org/software/gdb/bugs/>. Find the GDB manual and other documentation resources online at: <http://www.gnu.org/software/gdb/documentation/>. For help, type "help". Type "apropos word" to search for commands related to "word"... Reading symbols from /usr/bin/python2.7...(no debugging symbols found)...done. [New LWP 15867] warning: Could not load shared library symbols for ./_ped.so. Do you need "set solib-search-path" or "set sysroot"? [Thread debugging using libthread_db enabled] Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1". Core was generated by `python2.7 -m unittest discover -v'. Program terminated with signal SIGFPE, Arithmetic exception. #0 0x00007fb67449e727 in ?? () from /lib/x86_64-linux-gnu/libparted.so.2 (gdb) set width 0 (gdb) set pagination off (gdb) bt #0 0x00007fb67449e727 in ?? () from /lib/x86_64-linux-gnu/libparted.so.2 #1 0x00007fb67448851a in ?? () from /lib/x86_64-linux-gnu/libparted.so.2 #2 0x00007fb6744890b2 in ped_disk_delete_all () from /lib/x86_64-linux-gnu/libparted.so.2 #3 0x00007fb67449dd59 in ?? () from /lib/x86_64-linux-gnu/libparted.so.2 #4 0x00007fb674abee82 in ?? () #5 0x00007fb673c46348 in ?? () #6 0x000055888eb4b67b in ?? () #7 0x000055888ebf8339 in ?? () #8 0x000055888eb3860c in ?? () #9 0x000055888eb9fcaa in PyGC_Collect () #10 0x000055888eb9ef44 in Py_Finalize () #11 0x000055888ebc92c8 in Py_Exit () #12 0x000055888ebc6a8d in ?? () #13 0x000055888ebc63b6 in PyErr_PrintEx () #14 0x000055888ebc527d in ?? () #15 0x000055888eb2cea2 in Py_Main () #16 0x00007fb674bc209b in __libc_start_main (main=0x55888eb2ca90 <main>, argc=5, argv=0x7ffd0ab2f888, init=<optimized out>, fini=<optimized out>, rtld_fini=<optimized out>, stack_end=0x7ffd0ab2f878) at ../csu/libc-start.c:308 #17 0x000055888eb2c9ca in _start () Core was generated by `python2.7 -m unittest discover -v'. Program terminated with signal SIGFPE, Arithmetic exception. #0 0x00007fb67449e727 in ped_div_round_up (divisor=0, numerator=100) at ../../../include/parted/natmath.h:130 130 ../../../include/parted/natmath.h: Datei oder Verzeichnis nicht gefunden. (gdb) set width 0 (gdb) set pagination off (gdb) bt #0 0x00007fb67449e727 in ped_div_round_up (divisor=0, numerator=100) at ../../../include/parted/natmath.h:130 #1 gpt_alloc_metadata (disk=0x558890efb060) at ../../../libparted/labels/gpt.c:1718 #2 0x00007fb67448851a in _disk_alloc_metadata (disk=0x558890efb060) at ../../libparted/disk.c:1164 #3 _disk_pop_update_mode (disk=0x558890efb060) at ../../libparted/disk.c:1164 #4 0x00007fb6744890b2 in ped_disk_delete_all (disk=disk@entry=0x558890efb060) at ../../libparted/disk.c:2104 #5 0x00007fb67449dd59 in gpt_free (disk=0x558890efb060) at ../../../libparted/labels/gpt.c:622 #6 0x00007fb674abee82 in ?? () #7 0x00007fb673c46348 in ?? () #8 0x000055888eb4b67b in dict_dealloc (mp=0x7fb673c46280) at ../Objects/dictobject.c:1086 #9 0x000055888ebf8339 in subtype_clear (self=<Disk at remote 0x7fb673bbaa10>) at ../Objects/typeobject.c:912 #10 0x000055888eb3860c in delete_garbage (old=0x55888eda25b0 <generations.lto_priv+80>, collectable=0x7ffd0ab2f4e0) at ../Modules/gcmodule.c:817 #11 collect (generation=2) at ../Modules/gcmodule.c:981 #12 0x000055888eb9fcaa in PyGC_Collect () at ../Modules/gcmodule.c:1439 #13 0x000055888eb9ef44 in Py_Finalize () at ../Python/pythonrun.c:455 #14 0x000055888ebc92c8 in Py_Exit (sts=0) at ../Python/pythonrun.c:1795 #15 0x000055888ebc6a8d in handle_system_exit () at ../Python/pythonrun.c:1160 #16 0x000055888ebc63b6 in PyErr_PrintEx (set_sys_last_vars=<optimized out>, set_sys_last_vars=<optimized out>) at ../Python/pythonrun.c:1170 #17 0x000055888ebc527d in RunModule (module=<optimized out>, set_argv0=<optimized out>) at ../Modules/main.c:199 #18 0x000055888eb2cea2 in Py_Main (argc=<optimized out>, argv=0x7ffd0ab2f888) at ../Modules/main.c:592 #19 0x00007fb674bc209b in __libc_start_main (main=0x55888eb2ca90 <main>, argc=5, argv=0x7ffd0ab2f888, init=<optimized out>, fini=<optimized out>, rtld_fini=<optimized out>, stack_end=0x7ffd0ab2f878) at ../csu/libc-start.c:308 #20 0x000055888eb2c9ca in _start () at ../Modules/gcmodule.c:1003 (gdb) down #0 0x00007fb67449e727 in ped_div_round_up (divisor=0, numerator=100) at ../../../include/parted/natmath.h:130 130 return (numerator + divisor - 1) / divisor; (gdb) list 126 127 static inline PedSector 128 ped_div_round_up (PedSector numerator, PedSector divisor) 129 { 130 return (numerator + divisor - 1) / divisor; 131 } 132 (gdb) print numerator $1 = 100 (gdb) print divisor $2 = 0 (gdb) up #1 gpt_alloc_metadata (disk=0x558890efb060) at ../../../libparted/labels/gpt.c:1718 1718 gptlength = ped_div_round_up (sizeof (GuidPartitionTableHeader_t), (gdb) list gpt.c:1705,1735 1705 1706 /* Allocate metadata partitions for the GPTH and PTES */ 1707 static int 1708 gpt_alloc_metadata (PedDisk *disk) 1709 { 1710 PedSector gptlength, pteslength = 0; 1711 GPTDiskData *gpt_disk_data; 1712 1713 PED_ASSERT (disk != NULL); 1714 PED_ASSERT (disk->dev != NULL); 1715 PED_ASSERT (disk->disk_specific != NULL); 1716 gpt_disk_data = disk->disk_specific; 1717 1718 gptlength = ped_div_round_up (sizeof (GuidPartitionTableHeader_t), 1719 disk->dev->sector_size); 1720 pteslength = ped_div_round_up (gpt_disk_data->entry_count 1721 * sizeof (GuidPartitionEntry_t), 1722 disk->dev->sector_size); 1723 1724 /* metadata at the start of the disk includes the MBR */ 1725 if (!add_metadata_part (disk, GPT_PMBR_LBA, 1726 GPT_PMBR_SECTORS + gptlength + pteslength)) 1727 return 0; 1728 1729 /* metadata at the end of the disk */ 1730 if (!add_metadata_part (disk, disk->dev->length - gptlength - pteslength, 1731 gptlength + pteslength)) 1732 return 0; 1733 1734 return 1; 1735 } (gdb) print disk $3 = (PedDisk *) 0x558890efb060 (gdb) print *disk $4 = {dev = 0x558890efaf30, type = 0x7fb6744c38e0 <gpt_disk_type>, block_sizes = 0x558890efb050, part_list = 0x0, disk_specific = 0x558890ef0ff0, needs_clobber = 1, update_mode = 1} (gdb) print disk->dev $6 = (PedDevice *) 0x558890efaf30 (gdb) print *disk->dev $7 = {next = 0x0, model = 0x558890eafa40 "0\257U", path = 0x558890f01450 " Y\360\220\210U", type = 2431670560, sector_size = 0, phys_sector_size = 32, length = 31, open_count = -1, read_only = 8, external_mode = 0, dirty = 0, boot_dirty = 0, hw_geom = {cylinders = 0, heads = 0, sectors = 0}, bios_geom = {cylinders = 33, heads = 0, sectors = 1}, host = 21896, did = 0, arch_specific = 0x0} (gdb) print disk->dev->sector_size $5 = 0 (gdb) up #2 0x00007fb67448851a in _disk_alloc_metadata (disk=0x558890efb060) at ../../libparted/disk.c:1164 warning: Source file is more recent than executable. 1164 _disk_alloc_metadata (disk); (gdb) list disk.c:1149,1177 1149 1150 static int 1151 _disk_pop_update_mode (PedDisk* disk) 1152 { 1153 PED_ASSERT (disk->update_mode); 1154 1155 if (disk->update_mode == 1) { 1156 /* re-allocate metadata BEFORE leaving update mode, to prevent infinite 1157 * recursion (metadata allocation requires update mode) 1158 */ 1159 #ifdef DEBUG 1160 if (!_disk_check_sanity (disk)) 1161 return 0; 1162 #endif 1163 1164 _disk_alloc_metadata (disk); 1165 disk->update_mode--; 1166 _disk_alloc_freespace (disk); 1167 1168 #ifdef DEBUG 1169 if (!_disk_check_sanity (disk)) 1170 return 0; 1171 #endif 1172 } else { 1173 disk->update_mode--; 1174 } 1175 return 1; 1176 } 1177 ############ root@debian:~# dpkg -l | grep -E "parted|python2" ii libparted-dev:amd64 3.2-25 amd64 disk partition manipulator - development files ii libparted-fs-resize0:amd64 3.2-25 amd64 disk partition manipulator - shared FS resizing library ii libparted2:amd64 3.2-25 amd64 disk partition manipulator - shared library ii libparted2-dbgsym:amd64 3.2-25 amd64 debug symbols for libparted2 ii libpython2-dev:amd64 2.7.16-1 amd64 header files and a static library for Python2 ii libpython2-stdlib:amd64 2.7.16-1 amd64 interactive high-level object-oriented language (Python2) ii libpython2.7:amd64 2.7.16-2 amd64 Shared Python runtime library (version 2.7) ii libpython2.7-dbg:amd64 2.7.16-2 amd64 Debug Build of the Python Interpreter (version 2.7) ii libpython2.7-dev:amd64 2.7.16-2 amd64 Header files and a static library for Python (v2.7) ii libpython2.7-minimal:amd64 2.7.16-2 amd64 Minimal subset of the Python language (version 2.7) ii libpython2.7-stdlib:amd64 2.7.16-2 amd64 Interactive high-level object-oriented language (standard library, version 2.7) ii parted 3.2-25 amd64 disk partition manipulator ii python2 2.7.16-1 amd64 interactive high-level object-oriented language (Python2 version) ii python2-dev 2.7.16-1 amd64 header files and a static library for Python2 ii python2-minimal 2.7.16-1 amd64 minimal subset of the Python2 language ii python2.7 2.7.16-2 amd64 Interactive high-level object-oriented language (version 2.7) ii python2.7-dbg 2.7.16-2 amd64 Debug Build of the Python Interpreter (version 2.7) ii python2.7-dev 2.7.16-2 amd64 Header files and a static library for Python (v2.7) ii python2.7-minimal 2.7.16-2 amd64 Minimal subset of the Python language (version 2.7) set width 0 set pagination off directory /home/benutzer/source/libparted2/orig/parted-3.2/libparted/fs/r directory /home/benutzer/source/libparted2/orig/parted-3.2/libparted/fs bt