capturing fails, zoneminder does not restart zmc
Posted: Tue Oct 30, 2018 5:47 pm
Hello,
For years I have had situations where a monitor will stop capturing in Zoneminder: when I click on the monitor, I get a white area where the image should be. For reliability and other reasons, all of my monitors are configured to capture individual still images via url to the camara (something like http://192.168.1.115:88/cgi-bin/CGIProx ... d=sekritpw). Though such a camera is not working in Zoneminder any longer, if I bring up that url in my web browser, the camera responds. I think this problem usually occurs when there is some transient communication problem, for example a router is rebooted or something like that.
If I manually kill the zmc process, Zoneminder restarts it and then I can view the monitor fine again in Zoneminder.
If I do a restart of Zoneminder (through the web interface or at operating system level) that of course fixes the problem too.
If I examine the zmc process of a camera in this nonfunctional state, zmc is just in a select() for a while until that times out, and then another select(), continuously.
This arrangement seems very fragile. If communication to a camera is disrupted in a certain way, then Zoneminder just stops getting data and never realizes it and never recovers even when the camera becomes available. Of course we would like to never have any communication problems, but this is not realistic.
The option WATCH_MAX_DELAY seems like it could help, but the zmc process isn't actually hung; the selects keep timing out. The zmc process isn't hung as far as Zoneminder is concerned, it seems, and therefore zmc is never restarted by Zoneminder
What is the best way to deal with monitors that stop capturing and do not ever recover, even though the camera becomes available? I'm on Zoneminder v1.30.4 but I've had this problem over many years on multiple versions.
The related post viewtopic.php?t=26226 does not seem to have a good answer, except perhaps the idea of an external script that looks for events and then manually restarts things.
Thanks
For years I have had situations where a monitor will stop capturing in Zoneminder: when I click on the monitor, I get a white area where the image should be. For reliability and other reasons, all of my monitors are configured to capture individual still images via url to the camara (something like http://192.168.1.115:88/cgi-bin/CGIProx ... d=sekritpw). Though such a camera is not working in Zoneminder any longer, if I bring up that url in my web browser, the camera responds. I think this problem usually occurs when there is some transient communication problem, for example a router is rebooted or something like that.
If I manually kill the zmc process, Zoneminder restarts it and then I can view the monitor fine again in Zoneminder.
If I do a restart of Zoneminder (through the web interface or at operating system level) that of course fixes the problem too.
If I examine the zmc process of a camera in this nonfunctional state, zmc is just in a select() for a while until that times out, and then another select(), continuously.
This arrangement seems very fragile. If communication to a camera is disrupted in a certain way, then Zoneminder just stops getting data and never realizes it and never recovers even when the camera becomes available. Of course we would like to never have any communication problems, but this is not realistic.
The option WATCH_MAX_DELAY seems like it could help, but the zmc process isn't actually hung; the selects keep timing out. The zmc process isn't hung as far as Zoneminder is concerned, it seems, and therefore zmc is never restarted by Zoneminder
What is the best way to deal with monitors that stop capturing and do not ever recover, even though the camera becomes available? I'm on Zoneminder v1.30.4 but I've had this problem over many years on multiple versions.
The related post viewtopic.php?t=26226 does not seem to have a good answer, except perhaps the idea of an external script that looks for events and then manually restarts things.
Thanks