diff --git a/wally/data_selectors.py b/wally/data_selectors.py
index 1950e95..d9eedfa 100644
--- a/wally/data_selectors.py
+++ b/wally/data_selectors.py
@@ -59,7 +59,7 @@
     res = None
     res_times = None
 
-    for ts in tss_inp:
+    for ts, ts_orig in zip(tss_inp, tss):
         if ts.time_units != 's':
             msg = "time_units must be 's' for fio sensor"
             logger.error(msg)
@@ -77,8 +77,12 @@
             logger.error(msg)
             raise ValueError(msg)
 
-        assert trange[0] >= ts.times[0] and trange[1] <= ts.times[-1], \
-            "[{}, {}] not in [{}, {}]".format(ts.times[0], ts.times[-1], trange[0], trange[-1])
+        try:
+            assert trange[0] >= ts.times[0] and trange[1] <= ts.times[-1], \
+                "[{}, {}] not in [{}, {}]".format(ts.times[0], ts.times[-1], trange[0], trange[-1])
+        except AssertionError:
+            import IPython
+            IPython.embed()
 
         idx1, idx2 = numpy.searchsorted(ts.times, trange)
         idx2 += 1
diff --git a/wally/suits/itest.py b/wally/suits/itest.py
index a997b02..26fd252 100644
--- a/wally/suits/itest.py
+++ b/wally/suits/itest.py
@@ -2,11 +2,12 @@
 import time
 import logging
 import os.path
-from typing import Any, List, Optional, Callable, Iterable, cast, Tuple
+from typing import Any, List, Optional, Callable, Iterable, cast
 
 from concurrent.futures import ThreadPoolExecutor, wait
 
 from cephlib.node import IRPCNode
+from cephlib.units import unit_conversion_coef_f
 
 from ..utils import StopTestError, get_time_interval_printable_info
 from ..result_classes import SuiteConfig, JobConfig, TimeSeries, IWallyStorage
@@ -173,7 +174,8 @@
                                        self.name, job.summary,
                                        max_start_time - min_start_time, self.max_time_diff)
 
-                    job.reliable_info_range = (int(max_start_time), int(min_stop_time))
+                    one_s = int(unit_conversion_coef_f('s', results[0].time_units))
+                    job.reliable_info_range = (int(max_start_time) + one_s, int(min_stop_time) - one_s)
 
                 self.storage.put_job(self.suite, job)
                 self.storage.sync()
