Browse Source

fsck: fix error in reporting row number for timestamp errors

Since we process in chunks, we need to add "start" to the row number;
however, we don't need to use this when accessing data['timestamp']
(aka ts)
tags/nilmdb-2.2.0
Jim Paris 8 months ago
parent
commit
b6bba16505
1 changed files with 7 additions and 5 deletions
  1. +7
    -5
      nilmdb/fsck/fsck.py

+ 7
- 5
nilmdb/fsck/fsck.py View File

@@ -511,18 +511,20 @@ class Fsck(object):
# Verify that all timestamps are in range.
match = (ts < stime) | (ts >= etime)
if match.any():
row = start + numpy.argmax(match)
row = numpy.argmax(match)
raise FsckError("%s: data timestamp %d at row %d "
"outside interval range [%d,%d)",
path, data['timestamp'][row], row,
path, ts[row], row + start,
stime, etime)

# Verify that timestamps are monotonic
match = numpy.diff(ts) <= 0
if match.any():
row = start + numpy.argmax(match)
raise FsckError("%s: non-monotonic timestamp (%d -> %d) "
"at row %d", path, ts[row], ts[row+1], row)
row = numpy.argmax(match)
raise FsckError("%s: non-monotonic timestamp (%d -> %d)"
" at row %d", path, ts[row], ts[row+1],
row + start)

first_ts = ts[0]
if last_ts is not None and first_ts <= last_ts:
raise FsckError("%s: first interval timestamp %d is not "


Loading…
Cancel
Save