[vdr] Crash while reading channels.conf

Ville Skyttä ville.skytta at iki.fi
Fri Dec 7 18:52:44 CET 2007


Hello,

I've started experiencing some weird crashes right after my VDR box boots.  
The crash occurs when reading channels.conf, but not on every reboot.  VDR 
starts up automatically, and if it starts crashing while reading 
channels.conf, no restarts appear to work, another reboot is needed.  On the 
next reboot, channels.conf is unchanged but the crash may no longer occur.

This is on Fedora 8 i386, VDR 1.4.7 with a bunch of patches and plugins.  
There's only one patch affecting channels.c but I don't see how it could have 
anything to do with the crash.

Backtrace attached; line 752 in my channels.c is
     while ((q = strtok_r(p, ",", &strtok_next)) != NULL) {
(the one for the apids loop)

The channels.conf line in the backtrace is the first one in my channels.conf.  
At bootup, vdradmin-am starts slightly after VDR so I guess it could be 
possible that it's trying to do some SVDRP commands at the same time when 
things go south.

Any clues?
-------------- next part --------------
#0  0x00325e04 in strtok_r () from /lib/libc.so.6
No symbol table info available.
#1  0x0808b4bc in cChannel::Parse (this=0x994d688, 
    s=0x994d228 "TV1;YLE:274000:C0M128:C:6900:512:650=fin:2321:0:17:0:1:0")
    at channels.c:752
	q = 0x994da20 "650=fin"
	strtok_next = 0x994d688 "¸V\021\b"
	p = <value optimized out>
	dpidbuf = 0x0
	NumApids = 0
	parambuf = 0x994d9f0 "C0M128"
	apidbuf = 0x994da20 "650=fin"
	namebuf = 0x994d9e0 "TV1;YLE"
	sourcebuf = 0x994da00 "C"
	vpidbuf = 0x994da10 "512"
	caidbuf = 0x994da30 "0"
	fields = <value optimized out>
	ok = true
#2  0x0808c2c3 in cConfig<cChannel>::Load (this=0x81d4560, 
    FileName=0x994d460 "/etc/vdr/channels.conf", AllowComments=false, 
    MustExist=true) at config.h:122
	l = (cChannel *) 0x994d688
	s = 0x994d228 "TV1;YLE:274000:C0M128:C:6900:512:650=fin:2321:0:17:0:1:0"
	line = 1
	ReadLine = {size = 120, 
  buffer = 0x994d228 "TV1;YLE:274000:C0M128:C:6900:512:650=fin:2321:0:17:0:1:0"}
	f = (FILE *) 0x994ac38
	result = <value optimized out>
#3  0x0808b999 in cChannels::Load (this=0x81d4560, 
    FileName=0x994d460 "/etc/vdr/channels.conf", AllowComments=false, 
    MustExist=true) at channels.c:892
