[vdr] Shutdown - vdr not cleaning up

Tobias Grimm listaccount at e-tobi.net
Sun Jun 4 13:19:28 CEST 2006


Hi!

Hanno Mueller figured out a problem with the VDR Debian package, causing
the ALCD plugin to not turn off the display, when the system shuts down.
The first obvious problem seemed to be, that the shutdown command passed
to vdr did not return immediately. So I changed this to be started
detached in the background.

But there seems to be still a problem around. If I send SIGTERM to the
vdr process manually, everything works fine. It cleans up, stops and
destroys all plugins. But if I run "shutdown -h now" (which also sends
SIGTERM to vdr and all other processes), the plugins destructors never
get called. I've added a log message to every line in the exit code and
you can see what I got at the end of this mail.

To be sure, vdr doesn't get killed, because it takes too long to shut
down gracefully, I also tried "telinit -t 120 0" which switches to
runlevel 0 but gives processes 120 seconds to shutdown before sending
SIGKILL. Same result - VDR does not fully clean up on exit.

Unfortunately, the problem only appears, when switching to runlevel 0.
Everything I tried to shutdown VDR without shutting down the whole
system seems to work just fine. So there seems to be no way to inspect
this in a debugger.

Any ideas, why vdr doesn't shut down gracefully, when shutting down the
system?

Regards,

Tobias

Only vdr killed manually with killall vdr (I've added ctor/dtor messages
to the podcatcher plugin, the messages after cSchedule::Cleanup(true)
are skipped). This is how it is supposed to work.

12:26:12 vdr: [5642] ecmhandler 0 filter thread ended (pid=5642, tid=5642)
12:26:13 vdr: [5346] caught signal 15
12:26:13 vdr: [5346] PluginManager.StopPlugins()
12:26:13 vdr: [5346] stopping plugin: dvd
12:26:13 vdr: [5346] stopping plugin: trayopen
12:26:13 vdr: [5346] stopping plugin: podcatcher
12:26:13 vdr: [5346] stop() start
12:26:14 vdr: [5346] stop() end
12:26:14 vdr: [5346] stopping plugin: mp3
12:26:14 vdr: [5346] stopping plugin: radio
12:26:15 vdr: [5346] ERROR: radiocheck thread 5637 won't end (waited 1
seconds) - canceling it...
12:26:15 vdr: [5346] stopping plugin: dvdselect
12:26:15 vdr: [5644] logger 0 filter thread ended (pid=5644, tid=5644)
12:26:15 vdr: [5643] logger stats thread ended (pid=5643, tid=5643)
12:26:15 vdr: [5346] stopping plugin: burn
12:26:15 vdr: [5346] stopping plugin: extrecmenu
12:26:15 vdr: [5346] stopping plugin: skinsoppalusikka
12:26:15 vdr: [5346] cRecordControls::Shutdown()
12:26:15 vdr: [5346] cCutter::Stop()
12:26:15 vdr: [5346] delete Menu
12:26:15 vdr: [5346] cControl::Shutdown()
12:26:15 vdr: [5346] delete Interface
12:26:15 vdr: [5346] cOsdProvider::Shutdown()
12:26:15 vdr: [5346] Remotes.Clear()
12:26:15 lircd 0.7.1pre2[5160]: removed client
12:26:15 vdr: [5641] KBD remote control thread ended (pid=5641, tid=5641)
12:26:15 vdr: [5346] Audios.Clear()
12:26:15 vdr: [5346] delete RadioAudio
12:26:15 vdr: [5346] Skins.Clear()
12:26:15 vdr: [5346] Setup.CurrentChannel = cDevice::CurrentChannel()
12:26:15 vdr: [5346] Setup.CurrentVolume  = cDevice::CurrentVolume()
12:26:15 vdr: [5346] Setup.Save()
12:26:15 vdr: [5346] saved setup to /var/lib/vdr/setup.conf
12:26:15 vdr: [5346] cDevice::Shutdown()
12:26:15 vdr: [5625] tuner on device 1 thread ended (pid=5625, tid=5625)
12:26:15 vdr: [5626] section handler thread ended (pid=5626, tid=5626)
12:26:15 vdr: [5628] tuner on device 2 thread ended (pid=5628, tid=5628)
12:26:15 vdr: [5629] section handler thread ended (pid=5629, tid=5629)
12:26:15 vdr: [5346] PluginManager.Shutdown(true)
12:26:15 vdr: [5346] deleting plugin: dvd
12:26:15 vdr: [5346] deleting plugin: trayopen
12:26:15 vdr: [5639] CDROM watch thread ended
12:26:15 vdr: [5639] cd drive watch thread thread ended (pid=5639, tid=5639)
12:26:15 vdr: [5346] deleting plugin: podcatcher
12:26:15 vdr: [5346] dtor() start
12:26:16 vdr: [5346] dtor() end
12:26:16 vdr: [5346] deleting plugin: mp3
12:26:16 vdr: [5346] deleting plugin: radio
12:26:16 vdr: [5346] deleting plugin: dvdselect
12:26:16 vdr: [5346] ln -nfs '/dev/dvd' '/var/cache/vdr/dvd' 2> /dev/null
12:26:16 vdr: [5346] deleting plugin: burn
12:26:16 vdr: [5346] deleting plugin: extrecmenu
12:26:16 vdr: [5346] deleting plugin: skinsoppalusikka
12:26:16 vdr: [5346] cSchedules::Cleanup(true)
...


