@cryptotaxi247 / netdata-1 / commits / b53a30ae5

Fix data query on stale chart (#13159)

* Fix data query on stale chart * Remove more checks vs the last timestamp of a point collected

Stelios Fragkakis committed Jun 17, 2022 at 12:28 UTC b53a30ae5380b8af42634df26a78aae7854f350d
1 file changed +3 -44
web/api/queries/query.c
+3 -44
@@ -893,6 +893,8 @@ static RRDR *rrd2rrdr_fixedstep(
893 , struct context_param *context_param_list
894 , int timeout
895 ) {
896 + UNUSED(last_entry_t);
897 +
898 int aligned = !(options & RRDR_OPTION_NOT_ALIGNED);
899 RRDDIM *temp_rd = context_param_list ? context_param_list->rd : NULL;
900
@@ -973,13 +975,6 @@ static RRDR *rrd2rrdr_fixedstep(
975
976 // we align the request on requested_before
977 time_t before_wanted = before_requested;
976 - if(likely(before_wanted > last_entry_t)) {
977 - #ifdef NETDATA_INTERNAL_CHECKS
978 - error("INTERNAL ERROR: rrd2rrdr() on %s, before_wanted is after db max", st->name);
979 - #endif
980 -
981 - before_wanted = last_entry_t - (last_entry_t % ( ((aligned)?group:1) * update_every ));
982 - }
978
979 // we need to estimate the number of points, for having
980 // an integer number of values per point
@@ -1027,23 +1022,9 @@ static RRDR *rrd2rrdr_fixedstep(
1022 if(after_wanted < first_entry_t)
1023 error("INTERNAL CHECK: after_wanted %u is too small, minimum %u", (uint32_t)after_wanted, (uint32_t)first_entry_t);
1024
1030 - if(after_wanted > last_entry_t)
1031 - error("INTERNAL CHECK: after_wanted %u is too big, maximum %u", (uint32_t)after_wanted, (uint32_t)last_entry_t);
1032 -
1025 if(before_wanted < first_entry_t)
1026 error("INTERNAL CHECK: before_wanted %u is too small, minimum %u", (uint32_t)before_wanted, (uint32_t)first_entry_t);
1027
1036 - if(before_wanted > last_entry_t)
1037 - error("INTERNAL CHECK: before_wanted %u is too big, maximum %u", (uint32_t)before_wanted, (uint32_t)last_entry_t);
1038 -
1039 -/*
1040 - if(before_slot >= (size_t)st->entries)
1041 - error("INTERNAL CHECK: before_slot is invalid %zu, expected 0 to %ld", before_slot, st->entries - 1);
1042 -
1043 - if(after_slot >= (size_t)st->entries)
1044 - error("INTERNAL CHECK: after_slot is invalid %zu, expected 0 to %ld", after_slot, st->entries - 1);
1045 -*/
1046 -
1028 if(points_wanted > (before_wanted - after_wanted) / group / update_every + 1)
1029 error("INTERNAL CHECK: points_wanted %ld is more than points %ld", points_wanted, (before_wanted - after_wanted) / group / update_every + 1);
1030
@@ -1278,6 +1259,7 @@ static RRDR *rrd2rrdr_variablestep(
1259 , struct context_param *context_param_list
1260 , int timeout
1261 ) {
1262 + UNUSED(last_entry_t);
1263 int aligned = !(options & RRDR_OPTION_NOT_ALIGNED);
1264
1265 // the duration of the chart
@@ -1360,13 +1342,7 @@ static RRDR *rrd2rrdr_variablestep(
1342
1343 // we align the request on requested_before
1344 time_t before_wanted = before_requested;
1363 - if(likely(before_wanted > last_entry_t)) {
1364 - #ifdef NETDATA_INTERNAL_CHECKS
1365 - error("INTERNAL ERROR: rrd2rrdr() on %s, before_wanted is after db max", st->name);
1366 - #endif
1345
1368 - before_wanted = last_entry_t - (last_entry_t % ( ((aligned)?group:1) * update_every ));
1369 - }
1346 //size_t before_slot = rrdset_time2slot(st, before_wanted);
1347
1348 // we need to estimate the number of points, for having
@@ -1416,23 +1392,9 @@ static RRDR *rrd2rrdr_variablestep(
1392 if(after_wanted < first_entry_t)
1393 error("INTERNAL CHECK: after_wanted %u is too small, minimum %u", (uint32_t)after_wanted, (uint32_t)first_entry_t);
1394
1419 - if(after_wanted > last_entry_t)
1420 - error("INTERNAL CHECK: after_wanted %u is too big, maximum %u", (uint32_t)after_wanted, (uint32_t)last_entry_t);
1421 -
1395 if(before_wanted < first_entry_t)
1396 error("INTERNAL CHECK: before_wanted %u is too small, minimum %u", (uint32_t)before_wanted, (uint32_t)first_entry_t);
1397
1425 - if(before_wanted > last_entry_t)
1426 - error("INTERNAL CHECK: before_wanted %u is too big, maximum %u", (uint32_t)before_wanted, (uint32_t)last_entry_t);
1427 -
1428 -/*
1429 - if(before_slot >= (size_t)st->entries)
1430 - error("INTERNAL CHECK: before_slot is invalid %zu, expected 0 to %ld", before_slot, st->entries - 1);
1431 -
1432 - if(after_slot >= (size_t)st->entries)
1433 - error("INTERNAL CHECK: after_slot is invalid %zu, expected 0 to %ld", after_slot, st->entries - 1);
1434 -*/
1435 -
1398 if(points_wanted > (before_wanted - after_wanted) / group / update_every + 1)
1399 error("INTERNAL CHECK: points_wanted %ld is more than points %ld", points_wanted, (before_wanted - after_wanted) / group / update_every + 1);
1400
@@ -1706,9 +1668,6 @@ RRDR *rrd2rrdr(
1668 else {
1669 if(after_requested < first_entry_t)
1670 after_requested = first_entry_t;
1709 -
1710 - if(before_requested > last_entry_t)
1711 - before_requested = last_entry_t;
1671 }
1672
1673 if(!points_original)