No locals.
#4  0x08107ae8 in main (argc=) at vdr.c:531
	savedTm = {c_iflag = 135351912, c_oflag = 135034472, 
  c_cflag = 135307124, c_lflag = 136130584, c_line = 216 'Ø', c_cc = {177 '±', 
    244 'ô', 191 '¿', 43 '+', 78 'N', 17 '\021', 8 '\b', 0 '\0', 0 '\0', 
    0 '\0', 0 '\0', 120 'x', 49 '1', 29 '\035', 8 '\b', 232 'è', 177 '±', 
    244 'ô', 191 '¿', 193 'Á', 109 'm', 8 '\b', 8 '\b', 0 '\0', 0 '\0', 
    0 '\0', 0 '\0', 0 '\0', 0 '\0', 0 '\0', 0 '\0', 24 '\030'}, 
  c_ispeed = 135351737, c_ospeed = 3020485}
	HasStdin = false
	StartedAsRoot = <value optimized out>
	VdrUser = 0x81a719c "vdr"
	SVDRPport = 2001
	AudioCommand = 0x0
	ConfigDirectory = 0x81a77a7 "/etc/vdr"
	EpgDataFileName = 0x81a7688 "epg.data"
	DisplayHelp = false
	DisplayVersion = false
	DaemonMode = false
	SysLogTarget = 8
	MuteAudio = false
	WatchdogTimeout = 0
	Terminal = 0x0
	Shutdown = 0xbff4bcee "vdr-shutdown.sh"
	UseKbd = false
	LircDevice = 0x81a76ad "/dev/lircd"
	RcuDevice = 0x0
	PluginManager = {_vptr.cPluginManager = 0x819fa58, 
  static pluginManager = 0xbff4b104, directory = 0x992ac60 "/usr/lib/vdr", 
  lastHousekeeping = 1197042263, nextHousekeeping = -1, 
  dlls = {<cList<cDll>> = {<cListBase> = {_vptr.cListBase = 0x819fb20, 
        objects = 0x992ac88, lastObject = 0x992b078, 
        count = 10}, <No data fields>}, <No data fields>}}
	ExitCode = <value optimized out>
	c = <value optimized out>
	LangEnv = <value optimized out>
	Menu = <value optimized out>
	LastChannel = <value optimized out>
	LastTimerChannel = <value optimized out>
	PreviousChannel = {1, 1}
	PreviousChannelIndex = <value optimized out>
	LastChannelChanged = 1197042263
	LastActivity = <value optimized out>
	LastCamMenu = <value optimized out>
	MaxLatencyTime = <value optimized out>
	ForceShutdown = <value optimized out>
	UserShutdown = <value optimized out>
	InhibitEpgScan = <value optimized out>
	IsInfoMenu = <value optimized out>
	CurrentSkin = <value optimized out>
	long_options = {{name = 0x8188c57 "audio", has_arg = 1, flag = 0x0, 
    val = 97}, {name = 0x81a7936 "config", has_arg = 1, flag = 0x0, val = 99}, 
  {name = 0x81a793d "daemon", has_arg = 0, flag = 0x0, val = 100}, {
    name = 0x81a7944 "device", has_arg = 1, flag = 0x0, val = 68}, {
    name = 0x81a794b "epgfile", has_arg = 1, flag = 0x0, val = 69}, {
    name = 0x81a7953 "grab", has_arg = 1, flag = 0x0, val = 103}, {
    name = 0x81a7958 "help", has_arg = 0, flag = 0x0, val = 104}, {
    name = 0x81a795d "lib", has_arg = 1, flag = 0x0, val = 76}, {
    name = 0x81a7961 "lirc", has_arg = 2, flag = 0x0, val = 364}, {
    name = 0x81a7966 "log", has_arg = 1, flag = 0x0, val = 108}, {
    name = 0x81a44f5 "mute", has_arg = 0, flag = 0x0, val = 109}, {
    name = 0x81a796a "no-kbd", has_arg = 0, flag = 0x0, val = 366}, {
    name = 0x81a7971 "plugin", has_arg = 1, flag = 0x0, val = 80}, {
    name = 0x81a7978 "port", has_arg = 1, flag = 0x0, val = 112}, {
    name = 0x81a797d "rcu", has_arg = 2, flag = 0x0, val = 370}, {
    name = 0x81a7981 "record", has_arg = 1, flag = 0x0, val = 114}, {
    name = 0x81a7988 "shutdown", has_arg = 1, flag = 0x0, val = 115}, {
    name = 0x81a7991 "terminal", has_arg = 1, flag = 0x0, val = 116}, {
    name = 0x81a799a "user", has_arg = 1, flag = 0x0, val = 117}, {
    name = 0x8183f11 "version", has_arg = 0, flag = 0x0, val = 86}, {
    name = 0x81a799f "vfat", has_arg = 0, flag = 0x0, val = 374}, {
    name = 0x8187fd5 "video", has_arg = 1, flag = 0x0, val = 118}, {
    name = 0x81a79a4 "watchdog", has_arg = 1, flag = 0x0, val = 119}, {
    name = 0x0, has_arg = 0, flag = 0x0, val = 0}}
	lastTime = 0
	ChannelSaveTimeout = 0
	TimerState = 0
	LastTimerCheck = 0
	DeviceUsed = {0 <repeats 16 times>}
(gdb) quit


More information about the vdr mailing list