Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 306375 - sys-apps/hal-0.5.14-r2: will not start with *** [DIE] hald_runner.c:runner_died():204 : Runner died when running hald-probe-storage
Summary: sys-apps/hal-0.5.14-r2: will not start with *** [DIE] hald_runner.c:runner_di...
Status: RESOLVED WORKSFORME
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: [OLD] Core system (show other bugs)
Hardware: AMD64 Linux
: High major (vote)
Assignee: Daniel Gryniewicz (RETIRED)
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2010-02-22 15:27 UTC by blackd
Modified: 2010-03-11 21:46 UTC (History)
1 user (show)

See Also:
Package list:
Runtime testing required: ---


Attachments
emerge --info (emerge-info.log,7.18 KB, text/plain)
2010-02-22 15:28 UTC, blackd
Details
full debug output of hald (hal.log,1.74 MB, text/plain)
2010-02-22 15:28 UTC, blackd
Details
changes printfs in runner.c to fprintf (runner-printf.path,1.82 KB, patch)
2010-03-02 21:48 UTC, blackd
Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description blackd 2010-02-22 15:27:16 UTC
making hald-probe-storage non executable helps but all storage related functionality is lost.

my storage configurtion is:

../../sdg
../../sdg1
../../sdg2
../../sr0
../../sdc
../../sdd
../../sde
../../sdf
../../sda
../../sdb



# mdadm --detail /dev/md4

/dev/md4:
        Version : 1.00
  Creation Time : Mon Nov 16 22:58:00 2009
     Raid Level : raid0
...........
         Events : 0

    Number   Major   Minor   RaidDevice State
       0       8       32        0      active sync   /dev/sdc
       1       8       48        1      active sync   /dev/sdd
       2       8       64        2      active sync   /dev/sde
       3       8       80        3      active sync   /dev/sdf



# pvdisplay

  --- Physical volume ---
  PV Name               /dev/md4
  VG Name               main
  ...........

  --- Physical volume ---
  PV Name               /dev/sda
  VG Name               main
  ...........

  --- Physical volume ---
  PV Name               /dev/sdg2
  VG Name               main
  ...........

  --- Physical volume ---
  PV Name               /dev/sdb
  VG Name               main
  ...........



# lvdisplay                                    
  --- Logical volume ---                                       
  LV Name                /dev/main/r
  VG Name                main                                  
  ...........
  Block device           253:3                                 
                                                               
  --- Logical volume ---                                       
  LV Name                /dev/main/w
  VG Name                main                                  
  ...........
  Block device           253:4                                 
                                                               
  --- Logical volume ---                                       
  LV Name                /dev/main/s
  VG Name                main                                  
  ...........
  Block device           253:5                                 
                                                               
  --- Logical volume ---                                       
  LV Name                /dev/main/h
  VG Name                main                                  
  ...........
  Block device           253:6

  --- Logical volume ---
  LV Name                /dev/main/m
  VG Name                main
  ...........
  Block device           253:7

  --- Logical volume ---
  LV Name                /dev/main/i
  VG Name                main
  ...........
  Block device           253:8

  --- Logical volume ---
  LV Name                /dev/main/vm
  VG Name                main
  ...........
  Block device           253:9





Reproducible: Always

Steps to Reproduce:
Comment 1 blackd 2010-02-22 15:28:23 UTC
Created attachment 220699 [details]
emerge --info

emerge --info
Comment 2 blackd 2010-02-22 15:28:55 UTC
Created attachment 220701 [details]
full debug output of hald

full debug output of hald
Comment 3 Daniel Gryniewicz (RETIRED) gentoo-dev 2010-03-02 14:56:09 UTC
The issue is that the probe ran for longer than 20 seconds, causing a timeout error.  That's a fairly big array set; maybe it's actually taking >20 seconds to spin up and probe all the drives?

Are you willing to do mods to your hal source to see?  If so, could you change HAL_HELPER_TIMEOUT in hald/hald_runner.h to something higher (like maybe 60000 rather than 20000) and see if that fixes your problem?  If you're not comfortable making the mod yourself, I can whip up a patch.
Comment 4 blackd 2010-03-02 19:05:23 UTC
Nop this does not fix the problem actually hald does not stay active for anything near 20 seconds.


