[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