And this is what happens, when I shutdown the system with "shutdown -h
now" from a console (not from within vdr):


12:36:04 shutdown[5654]: shutting down for system halt
12:36:05 init: Switching to runlevel: 0
12:36:10 lircd 0.7.1pre2[5164]: caught signal
12:36:10 vdr: [5570] ERROR: lircd connection broken, trying to reconnect
every 3.0 seconds
12:36:10 mysqld[5092]: 060604 12:36:10 [Note] /usr/sbin/mysqld: Normal
shutdown
12:36:10 mysqld[5092]:
12:36:10 mysqld[5092]: 060604 12:36:10  InnoDB: Starting shutdown...
12:36:12 mysqld[5092]: 060604 12:36:12  InnoDB: Shutdown completed; log
sequence number 0 48986
12:36:12 mysqld[5092]: 060604 12:36:12 [Note] /usr/sbin/mysqld: Shutdown
complete
12:36:12 mysqld[5092]:
12:36:12 mysqld_safe[5840]: ended
12:36:13 vdr: [5570] ERROR: /dev/lircd: Connection refused
12:36:13 lircd 0.7.1pre2[5874]: lircd(any) ready
12:36:16 vdr: [5570] reconnected to lircd
12:36:16 lircd 0.7.1pre2[5874]: accepted new client on /dev/lircd
12:36:16 vdr: [5572] ecmhandler 0 filter thread ended (pid=5572, tid=5572)
12:36:16 vdr: [5574] logger 0 filter thread ended (pid=5574, tid=5574)
12:36:17 vdr: [5383] caught signal 15
12:36:17 vdr: [5383] PluginManager.StopPlugins()
12:36:17 vdr: [5383] stopping plugin: dvd
12:36:17 vdr: [5383] stopping plugin: trayopen
12:36:17 vdr: [5383] stopping plugin: podcatcher
12:36:17 vdr: [5383] stop() start
12:36:18 vdr: [5383] stop() end
12:36:18 vdr: [5383] stopping plugin: mp3
12:36:18 vdr: [5383] stopping plugin: radio
12:36:19 vdr: [5383] ERROR: radiocheck thread 5554 won't end (waited 1
seconds) - canceling it...
12:36:19 vdr: [5383] stopping plugin: dvdselect
12:36:19 vdr: [5573] logger stats thread ended (pid=5573, tid=5573)
12:36:19 vdr: [5383] stopping plugin: burn
12:36:19 vdr: [5383] stopping plugin: extrecmenu
12:36:19 vdr: [5383] stopping plugin: skinsoppalusikka
12:36:19 vdr: [5383] cRecordControls::Shutdown()
12:36:19 vdr: [5383] cCutter::Stop()
12:36:19 vdr: [5383] delete Menu
12:36:19 vdr: [5383] cControl::Shutdown()
12:36:19 vdr: [5383] delete Interface
12:36:19 vdr: [5383] cOsdProvider::Shutdown()
12:36:19 vdr: [5383] Remotes.Clear()
12:36:19 lircd 0.7.1pre2[5874]: removed client
12:36:21 ntpd[5509]: ntpd exiting on signal 15
12:36:21 exiting on signal 15




More information about the vdr mailing list