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?
#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
_______________________________________________ vdr mailing list vdr@xxxxxxxxxxx http://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr