diff --git a/daqingest/src/tools.rs b/daqingest/src/tools.rs
index b6b21dc..ffceaa4 100644
--- a/daqingest/src/tools.rs
+++ b/daqingest/src/tools.rs
@@ -100,7 +100,7 @@ async fn remove_older_series(
}
pub async fn find_older_msp(
- backend: String,
+ _backend: String,
params: FindOlder,
pgconf: &Database,
scyconf: &ScyllaIngestConfig,
diff --git a/netfetch/src/ca/conn.rs b/netfetch/src/ca/conn.rs
index 89cf10b..f35cb86 100644
--- a/netfetch/src/ca/conn.rs
+++ b/netfetch/src/ca/conn.rs
@@ -1,6 +1,7 @@
use super::proto;
use super::proto::CaEventValue;
use super::proto::ReadNotify;
+use crate::ca::proto::ChannelClose;
use crate::ca::proto::EventCancel;
use crate::conf::ChannelConfig;
use crate::senderpolling::SenderPolling;
@@ -34,6 +35,7 @@ use scywr::iteminsertqueue as scywriiq;
use scywr::iteminsertqueue::Accounting;
use scywr::iteminsertqueue::DataValue;
use scywr::iteminsertqueue::QueryItem;
+use scywr::iteminsertqueue::ShutdownReason;
use scywriiq::ChannelStatus;
use scywriiq::ChannelStatusClosedReason;
use scywriiq::ChannelStatusItem;
@@ -70,6 +72,8 @@ use tokio::net::TcpStream;
const CONNECTING_TIMEOUT: Duration = Duration::from_millis(6000);
const IOC_PING_IVL: Duration = Duration::from_millis(80000);
const DO_RATE_CHECK: bool = false;
+const MONITOR_POLL_TIMEOUT: Duration = Duration::from_millis(3000);
+const TIMEOUT_CHANNEL_CLOSING: Duration = Duration::from_millis(3000);
#[allow(unused)]
macro_rules! trace2 {
@@ -116,6 +120,7 @@ pub enum Error {
NoProgressNoPending,
ShutdownWithQueuesNoProgressNoPending,
Error,
+ DurationOutOfBounds,
}
impl err::ToErr for Error {
@@ -170,13 +175,17 @@ mod ser_instant {
let tsnow = Instant::now();
let t1 = if tsnow >= *val {
let dur = tsnow.duration_since(*val);
- let dur2 = chrono::Duration::seconds(dur.as_secs() as i64)
+ let dur2 = chrono::Duration::try_seconds(dur.as_secs() as i64)
+ .ok_or(Error::DurationOutOfBounds)
+ .unwrap()
.checked_add(&chrono::Duration::microseconds(dur.subsec_micros() as i64))
.unwrap();
now.checked_sub_signed(dur2).unwrap()
} else {
let dur = (*val).duration_since(tsnow);
- let dur2 = chrono::Duration::seconds(dur.as_secs() as i64)
+ let dur2 = chrono::Duration::try_seconds(dur.as_secs() as i64)
+ .ok_or(Error::DurationOutOfBounds)
+ .unwrap()
.checked_sub(&chrono::Duration::microseconds(dur.subsec_micros() as i64))
.unwrap();
now.checked_add_signed(dur2).unwrap()
@@ -190,7 +199,7 @@ mod ser_instant {
}
}
- pub fn deserialize<'de, D>(de: D) -> Result