timestamp fix

This commit is contained in:
John Smith 2022-12-10 13:36:26 -05:00
parent 6753fe01a1
commit 572f0f23ed
8 changed files with 13 additions and 13 deletions

@ -1 +1 @@
Subproject commit c153eb3015d6d118e5d467865510d053ddd84533
Subproject commit b127b2d3c653fea163a776dd58b3798f28aeeee3

View File

@ -1346,19 +1346,19 @@ impl NetworkManager {
let ts = get_timestamp();
let ets = envelope.get_timestamp();
if let Some(tsbehind) = tsbehind {
if tsbehind > 0 && (ts > ets && ts - ets > tsbehind) {
if tsbehind > 0 && (ts > ets && ts.saturating_sub(ets) > tsbehind) {
log_net!(debug
"envelope time was too far in the past: {}ms ",
timestamp_to_secs(ts - ets) * 1000f64
timestamp_to_secs(ts.saturating_sub(ets)) * 1000f64
);
return Ok(false);
}
}
if let Some(tsahead) = tsahead {
if tsahead > 0 && (ts < ets && ets - ts > tsahead) {
if tsahead > 0 && (ts < ets && ets.saturating_sub(ts) > tsahead) {
log_net!(debug
"envelope time was too far in the future: {}ms",
timestamp_to_secs(ets - ts) * 1000f64
timestamp_to_secs(ets.saturating_sub(ts)) * 1000f64
);
return Ok(false);
}

View File

@ -30,7 +30,7 @@ impl NetworkManager {
);
// While we're here, lets see if this address has timed out
if cur_ts - stats.last_seen_ts >= IPADDR_MAX_INACTIVE_DURATION_US {
if cur_ts.saturating_sub(stats.last_seen_ts) >= IPADDR_MAX_INACTIVE_DURATION_US {
// it's dead, put it in the dead list
dead_addrs.insert(*addr);
}

View File

@ -721,7 +721,7 @@ impl BucketEntryInner {
self.transfer_stats_accounting.add_down(bytes);
self.peer_stats.rpc_stats.messages_rcvd += 1;
self.peer_stats.rpc_stats.questions_in_flight -= 1;
self.record_latency(recv_ts - send_ts);
self.record_latency(recv_ts.saturating_sub(send_ts));
self.touch_last_seen(recv_ts);
self.peer_stats.rpc_stats.recent_lost_answers = 0;
}

View File

@ -319,7 +319,7 @@ pub trait NodeRefBase: Sized {
self.operate_mut(|rti, e| {
rti.transfer_stats_accounting().add_down(bytes);
rti.latency_stats_accounting()
.record_latency(recv_ts - send_ts);
.record_latency(recv_ts.saturating_sub(send_ts));
e.answer_rcvd(send_ts, recv_ts, bytes);
})
}

View File

@ -1597,7 +1597,7 @@ impl RouteSpecStore {
.remote_private_route_cache
.entry(pr_pubkey)
.and_modify(|rpr| {
if cur_ts - rpr.last_touched_ts >= REMOTE_PRIVATE_ROUTE_CACHE_EXPIRY {
if cur_ts.saturating_sub(rpr.last_touched_ts) >= REMOTE_PRIVATE_ROUTE_CACHE_EXPIRY {
// Start fresh if this had expired
rpr.last_seen_our_node_info_ts = 0;
rpr.last_touched_ts = cur_ts;
@ -1640,7 +1640,7 @@ impl RouteSpecStore {
F: FnOnce(&mut RemotePrivateRouteInfo) -> R,
{
let rpr = inner.cache.remote_private_route_cache.get_mut(key)?;
if cur_ts - rpr.last_touched_ts < REMOTE_PRIVATE_ROUTE_CACHE_EXPIRY {
if cur_ts.saturating_sub(rpr.last_touched_ts) < REMOTE_PRIVATE_ROUTE_CACHE_EXPIRY {
rpr.last_touched_ts = cur_ts;
return Some(f(rpr));
}
@ -1662,7 +1662,7 @@ impl RouteSpecStore {
match inner.cache.remote_private_route_cache.entry(*key) {
hashlink::lru_cache::Entry::Occupied(mut o) => {
let rpr = o.get_mut();
if cur_ts - rpr.last_touched_ts < REMOTE_PRIVATE_ROUTE_CACHE_EXPIRY {
if cur_ts.saturating_sub(rpr.last_touched_ts) < REMOTE_PRIVATE_ROUTE_CACHE_EXPIRY {
return Some(f(rpr));
}
o.remove();

View File

@ -45,7 +45,7 @@ impl TransferStatsAccounting {
cur_ts: u64,
transfer_stats: &mut TransferStatsDownUp,
) {
let dur_ms = (cur_ts - last_ts) / 1000u64;
let dur_ms = cur_ts.saturating_sub(last_ts) / 1000u64;
while self.rolling_transfers.len() >= ROLLING_TRANSFERS_SIZE {
self.rolling_transfers.pop_front();
}

View File

@ -130,7 +130,7 @@ where
//xxx: causes crash (Missing otel data span extensions)
// Span::current().follows_from(span_id);
(ret, end_ts - start_ts)
(ret, end_ts.saturating_sub(start_ts))
}))
}
}