[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#423437: parted-server: hangs on "command_set_name" if name is empty

reassign 423437 parman-base 105
retitle 423437 parted-server: hangs on "command_set_name" if name is empty
tags 423437 + confirmed

On Friday 11 May 2007 22:10, dth wrote:
> While trying to mount them at the right positions I accidentally
> hit the"name" tag, since i would want to use that I left it empty
> and hit return.
> The whole install procedure than stalls even pressing control-C and go
> back to main menu you wont be able to start a new partiion manager again

I have been able to reproduce this behavior after creating a new partition 
table using the GPT label by just creating a new partition and then 
changing its name, leaving the input blank.

Changing the name if some value is entered works, but leaving the name 
empty of trying to delete an existing name by making the name empty 
results in a hang.

I have traced this as far as the function command_set_name() in 
        if (1 != iscanf("%as", &id))
                critical_error("Expected partition id");
        part = partition_with_id(disk, id);
        if (part == NULL || !ped_partition_is_active(part))
                critical_error("No such active partition: %s", id);
        log("Partition found (%s)", id);
        if (1 != iscanf(" %a[^\n]", &name))
                critical_error("No data in infifo!");
        log("Changing name to %s", name);

The partman log shows the "Partition found", but not the "Changing name 
to" log message, so presumably it hangs on the line in between.

The last that is shown in the syslog with set -x is:
+ open_dialog SET_NAME 17408-2147466751 
+ command=SET_NAME
+ shift
+ open_infifo
+ exec
+ write_line SET_NAME =dev=scsi=host0=bus0=target0=lun0=disc 
+ log IN: SET_NAME =dev=scsi=host0=bus0=target0=lun0=disc 17408-2147466751 
+ local program 
+ echo /lib/partman/active_partition/10change_name/do_option: IN:  
SET_NAME =dev=scsi=host0=bus0=target0=lun0=disc 17408-2147466751 
+ echo SET_NAME =dev=scsi=host0=bus0=target0=lun0=disc 17408-2147466751 
+ open_outfifo 

The "open_dialog" call is from active_partition/change_name in 
partman-partitioning and looks like:
db_get partman-partitioning/set_name
open_dialog SET_NAME "$id" "$RET"

Reply to: