proc pomuze strace?

Martin Vysohlid vysohlid na sco.ipp.cas.cz
Úterý Červenec 21 09:36:57 CEST 1998


Preju pekny den.

Pouzivam apcupsd-3.4.1 (http://www.dyer.vanderbilt.edu/server/apcupsd/)
k pripojeni dvou pocitacu k jednomu zaloznimu zdroji (jeden je pripojeny
primo k UPS - master, druhy se o vypadku dozvi po siti od prvniho - slave).

Obcas apcupsd prestane fungovat. No, a divne mi je, ze kdyz na tom
pocitaci, ktery je slave, udelam "strace -p pid_apcupsd", tak se vse zas
vesele rozbehne a nekolik dni az tydnu to bezi bez problemu.

master:
[root na sco /]# strace -p696
read(6,

a dal nic nedela (?deadlock?)

kdyz vsak na druhem pocitaci (slave) provedu:
[root na icpp /root]# strace -p589
write(6, "apcupsd-linux-4.0\0\0@\0\0\0\0\0"..., 84) = 84
nanosleep(0xbffffd18, 0xbffffd18, 0x400a33fc, 0x8059140, 0x80592d4) = 0
read(6, "apcupsd-linux-4.0\0\0\0\0\0\0\0\0"..., 84) = 84
close(6)                                = 0
...

a v ten okamzik se rozbehne i proces apcupsd na pocitaci, kde bezi master:
read(6, "apcupsd-linux-4.0\0\0@\0\0\0\0\0"..., 84) = 84
write(6, "apcupsd-linux-4.0\0\0\0\0\0\0\0\0"..., 84) = 84
close(6)
...

Stejne chovani se projevilo pokazde - zatim asi 4x.

Ja jsem si myslel, ze strace sleduje proces takovym zpusobem, ze ho nijak
neovlivni. Jak to, ze to pomuze??

(Moc nerozumim tomu, jak se programuje komunikace po siti a k tomu apcupsd
nejsou ani zdrojaky :-(, ale k vysvetleni efektu strace to mozna nebude
zapotrebi.)

verze jadra: master - 2.0.33, slave - 3.0.34pre13

Diky za pripadne vysvetleni,
Martin



Další informace o konferenci Linux