Mailing List archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[vdr] Re: Strange VDR hangup filled up my disk



Stefan Huelswitt wrote:
> 
> Hi,
> over christmas I was on holidays and left my vdr box alone. When
> I returned the video disk was completely filled up and vdr was
> hanging. No reaction to remote keys. Here is what I see from the
> logs:
> 
> Dec 26 20:05:00 video vdr[25925]: timer 4 start
> Dec 26 20:05:00 video vdr[25925]: switching to channel 7
> Dec 26 20:05:00 video vdr[25925]: Title: 'Abyss - Abgrund des Todes' Subtitle: 'Spielfilm'
> Dec 26 20:05:00 video vdr[25925]: record /mnt/videodata/Pro_7/2001-12-26.20:05.50.99.rec
> Dec 26 20:05:00 video vdr[25925]: creating directory /mnt/videodata/Pro_7/2001-12-26.20:05.50.99.rec
> Dec 26 20:05:00 video vdr[25925]: recording to '/mnt/videodata/Pro_7/2001-12-26.20:05.50.99.rec/001.vdr'
> Dec 26 20:05:01 video vdr[26618]: output thread started (pid=26618)
> Dec 26 20:05:01 video vdr[26619]: input thread started (pid=26619)
> Dec 26 20:37:14 video vdr[26618]: recording to '/mnt/videodata/Pro_7/2001-12-26.20:05.50.99.rec/002.vdr'
> Dec 26 21:09:26 video vdr[26618]: recording to '/mnt/videodata/Pro_7/2001-12-26.20:05.50.99.rec/003.vdr'
> Dec 26 21:41:38 video vdr[26618]: recording to '/mnt/videodata/Pro_7/2001-12-26.20:05.50.99.rec/004.vdr'
> Dec 26 21:45:05 video vdr[26618]: ERROR: can't record MPEG1!
> Dec 26 22:13:51 video vdr[26618]: recording to '/mnt/videodata/Pro_7/2001-12-26.20:05.50.99.rec/005.vdr'
> Dec 26 22:46:03 video vdr[26618]: recording to '/mnt/videodata/Pro_7/2001-12-26.20:05.50.99.rec/006.vdr'
> Dec 26 23:18:16 video vdr[26618]: recording to '/mnt/videodata/Pro_7/2001-12-26.20:05.50.99.rec/007.vdr'
> Dec 26 23:20:00 video vdr[25925]: timer 5 start
> Dec 26 23:20:00 video vdr[25925]: switching to channel 7
> Dec 26 23:20:01 video vdr[25925]: Title: 'From Dusk till Dawn' Subtitle: 'Spielfilm'
> Dec 26 23:20:01 video vdr[25925]: record /mnt/videodata/Pro_7/2001-12-26.23:20.50.99.rec
> Dec 26 23:20:01 video vdr[25925]: creating directory /mnt/videodata/Pro_7/2001-12-26.23:20.50.99.rec
> Dec 26 23:20:02 video vdr[25925]: SpinUpDisk took 1.18 seconds
> Dec 26 23:20:02 video vdr[25925]: recording to '/mnt/videodata/Pro_7/2001-12-26.23:20.50.99.rec/001.vdr'
> Dec 26 23:20:04 video kernel: dvb0: ARM crashed!
> Dec 26 23:20:04 video vdr[26775]: output thread started (pid=26775)
> Dec 26 23:20:04 video vdr[26776]: input thread started (pid=26776)
> Dec 26 23:20:05 video vdr[25925]: max. latency time 4 seconds
> Dec 26 23:20:35 video vdr[26776]: ERROR: video data stream broken
> Dec 26 23:20:35 video vdr[26776]: initiating emergency exit
> Dec 26 23:21:06 video vdr[26776]: ERROR: video data stream broken
> Dec 26 23:21:06 video vdr[26776]: initiating emergency exit
> 
> OK, obviously the driver crashed (maybe bad reception due to
> snow). But why vdr doesn't exited?
> 
> Dec 26 23:21:37 video vdr[26776]: ERROR: video data stream broken
> Dec 26 23:21:37 video vdr[26776]: initiating emergency exit
> Dec 26 23:22:08 video vdr[26776]: ERROR: video data stream broken
> Dec 26 23:22:08 video vdr[26776]: initiating emergency exit
> Dec 26 23:22:39 video vdr[26776]: ERROR: video data stream broken
> Dec 26 23:22:39 video vdr[26776]: initiating emergency exit
> 
> This continues for the next hours, until:
> 
> Dec 27 11:27:01 video vdr[26776]: ERROR: video data stream broken
> Dec 27 11:27:01 video vdr[26776]: initiating emergency exit
> Dec 27 11:27:28 video vdr[26618]: low disk space (510 MB, limit is 512 MB)
> Dec 27 11:27:28 video vdr[26618]: recording to '/mnt/videodata/Pro_7/2001-12-26.20:05.50.99.rec/030.vdr'
> Dec 27 11:27:32 video vdr[26776]: ERROR: video data stream broken
> Dec 27 11:27:32 video vdr[26776]: initiating emergency exit
> 
> Note that proc 26618 (the first recording) kept saving data all
> the time, while proc 26776 (the second recording) failed.
> Of course both timer events should have finished hours before.
> 
> Finally:
> 
> Dec 27 11:42:37 video vdr[26618]: low disk space (28 MB, limit is 512 MB)
> Dec 27 11:42:37 video vdr[26618]: recording to '/mnt/videodata/Pro_7/2001-12-26.20:05.50.99.rec/039.vdr'
> Dec 27 11:43:02 video vdr[26776]: ERROR: video data stream broken
> Dec 27 11:43:02 video vdr[26776]: initiating emergency exit
> Dec 27 11:43:28 video vdr[26618]: ERROR: /mnt/videodata/Pro_7/2001-12-26.20:05.50.99.rec/039.vdr: No space left on device
> Dec 27 11:43:28 video vdr[26619]: input thread ended (pid=26619)
> Dec 27 11:43:33 video vdr[26776]: ERROR: video data stream broken
> Dec 27 11:43:33 video vdr[26776]: initiating emergency exit
> Dec 27 11:44:04 video vdr[26776]: ERROR: video data stream broken
> Dec 27 11:44:04 video vdr[26776]: initiating emergency exit
> [...]
> Jan  2 21:10:35 video vdr[26776]: ERROR: video data stream broken
> Jan  2 21:10:35 video vdr[26776]: initiating emergency exit
> Jan  2 21:11:06 video vdr[26776]: ERROR: video data stream broken
> Jan  2 21:11:06 video vdr[26776]: initiating emergency exit
> Jan  2 21:11:34 video in.telnetd[28429]: connect from 192.168.1.1 (192.168.1.1)
> Jan  2 21:11:37 video vdr[26776]: ERROR: video data stream broken
> Jan  2 21:11:37 video vdr[26776]: initiating emergency exit
> Jan  2 21:11:43 video su: (to root) nathan on /dev/pts/1
> Jan  2 21:11:43 video PAM-unix2[28440]: session started for user root, service su
> Jan  2 21:12:08 video vdr[26776]: ERROR: video data stream broken
> Jan  2 21:12:08 video vdr[26776]: initiating emergency exit
> Jan  2 21:12:29 video PAM-unix2[25924]: session finished for user vdr, service su
> Jan  2 21:12:32 video lircd-0.6.3[196]: removed client
> 
> This is where I killed vdr (5 days later) :-(
> 
> Any ideas?

Apparently the main program thread got stuck somewhere, presumably in a call
to the OSD functions. In there all signals are switched of, including the
SIGALRM. Carsten Koch recently posted a patch that fixes this:

--- dvbosd.c.orig       Mon Dec 31 18:19:16 2001
+++ dvbosd.c    Mon Dec 31 18:25:47 2001
@@ -347,6 +347,7 @@
      // must block all signals, otherwise the command might not be fully executed
      sigset_t set, oldset;
      sigfillset(&set);
+     sigdelset(&set, SIGALRM);
      sigprocmask(SIG_BLOCK, &set, &oldset);
      ioctl(videoDev, OSD_SEND_CMD, &dc);
      usleep(5000); // XXX Workaround for a driver bug (cInterface::DisplayChannel() displayed
texts at wrong places

Maybe this will prevent such situations.
Klaus
-- 
_______________________________________________________________

Klaus Schmidinger                       Phone: +49-8635-6989-10
CadSoft Computer GmbH                   Fax:   +49-8635-6989-40
Hofmark 2                               Email:   kls@cadsoft.de
D-84568 Pleiskirchen, Germany           URL:     www.cadsoft.de
_______________________________________________________________



Home | Main Index | Thread Index