This is merely a historical archive of years 2008-2021, before the migration to mailman3.
A maintained and still updated list archive can be found at https://lists.osmocom.org/hyperkitty/list/gerrit-log@lists.osmocom.org/.
Stefan Sperling gerrit-no-reply at lists.osmocom.orgStefan Sperling has uploaded this change for review. ( https://gerrit.osmocom.org/9395 Change subject: log warnings when measurements arrive from the future ...................................................................... log warnings when measurements arrive from the future We have observed problems which look like the monotonic clock going backwards on Jenkins build workers, causing overflow in a time delta calculation. When this happens, log an error and don't process the measurement. Change-Id: I7a3aaba8eba73fad09bebc1f32e832fc25f8eb28 Related: OS#3225 --- M src/gprs_rlcmac_meas.cpp 1 file changed, 25 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-pcu refs/changes/95/9395/1 diff --git a/src/gprs_rlcmac_meas.cpp b/src/gprs_rlcmac_meas.cpp index ac01f2a..056db20 100644 --- a/src/gprs_rlcmac_meas.cpp +++ b/src/gprs_rlcmac_meas.cpp @@ -24,6 +24,7 @@ #include <string.h> #include <errno.h> +#include <inttypes.h> /* * downlink measurement @@ -78,6 +79,14 @@ tbf->meas.rssi_num++; osmo_clock_gettime(CLOCK_MONOTONIC, &now_tv); + if (now_tv.tv_sec < rssi_tv->tv_sec || + (now_tv.tv_sec == rssi_tv->tv_sec && now_tv.tv_nsec < rssi_tv->tv_nsec)) { + LOGP(DRLCMACMEAS, LOGL_ERROR, "Not processing RSSI measurement received from the future; " + "did the monotonic clock jump backwards? (now=%" PRIu64 ".%" PRIu64 " < %" PRIu64 ".%" PRIu64 ")\n", + (uint64_t)now_tv.tv_sec, (uint64_t)now_tv.tv_nsec, + (uint64_t)rssi_tv->tv_sec, (uint64_t)rssi_tv->tv_nsec); + return 0; + } elapsed = ((now_tv.tv_sec - rssi_tv->tv_sec) << 7) + (((now_tv.tv_nsec - rssi_tv->tv_nsec)/1000) << 7) / 1000000; if (elapsed < 128) @@ -130,6 +139,14 @@ tbf->m_bw.dl_loss_lost += lost; osmo_clock_gettime(CLOCK_MONOTONIC, &now_tv); + if (now_tv.tv_sec < loss_tv->tv_sec || + (now_tv.tv_sec == loss_tv->tv_sec && now_tv.tv_nsec < loss_tv->tv_nsec)) { + LOGP(DRLCMACMEAS, LOGL_ERROR, "Not processing lost frames measurement received from the future; " + "did the monotonic clock jump backwards? (now=%" PRIu64 ".%" PRIu64 " < %" PRIu64 ".%" PRIu64 ")\n", + (uint64_t)now_tv.tv_sec, (uint64_t)now_tv.tv_nsec, + (uint64_t)loss_tv->tv_sec, (uint64_t)loss_tv->tv_nsec); + return 0; + } elapsed = ((now_tv.tv_sec - loss_tv->tv_sec) << 7) + (((now_tv.tv_nsec - loss_tv->tv_nsec)/1000) << 7) / 1000000; if (elapsed < 128) @@ -174,6 +191,14 @@ tbf->m_bw.dl_bw_octets += octets; osmo_clock_gettime(CLOCK_MONOTONIC, &now_tv); + if (now_tv.tv_sec < bw_tv->tv_sec || + (now_tv.tv_sec == bw_tv->tv_sec && now_tv.tv_nsec < bw_tv->tv_nsec)) { + LOGP(DRLCMACMEAS, LOGL_ERROR, "Not processing bandwidth measurement received from the future; " + "did the monotonic clock jump backwards? (now=%" PRIu64 ".%" PRIu64 " < %" PRIu64 ".%" PRIu64 ")\n", + (uint64_t)now_tv.tv_sec, (uint64_t)now_tv.tv_nsec, + (uint64_t)bw_tv->tv_sec, (uint64_t)bw_tv->tv_nsec); + return 0; + } elapsed = ((now_tv.tv_sec - bw_tv->tv_sec) << 7) + (((now_tv.tv_nsec - bw_tv->tv_nsec)/1000) << 7) / 1000000; if (elapsed < 128) -- To view, visit https://gerrit.osmocom.org/9395 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I7a3aaba8eba73fad09bebc1f32e832fc25f8eb28 Gerrit-Change-Number: 9395 Gerrit-PatchSet: 1 Gerrit-Owner: Stefan Sperling <ssperling at sysmocom.de> -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.osmocom.org/pipermail/gerrit-log/attachments/20180531/5a6a0082/attachment.htm>