ja, auch Timestamps gehen. Hier noch mal der strace ab restart dbus:
17:05:36.768942 gettid() = 14948 <0.000139>
17:05:36.769337 sendto(3, "<11>Jun 19 17:05:36 vdr: [14948]"..., 85, MSG_NOSIGNAL, NULL, 0) = 85 <0.000159>
17:05:36.769584 futex(0x1cf9e9c, FUTEX_WAIT_BITSET_PRIVATE|FUTEX_CLOCK_REALTIME, 1, {1340118337, 769578000}, ffffffff) = -1 ETIMEDOUT (Connection timed out) <1.000725>
17:05:37.770567 futex(0x1cf9e68, FUTEX_WAKE_PRIVATE, 1) = 0 <0.000113>
17:05:37.770823 futex(0x1cf9e9c, FUTEX_WAIT_BITSET_PRIVATE|FUTEX_CLOCK_REALTIME, 3, {1340118338, 770804000}, ffffffff) = -1 ETIMEDOUT (Connection timed out) <1.000025>
17:05:38.771098 futex(0x1cf9e68, FUTEX_WAKE_PRIVATE, 1) = 0 <0.000076>
17:05:38.771302 futex(0x1cf9e9c, FUTEX_WAIT_BITSET_PRIVATE|FUTEX_CLOCK_REALTIME, 5, {1340118339, 771285000}, ffffffff) = -1 ETIMEDOUT (Connection timed out) <0.999983>
17:05:39.771580 futex(0x1cf9e68, FUTEX_WAKE_PRIVATE, 1) = 0 <0.000105>
17:05:39.771834 futex(0x1cf9e9c, FUTEX_WAIT_BITSET_PRIVATE|FUTEX_CLOCK_REALTIME, 7, {1340118340, 771816000}, ffffffff) = -1 ETIMEDOUT (Connection timed out) <1.000021>
17:05:40.772103 futex(0x1cf9e68, FUTEX_WAKE_PRIVATE, 1) = 0 <0.000075>
17:05:40.772306 futex(0x1cf9e9c, FUTEX_WAIT_BITSET_PRIVATE|FUTEX_CLOCK_REALTIME, 9, {1340118341, 772289000}, ffffffff) = -1 ETIMEDOUT (Connection timed out) <1.000024>
17:05:41.772952 futex(0x1cf9e68, FUTEX_WAKE_PRIVATE, 1) = 0 <0.000074>
17:05:41.773158 futex(0x1cf9e9c, FUTEX_WAIT_BITSET_PRIVATE|FUTEX_CLOCK_REALTIME, 11, {1340118342, 773141000}, ffffffff) = -1 ETIMEDOUT (Connection timed out) <1.000009>
17:05:42.773442 futex(0x1cf9e68, FUTEX_WAKE_PRIVATE, 1) = 0 <0.000075>
17:05:42.773645 futex(0x1cf9e9c, FUTEX_WAIT_BITSET_PRIVATE|FUTEX_CLOCK_REALTIME, 13, {1340118343, 773628000}, ffffffff) = -1 ETIMEDOUT (Connection timed out) <1.000026>
17:05:43.773939 futex(0x1cf9e68, FUTEX_WAKE_PRIVATE, 1) = 0 <0.000106>
17:05:43.774188 futex(0x1cf9e9c, FUTEX_WAIT_BITSET_PRIVATE|FUTEX_CLOCK_REALTIME, 15, {1340118344, 774171000}, ffffffff) = -1 ETIMEDOUT (Connection timed out) <1.000027>
17:05:44.774844 futex(0x1cf9e68, FUTEX_WAKE_PRIVATE, 1) = 0 <0.000076>
17:05:44.775061 futex(0x1cf9e9c, FUTEX_WAIT_BITSET_PRIVATE|FUTEX_CLOCK_REALTIME, 17, {1340118345, 775043000}, ffffffff) = -1 ETIMEDOUT (Connection timed out) <1.000023>
17:05:45.775338 futex(0x1cf9e68, FUTEX_WAKE_PRIVATE, 1) = 0 <0.000076>
17:05:45.775540 futex(0x1cf9e9c, FUTEX_WAIT_BITSET_PRIVATE|FUTEX_CLOCK_REALTIME, 19, {1340118346, 775523000}, ffffffff) = -1 ETIMEDOUT (Connection timed out) <1.000020>
17:05:46.775815 futex(0x1cf9e68, FUTEX_WAKE_PRIVATE, 1) = 0 <0.000104>
17:05:46.776064 futex(0x1cf9e9c, FUTEX_WAIT_BITSET_PRIVATE|FUTEX_CLOCK_REALTIME, 21, {1340118347, 776034000}, ffffffff) = -1 ETIMEDOUT (Connection timed out) <1.000008>
17:05:47.776327 futex(0x1cf9e68, FUTEX_WAKE_PRIVATE, 1) = 0 <0.000107>
17:05:47.776582 futex(0x1cf9e9c, FUTEX_WAIT_BITSET_PRIVATE|FUTEX_CLOCK_REALTIME, 23, {1340118348, 776564000}, ffffffff) = -1 ETIMEDOUT (Connection timed out) <1.000020>
17:05:48.776855 futex(0x1cf9e68, FUTEX_WAKE_PRIVATE, 1) = 0 <0.000104>
17:05:48.777100 futex(0x1cf9e9c, FUTEX_WAIT_BITSET_PRIVATE|FUTEX_CLOCK_REALTIME, 25, {1340118349, 777082000}, ffffffff) = -1 ETIMEDOUT (Connection timed out) <1.000170>
17:05:49.777591 futex(0x1cf9e68, FUTEX_WAKE_PRIVATE, 1) = 0 <0.000123>
17:05:49.777870 futex(0x1cf9e9c, FUTEX_WAIT_BITSET_PRIVATE|FUTEX_CLOCK_REALTIME, 27, {1340118350, 777853000}, ffffffff) = -1 ETIMEDOUT (Connection timed out) <1.000022>
17:05:50.778150 futex(0x1cf9e68, FUTEX_WAKE_PRIVATE, 1) = 0 <0.000104>
17:05:50.778392 futex(0x1cf9e9c, FUTEX_WAIT_BITSET_PRIVATE|FUTEX_CLOCK_REALTIME, 29, {1340118351, 778375000}, ffffffff) = -1 ETIMEDOUT (Connection timed out) <1.000033>
17:05:51.779135 futex(0x1cf9e68, FUTEX_WAKE_PRIVATE, 1) = 0 <0.000077>
17:05:51.779348 futex(0x1cf9e9c, FUTEX_WAIT_BITSET_PRIVATE|FUTEX_CLOCK_REALTIME, 31, {1340118352, 779331000}, ffffffff) = -1 ETIMEDOUT (Connection timed out) <1.000013>
17:05:52.779680 futex(0x1cf9e68, FUTEX_WAKE_PRIVATE, 1) = 0 <0.000112>
17:05:52.779941 futex(0x1cf9e9c, FUTEX_WAIT_BITSET_PRIVATE|FUTEX_CLOCK_REALTIME, 33, {1340118353, 779922000}, ffffffff) = -1 ETIMEDOUT (Connection timed out) <1.000029>
17:05:53.780300 futex(0x1cf9e68, FUTEX_WAKE_PRIVATE, 1) = 0 <0.000078>
17:05:53.780570 futex(0x1cf9e9c, FUTEX_WAIT_BITSET_PRIVATE|FUTEX_CLOCK_REALTIME, 35, {1340118354, 780552000}, ffffffff) = -1 ETIMEDOUT (Connection timed out) <1.000017>
17:05:54.780843 futex(0x1cf9e68, FUTEX_WAKE_PRIVATE, 1) = 0 <0.000105>
17:05:54.781099 futex(0x1cf9e9c, FUTEX_WAIT_BITSET_PRIVATE|FUTEX_CLOCK_REALTIME, 37, {1340118355, 781081000}, ffffffff^C <unfinished ...>
Process 14948 detached
Alles anzeigen
Ich habe gesehen, dass vor dem restart dbus der kritische Thread zwar keine Meldungen im strace produziert, aber unter der VDR-Prozess-ID werden auch solche Meldungen gezeigt. Hier ein kleiner Ausschnitt vom strace des VDR-Hauptprozesses vor dem restart dbus.
17:04:00.956471 futex(0x7a34c0, FUTEX_WAKE_PRIVATE, 1) = 0 <0.000030>
17:04:00.956609 stat("/srv/vdr/video.00/.update", {st_mode=S_IFREG|0644, st_size=0, ...}) = 0 <0.000037>
17:04:00.956743 gettid() = 14519 <0.000021>
17:04:00.956807 accept(7, 0x7fffd4748310, [16]) = -1 EAGAIN (Resource temporarily unavailable) <0.000041>
17:04:00.956899 futex(0x7a3484, FUTEX_WAIT_BITSET_PRIVATE|FUTEX_CLOCK_REALTIME, 743, {1340118241, 956893000}, ffffffff) = -1 ETIMEDOUT (Connection timed out) <1.000046>
17:04:01.957065 futex(0x7a34c0, FUTEX_WAKE_PRIVATE, 1) = 0 <0.000023>
17:04:01.957159 stat("/srv/vdr/video.00/.update", {st_mode=S_IFREG|0644, st_size=0, ...}) = 0 <0.000026>
17:04:01.957241 gettid() = 14519 <0.000026>
17:04:01.957302 accept(7, 0x7fffd4748310, [16]) = -1 EAGAIN (Resource temporarily unavailable) <0.000030>
17:04:01.957374 futex(0x7a3484, FUTEX_WAIT_BITSET_PRIVATE|FUTEX_CLOCK_REALTIME, 745, {1340118242, 957369000}, ffffffff) = -1 ETIMEDOUT (Connection timed out) <1.000054>
17:04:02.957583 futex(0x7a34c0, FUTEX_WAKE_PRIVATE, 1) = 0 <0.000025>
17:04:02.957688 stat("/srv/vdr/video.00/.update", {st_mode=S_IFREG|0644, st_size=0, ...}) = 0 <0.000027>
17:04:02.957776 gettid() = 14519 <0.000019>
17:04:02.957868 accept(7, 0x7fffd4748310, [16]) = -1 EAGAIN (Resource temporarily unavailable) <0.000049>
Alles anzeigen
Das könnte man womöglich auch so interpretieren, dass die Timeouts eigentlich immer da sind, und irgendwie die Übergabe in den Thread zu einem Hänger führt.