Compare commits

..

2 Commits

Author SHA1 Message Date
b6bba16505 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)
2020-08-18 00:31:40 -04:00
d4003d0d34 tests: fill out coverage for new fsck features 2020-08-17 23:27:32 -04:00
8 changed files with 7 additions and 5 deletions

View File

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

View File

Binary file not shown.

View File

Binary file not shown.

View File

View File

Binary file not shown.

View File

Binary file not shown.

View File

Binary file not shown.

View File