# time hald --daemon=no
device udi = /org/freedesktop/Hal/devices/temp/136
  linux.hotplug_type = 2  0x2  (int)
  linux.subsystem = 'tty'  (string)
  serial.originating_device = '/org/freedesktop/Hal/devices/platform_serial8250'  (string)
  serial.device = '/dev/ttyS1'  (string)
  serial.port = 1  0x1  (int)
  serial.type = 'platform'  (string)
  info.subsystem = 'tty'  (string)
  info.product = 'Platform Device (serial8250)'  (string)
  linux.sysfs_path = '/sys/devices/platform/serial8250/tty/ttyS1'  (string)
  info.parent = '/org/freedesktop/Hal/devices/platform_serial8250'  (string)
  info.category = 'serial'  (string)
  linux.device_file = '/dev/ttyS1'  (string)

device udi = /org/freedesktop/Hal/devices/temp/137
  linux.hotplug_type = 2  0x2  (int)
  linux.subsystem = 'tty'  (string)
  serial.originating_device = '/org/freedesktop/Hal/devices/platform_serial8250'  (string)
  serial.device = '/dev/ttyS2'  (string)
  serial.port = 2  0x2  (int)
  serial.type = 'platform'  (string)
  info.subsystem = 'tty'  (string)
  info.product = 'Platform Device (serial8250)'  (string)
  linux.sysfs_path = '/sys/devices/platform/serial8250/tty/ttyS2'  (string)
  info.parent = '/org/freedesktop/Hal/devices/platform_serial8250'  (string)
  info.category = 'serial'  (string)
  linux.device_file = '/dev/ttyS2'  (string)

device udi = /org/freedesktop/Hal/devices/temp/138
  linux.hotplug_type = 2  0x2  (int)
  linux.subsystem = 'tty'  (string)
  serial.originating_device = '/org/freedesktop/Hal/devices/platform_serial8250'  (string)
  serial.device = '/dev/ttyS3'  (string)
  serial.port = 3  0x3  (int)
  serial.type = 'platform'  (string)
  info.subsystem = 'tty'  (string)
  info.product = 'Platform Device (serial8250)'  (string)
  linux.sysfs_path = '/sys/devices/platform/serial8250/tty/ttyS3'  (string)
  info.parent = '/org/freedesktop/Hal/devices/platform_serial8250'  (string)
  info.category = 'serial'  (string)
  linux.device_file = '/dev/ttyS3'  (string)

*** [DIE] hald_runner.c:runner_died():204 : Runner died

real    0m0.387s
user    0m0.201s
sys     0m0.150s
Comment 5 blackd 2010-03-02 21:48:56 UTC
Created attachment 221873 [details, diff]
changes printfs in runner.c to fprintf

there are some printfs in hald-runner/runner.c that appears are causing the problem. The patch changes them to fprintf(stderr, ....). 

This fixes it for me.
Comment 6 Daniel Gryniewicz (RETIRED) gentoo-dev 2010-03-02 22:04:36 UTC
That is very strange.  I can't see why that should cause it to fail.  Does it still fail if you fprintf to stdout rather than stderr?  Or maybe it was just the recompile that fixed it?
Comment 7 blackd 2010-03-02 22:38:41 UTC
Yep it fails with fprintf(stdout, ...).

And it always fails in the same printf.
I did catch that by pure chance by redirecting all logs of probe-storage, probe-volume and at the end hald-runner in separate files for every process instance. And when I changed the printf to LOG... it just started working.



This is what hald-runner dumps the last printf causes the hald-runner process to die.


