These are coming from zm_eventstream.cpp:701 so I looked at the source code to see where it's getting this path, and why on Earth it is looking at an event from last August! I found filepath is set on line 654 using an snprintf. This code is in the sendFrame method. Why is it sending a frame from this old video when nobody is watching any old files? Great question. I don't know.Can't open /var/cache/zoneminder/events/3/2019-08-18/17936/00005-capture.jpg: No such file or directory
The "event_data->path" seems to be set on line 209 in loadEventData(). Again, I don't know what we're loading event data, but I see storage_path comes from storage->Path(). When I've seen this convention before, it's mapped directly to database tables, so I decided to look there:
Code: Select all
mysql> SELECT Id, Path, Type, Scheme FROM Storage;
+----+-------+-------+--------+
| Id | Path | Type | Scheme |
+----+-------+-------+--------+
| 2 | /cctv | local | Medium |
+----+-------+-------+--------+
1 row in set (0.00 sec)
mysql> SELECT DISTINCT StorageId FROM Events;
+-----------+
| StorageId |
+-----------+
| 2 |
+-----------+
1 row in set (0.00 sec)
mysql> SELECT * FROM Events WHERE Id = 17936;
Empty set (0.00 sec)
Code: Select all
mysql> SELECT ArchivedEventDiskSpace FROM Monitors;
+------------------------+
| ArchivedEventDiskSpace |
+------------------------+
| 0 |
| 0 |
| 97254167 |
| 91738712 |
+------------------------+
4 rows in set (0.00 sec)
This is where my trail ends. I'm really not sure where to go from here. If anyone can tell me what I can troubleshoot next in order to track this down, I'd be very appreciative. I'm running v1.34.15.