mirror of
https://github.com/ZoneMinder/zoneminder.git
synced 2026-06-01 10:25:57 -04:00
Perl's != / == coerces both sides to NV (double-precision float). BIGINT DiskSpace columns can exceed 2^53 (~9 PB), at which point distinct integers collapse to the same double. The "already correct, skip" checks for both the Event_Summaries CAS loop and the Storage CAS loop were comparing scalars with numeric operators, so two distinct DiskSpace values above 2^53 could be treated as equal and the resync skipped — and skipped again on every subsequent pass because the collapse is deterministic, so drift would persist indefinitely. Switch both checks to string equality. DBI binds these scalars as strings anyway, so this matches what the database will compare against when the WHERE clause runs.