[11161]: 299 -> Run started hald-generate-fdi-cache (60000) (0) 
![11161]: 312 ->   full path is '/usr/libexec/hald-generate-fdi-cache', program_dir is '/usr/libexec'
[11161]: 198 -> pid 11162: rc=1 signaled=0: /usr/libexec/hald-generate-fdi-cache
[11161]: 299 -> Run started hal-system-power-pm-is-supported (20000) (0) 
![11161]: 312 ->   full path is '/usr/libexec/hal-system-power-pm-is-supported', program_dir is '/usr/libexec'
[11161]: 198 -> pid 11163: rc=0 signaled=0: /usr/libexec/hal-system-power-pm-is-supported
[11161]: 299 -> Run started hald-addon-input (0) (0) 
![11161]: 312 ->   full path is '/usr/libexec/hald-addon-input', program_dir is '/usr/libexec'
[11161]: 299 -> Run started hald-probe-hiddev (20000) (0) 
![11161]: 312 ->   full path is '/usr/libexec/hald-probe-hiddev', program_dir is '/usr/libexec'
[11161]: 299 -> Run started hald-probe-storage (20000) (0) 
![11161]: 312 ->   full path is '/usr/libexec/hald-probe-storage', program_dir is '/usr/libexec'
[11161]: 299 -> Run started hald-probe-storage (20000) (0) 
![11161]: 312 ->   full path is '/usr/libexec/hald-probe-storage', program_dir is '/usr/libexec'
[11161]: 299 -> Run started hald-probe-storage (20000) (0) 
![11161]: 312 ->   full path is '/usr/libexec/hald-probe-storage', program_dir is '/usr/libexec'
[11161]: 299 -> Run started hald-probe-storage (20000) (0) 
![11161]: 312 ->   full path is '/usr/libexec/hald-probe-storage', program_dir is '/usr/libexec'
[11161]: 299 -> Run started hald-probe-storage (20000) (0) 
![11161]: 312 ->   full path is '/usr/libexec/hald-probe-storage', program_dir is '/usr/libexec'
[11161]: 299 -> Run started hald-probe-storage (20000) (0) 
![11161]: 312 ->   full path is '/usr/libexec/hald-probe-storage', program_dir is '/usr/libexec'
[11161]: 299 -> Run started hald-probe-storage (20000) (0) 
![11161]: 312 ->   full path is '/usr/libexec/hald-probe-storage', program_dir is '/usr/libexec'
[11161]: 299 -> Run started hald-probe-storage (20000) (0) 
![11161]: 312 ->   full path is '/usr/libexec/hald-probe-storage', program_dir is '/usr/libexec'
[11161]: 299 -> Run started hald-probe-storage (20000) (0) 
![11161]: 312 ->   full path is '/usr/libexec/hald-probe-storage', program_dir is '/usr/libexec'
[11161]: 299 -> Run started hald-probe-storage (20000) (0) 
![11161]: 312 ->   full path is '/usr/libexec/hald-probe-storage', program_dir is '/usr/libexec'
[11161]: 299 -> Run started hald-probe-storage (20000) (0) 
![11161]: 312 ->   full path is '/usr/libexec/hald-probe-storage', program_dir is '/usr/libexec'
[11161]: 299 -> Run started hald-probe-storage (20000) (0) 
![11161]: 312 ->   full path is '/usr/libexec/hald-probe-storage', program_dir is '/usr/libexec'
[11161]: 299 -> Run started hald-probe-pc-floppy (20000) (0) 
![11161]: 312 ->   full path is '/usr/libexec/hald-probe-pc-floppy', program_dir is '/usr/libexec'
[11161]: 299 -> Run started hald-probe-serial (20000) (0) 
![11161]: 312 ->   full path is '/usr/libexec/hald-probe-serial', program_dir is '/usr/libexec'
[11161]: 299 -> Run started hald-probe-serial (20000) (0) 
![11161]: 312 ->   full path is '/usr/libexec/hald-probe-serial', program_dir is '/usr/libexec'
[11161]: 299 -> Run started hald-probe-serial (20000) (0) 
![11161]: 312 ->   full path is '/usr/libexec/hald-probe-serial', program_dir is '/usr/libexec'
[11161]: 198 -> pid 11203: rc=1 signaled=0: /usr/libexec/hald-probe-serial
[11161]: 299 -> Run started hald-probe-serial (20000) (0) 
![11161]: 312 ->   full path is '/usr/libexec/hald-probe-serial', program_dir is '/usr/libexec'
[11161]: 198 -> pid 11204: rc=1 signaled=0: /usr/libexec/hald-probe-serial
[11161]: 198 -> pid 11205: rc=1 signaled=0: /usr/libexec/hald-probe-serial
[11161]: 198 -> pid 11206: rc=0 signaled=0: /usr/libexec/hald-probe-serial
[11161]: 299 -> Run started hal-storage-cleanup-all-mountpoints (20000) (0) 
![11161]: 312 ->   full path is '/usr/libexec/hal-storage-cleanup-all-mountpoints', program_dir is '/usr/libexec'
Comment 8 blackd 2010-03-11 19:13:03 UTC
Hi,

Any news about this one?

Comment 9 Daniel Gryniewicz (RETIRED) gentoo-dev 2010-03-11 19:24:38 UTC
No.  I can't get it to fail, and I can't apply a black magic patch that shouldn't make any difference.  Until I (or anyone, really) can figure out why stdout fails but stderr is fine, we're stuck.
Comment 10 blackd 2010-03-11 20:14:39 UTC
Hmm my disk setup had recently changed due to dist failure and now I've tried unpached version and it works.

The differences is that now there is no md4 and all disks are in the lvm volume group.

I suppose that now we"ll never know what was the cause.
Comment 11 Daniel Gryniewicz (RETIRED) gentoo-dev 2010-03-11 21:46:06 UTC
Well, that's unfortunate.  However, if it comes back, please re-open so we can track it down.