[Tech] hald muore inaspettatamente

Umberto Genovese umbegen@tin.it
Mer 16 Mar 2005 19:58:50 CET


Salve a tutti;
sono un po' di giorni che mi sbatto inutilmente per venire a capo di questo
problema:
hald (hardware abstraction layer) è un simpatico demone che quando funge è
perfetto, ma quando muore (spessissimo) è sinonimo di giramenti...
Allora con strace ho registrato questo:

_______________________________________________________________________
#strace -p <pid_of_hald>
[...]
gettimeofday({1110997942, 480330}, NULL) = 0
poll([{fd=6, events=POLLIN}, {fd=13, events=POLLIN|POLLPRI}, {fd=10,
events=POLL IN}, {fd=8, events=POLLIN}, {fd=9, events=POLLIN}], 5, 1792) = 0
gettimeofday({1110997944, 273701}, NULL) = 0
open("/dev/hdc", O_RDONLY|O_NONBLOCK|O_EXCL|O_LARGEFILE) = -1 EBUSY (Device
or r esource busy)
open("/etc/mtab", O_RDONLY)             = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=478, ...}) = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) =
0xb7 fe8000
read(3, "/dev/hda2 / auto rw,errors=remou"..., 4096) = 478
close(3)                                = 0
munmap(0xb7fe8000, 4096)                = 0
open("/dev/hdc", O_RDONLY|O_NONBLOCK|O_LARGEFILE) = 3
ioctl(3, CDROM_DRIVE_STATUS, 0x7fffffff) = 4
ioctl(3, CDROM_MEDIA_CHANGED, 0x7fffffff) = 0
close(3)                                = 0
open("/dev/hdd", O_RDONLY|O_NONBLOCK|O_EXCL|O_LARGEFILE) = 3
ioctl(3, CDROM_DRIVE_STATUS, 0x7fffffff) = 2
close(3)                                = 0
time(NULL)                              = 1110997944
gettimeofday({1110997944, 468174}, NULL) = 0
poll([{fd=6, events=POLLIN}, {fd=13, events=POLLIN|POLLPRI}, {fd=10,
events=POLL IN}, {fd=8, events=POLLIN}, {fd=9, events=POLLIN}], 5, 1806) = 0
gettimeofday({1110997946, 274966}, NULL) = 0
open("/dev/hdc", O_RDONLY|O_NONBLOCK|O_EXCL|O_LARGEFILE) = -1 EBUSY (Device
or r esource busy)
open("/etc/mtab", O_RDONLY)             = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=478, ...}) = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) =
0xb7 fe8000
read(3, "/dev/hda2 / auto rw,errors=remou"..., 4096) = 478
close(3)                                = 0
munmap(0xb7fe8000, 4096)                = 0
open("/dev/hdc", O_RDONLY|O_NONBLOCK|O_LARGEFILE) = 3
ioctl(3, CDROM_DRIVE_STATUS, 0x7fffffff) = 4
ioctl(3, CDROM_MEDIA_CHANGED, 0x7fffffff) = 0
close(3)                                = 0
open("/dev/hdd", O_RDONLY|O_NONBLOCK|O_EXCL|O_LARGEFILE
_______________________________________________________________________
e qui hald muore! 

ho registrato lo status di hald da "vivo"

_______________________________________________________________________
#cat /proc/<pid_of_hald>/status
Name:   hald
State:  S (sleeping)
SleepAVG:       98%
Tgid:   4796
Pid:    4796
PPid:   1
TracerPid:      8568
Uid:    115     115     115     115
Gid:    115     115     115     115
FDSize: 32
Groups: 6 24 25 115
VmSize:     7976 kB
VmLck:         0 kB
VmRSS:      6496 kB
VmData:     4948 kB
VmStk:        16 kB
VmExe:       212 kB
VmLib:      2704 kB
VmPTE:        20 kB
Threads:        1
SigPnd: 0000000000000000
ShdPnd: 0000000000000000
SigBlk: 0000000000000000
SigIgn: 0000000000001000
SigCgt: 0000000010014000
CapInh: 0000000000000000
CapPrm: 00000000ffffffff
CapEff: 00000000fffffeff
_______________________________________________________________________
e da "morto"

_______________________________________________________________________
#cat /proc/<pid_of_hald>/status
Name:   hald
State:  D (disk sleep)
SleepAVG:       98%
Tgid:   4796
Pid:    4796
PPid:   1
TracerPid:      8568
Uid:    115     115     115     115
Gid:    115     115     115     115
FDSize: 32
Groups: 6 24 25 115
VmSize:     7976 kB
VmLck:         0 kB
VmRSS:      6496 kB
VmData:     4948 kB
VmStk:        16 kB
VmExe:       212 kB
VmLib:      2704 kB
VmPTE:        20 kB
Threads:        1
SigPnd: 0000000000000000
ShdPnd: 0000000000000000
SigBlk: 0000000000000000
SigIgn: 0000000000001000
SigCgt: 0000000010014000
CapInh: 0000000000000000
CapPrm: 00000000ffffffff
CapEff: 00000000fffffeff
_______________________________________________________________________
Il kernel usato è un 2.6.10 vanilla su Debian GNU/Linux SID (anche se credo
che sia ininfluente).
Nel momento in cui hald è morto stavo guardando un dvd su hdc (il
masterizzatore) con xine; avete qualche idea di perché "hald" schiatta a
questo modo? 





-- 
     Ciao Umberto
#------------------------------------------------------------------------#
|	Umberto Genovese (Seldon)	E-mail: <tanto.un@te.lo.dico>	 |
|PGP  fingerprint =  526A B526 2BF4 E3FF 6200  30B4 AD2C D110 D0F3 66E4  |
|		       <GNU & Linux: the dynamic duo>			 |
#------------------------------------------------------------------------#
-------------- parte successiva --------------
Un allegato non testuale è stato rimosso....
Nome:        non disponibile
Tipo:        application/pgp-signature
Dimensione:  189 bytes
Descrizione: Digital signature
URL:         <http://lists.linux.it/pipermail/flug-tech/attachments/20050316/d980324b/attachment.pgp>


Maggiori informazioni sulla lista flug-tech