Hallo,
ich hab meinen Fujitsu Esprimo mit 0.5 als Headless-Server am laufen.
Mit 0.4 gabs keine Probleme, unter 0.5 bleibt das Ding ab und zu in nem Futex-Wait hängen. Der Client ist noch YaVDR 0.4. Wenn ich hier die Programme öfter wechsle geht irgendwann am Client nichts mehr, auf die FB reagiert er sehr zäh.
Hab dann auf dem Client mal mit strace den VDR-Prozess beobachtet. Wenn der Client in diesen komischen Zustand kommt bleibt der VDR-Prozess auf dem Server in einem Futex-Wait stecken.
Das ganze sieht dann so aus:
QuoteDisplay Moreaccept(7, 0x7fff33d99d90, [16]) = -1 EAGAIN (Resource temporarily unavailable)
gettimeofday({1346611393, 998760}, NULL) = 0
futex(0x7a3484, FUTEX_WAIT_BITSET_PRIVATE|FUTEX_CLOCK_REALTIME, 10447, {1346611394, 8760000}, ffffffff) = -1 ETIMEDOUT (Connection timed out)
clock_gettime(CLOCK_MONOTONIC, {8623, 918194565}) = 0
futex(0x7a34c0, FUTEX_WAKE_PRIVATE, 1) = 0
clock_gettime(CLOCK_MONOTONIC, {8623, 918473092}) = 0
poll([{fd=15, events=POLLIN}], 1, 10) = 0 (Timeout)
ioctl(15, 0x80026f47, 0x7fff33d9bd6e) = 0
poll([{fd=15, events=POLLIN}], 1, 10) = 1 ([{fd=15, revents=POLLIN}])
ioctl(15, 0x80286f4e, 0x7fff33d9bd00) = 0
ioctl(15, 0x80286f4e, 0x7fff33d9bd00) = -1 EAGAIN (Resource temporarily unavailable)
ioctl(15, 0x80046f45, 0x7fff33d9bd60) = 0
gettid() = 3123
sendto(3, "<11>Sep 2 20:43:14 vdr: [3123] "..., 55, MSG_NOSIGNAL, NULL, 0) = 55
futex(0xc5a9a4, FUTEX_CMP_REQUEUE_PRIVATE, 1, 2147483647, 0xc5a940, 4754) = 1
open("/dev/dvb/adapter0/demux0", O_RDWR|O_NONBLOCK) = 21
ioctl(21, 0x40146f2c, 0x7fff33d9bcc0) = 0
open("/dev/dvb/adapter0/demux0", O_RDWR|O_NONBLOCK) = 25
ioctl(25, 0x40146f2c, 0x7fff33d9bcc0) = 0
futex(0xc5cc00, FUTEX_WAIT_PRIVATE, 2, NULL
Ein "restart vdr" auf dem Server schafft abhilfe. Dieser dauert aber auch ca. eine Minute.
Jemand ne Idee woher das kommen kann oder wie ich der Ursache auf die Spure komme?