On 1/4/21 10:01 AM, John Paul Adrian Glaubitz wrote:
> The resulting logfile is (ignore the noise in the beginning, scroll to the 
> end):
> 
>> https://people.debian.org/~glaubitz/partman/powerpc/partman.debug.log
> 
> Thus, it stops at "set_disk_named(device_name, 
> ped_disk_new(device_named(device_name)))".

Another debug change:

--- /tmp/partman-base-214/parted_server.c       2019-06-02 05:29:29.000000000 
-0700
+++ partman-base/partman-base-213/parted_server.c       2021-01-04 
01:21:27.489651278 -0800
@@ -124,6 +124,7 @@
                 char *msg_oprintf; \
                 fprintf(outfifo,__VA_ARGS__); \
                 fflush(outfifo); \
+                fsync(fileno(outfifo)); \
                 msg_oprintf = xasprintf(__VA_ARGS__); \
                 log("OUT: %s\n", msg_oprintf); \
                 free(msg_oprintf); \
@@ -558,6 +559,8 @@
 void
 set_disk_named(const char *name, PedDisk *disk)
 {
+
+        log("Debug in set_disk_named()");
         PedDisk *old_disk;
         int index = index_of_name(name);
         assert(device_opened(name));
@@ -1219,14 +1222,19 @@
         oprintf("OK\n");
         if (NULL != device_named(device_name)) {
                 oprintf("OK\n");
+                log("Debug1\n");
                 deactivate_exception_handler();
+                log("Debug2\n");
                 set_disk_named(device_name,
                                ped_disk_new(device_named(device_name)));
+                log("Debug3\n");
                 unchange_named(device_name);
+                log("Debug4\n");
                 activate_exception_handler();
         } else
                 oprintf("failed\n");
         free(device);
+        free(device_name);
 }
 
 void

Which results in this log:

/bin/partman: *******************************************************
/lib/partman/init.d/25md-devices: 
*******************************************************
/lib/partman/init.d/30parted: 
*******************************************************
parted_server: ======= Starting the server
parted_server: main_loop: iteration 1
parted_server: Opening infifo
/lib/partman/init.d/30parted: IN: OPEN =dev=sda /dev/sda
parted_server: Read command: OPEN
parted_server: command_open()
parted_server: Request to open =dev=sda
parted_server: Opening outfifo
parted_server: OUT: OK


parted_server: OUT: OK


parted_server: Debug1

parted_server: Debug2

so the crash occurs in ped_disk_new() which is part of libparted.

Might be an idea to update src:parted to the latest upstream version which
hasn't happend yet in Debian.

Adrian

-- 
 .''`.  John Paul Adrian Glaubitz
: :' :  Debian Developer - glaub...@debian.org
`. `'   Freie Universitaet Berlin - glaub...@physik.fu-berlin.de
  `-    GPG: 62FF 8A75 84E0 2956 9546  0006 7426 3B37 F5B5 F913

Reply via email to