node: A few potential fixes for memory usage
- node: Make sure we bound peer message inboxes
- node: Re-use inventory message timestamps
15 files changed
+376
-182
e8f2f88b
→
6ab3bfcb
modified radicle-node/src/bounded.rs
@@ -1,4 +1,7 @@
| - | |
| + | |
| + | |
| + | |
| + | |
|
|
|
|
|
@@ -155,6 +158,26 @@ impl<T, const N: usize> BoundedVec<T, N> {
|
|
|
|
|
|
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
|
|
|
|
|
modified radicle-node/src/deserializer.rs
@@ -1,6 +1,8 @@
|
|
|
|
|
|
| + | |
| + | |
|
|
|
|
|
@@ -8,43 +10,46 @@ use crate::wire;
|
|
|
|
|
|
| - | |
| - | |
| + | |
| + | |
|
|
|
|
|
|
| - | |
| + | |
|
|
|
|
|
|
|
|
|
|
| - | |
| - | |
| - | |
| + | |
| + | |
| + | |
| + | |
| + | |
|
|
|
|
| - | |
| + | |
|
|
|
|
|
|
| - | |
| + | |
|
|
|
|
|
|
| - | |
| + | |
| + | |
|
|
|
|
|
|
|
|
|
|
| - | |
| - | |
| + | |
| + | |
|
|
|
|
|
|
|
|
| - | |
| + | |
|
|
|
|
|
@@ -67,11 +72,16 @@ impl<D: wire::Decode> Deserializer<D> {
|
|
|
|
|
|
| + | |
| + | |
| + | |
| + | |
| + | |
|
|
|
|
| - | |
| + | |
|
|
| - | |
| + | |
|
|
|
|
|
@@ -81,7 +91,7 @@ impl<D: wire::Decode> io::Write for Deserializer<D> {
|
|
|
|
|
|
| - | |
| + | |
|
|
|
|
|
@@ -101,17 +111,17 @@ mod test {
|
|
|
|
|
|
| - | |
| + | |
|
|
| - | |
| + | |
|
|
|
|
|
|
| - | |
| + | |
|
|
|
|
|
|
| - | |
| + | |
|
|
|
|
|
@@ -119,9 +129,9 @@ mod test {
|
|
|
|
|
|
| - | |
| + | |
|
|
| - | |
| + | |
|
|
|
|
|
@@ -130,7 +140,7 @@ mod test {
|
|
|
|
|
|
| - | |
| + | |
|
|
|
|
|
@@ -138,7 +148,7 @@ mod test {
|
|
|
|
|
|
| - | |
| + | |
|
|
|
|
|
modified radicle-node/src/runtime.rs
@@ -21,9 +21,7 @@ use radicle::node::address::Store as _;
|
|
|
|
|
|
| - | |
| - | |
| - | |
| + | |
|
|
|
|
|
@@ -152,6 +150,7 @@ impl Runtime {
|
|
|
|
|
|
| + | |
|
|
|
|
|
@@ -200,7 +199,7 @@ impl Runtime {
|
|
|
|
|
|
| - | |
| + | |
|
|
|
|
|
@@ -226,7 +225,6 @@ impl Runtime {
|
|
|
|
|
|
| - | |
|
|
|
|
|
modified radicle-node/src/service.rs
@@ -32,7 +32,7 @@ use radicle::node::seed;
|
|
|
|
|
|
| - | |
| + | |
|
|
|
|
|
@@ -380,6 +380,8 @@ pub struct Service<D, S, G> {
|
|
|
|
|
|
| + | |
| + | |
|
|
|
|
|
@@ -431,7 +433,6 @@ where
|
|
|
|
|
|
| - | |
|
|
|
|
|
@@ -442,6 +443,9 @@ where
|
|
|
|
|
|
| + | |
| + | |
| + | |
|
|
|
|
|
@@ -449,6 +453,7 @@ where
|
|
|
|
|
|
| + | |
|
|
|
|
|
@@ -461,9 +466,9 @@ where
|
|
|
|
|
|
| - | |
| + | |
|
|
| - | |
| + | |
|
|
|
|
|
@@ -571,11 +576,17 @@ where
|
|
|
|
|
|
| + | |
|
|
|
|
| + | |
|
|
|
|
| + | |
| + | |
|
|
| + | |
| + | |
|
|
|
|
|
@@ -609,15 +620,16 @@ where
|
|
|
|
|
|
| - | |
| - | |
| + | |
| + | |
| + | |
|
|
|
|
|
|
|
|
|
|
|
|
| - | |
| + | |
|
|
|
|
|
@@ -707,6 +719,7 @@ where
|
|
|
|
|
|
| + | |
|
|
|
|
|
@@ -723,11 +736,7 @@ where
|
|
|
|
|
|
| - | |
| - | |
| - | |
| - | |
| - | |
| + | |
|
|
|
|
|
@@ -852,11 +861,7 @@ where
|
|
|
|
|
|
| - | |
| - | |
| - | |
| - | |
| - | |
| + | |
|
|
|
|
|
@@ -1157,6 +1162,14 @@ where
|
|
|
|
|
|
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
|
|
|
|
|
@@ -1198,14 +1211,6 @@ where
|
|
|
|
|
|
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
|
|
|
|
|
@@ -1452,7 +1457,7 @@ where
|
|
|
|
|
|
| - | |
| + | |
|
|
|
|
|
@@ -1788,18 +1793,8 @@ where
|
|
|
|
|
|
| - | |
|
|
|
|
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
|
|
|
|
|
@@ -1823,7 +1818,7 @@ where
|
|
|
|
|
|
| - | |
| + | |
|
|
|
|
|
@@ -1840,7 +1835,9 @@ where
|
|
|
|
|
|
| - | |
| + | |
| + | |
| + | |
|
|
|
|
|
@@ -2001,11 +1998,7 @@ where
|
|
|
|
|
|
| - | |
| - | |
| - | |
| - | |
| - | |
| + | |
|
|
|
|
|
@@ -2134,16 +2127,15 @@ where
|
|
|
|
|
|
| - | |
| - | |
| - | |
| + | |
| + | |
|
|
|
|
|
|
|
|
|
|
|
|
| - | |
| + | |
|
|
|
|
|
@@ -2201,7 +2193,7 @@ where
|
|
|
|
|
|
| - | |
| + | |
|
|
|
|
|
@@ -2264,6 +2256,25 @@ where
|
|
|
|
|
|
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
|
|
|
|
|
modified radicle-node/src/service/gossip/store.rs
@@ -79,6 +79,11 @@ impl Store for Database {
|
|
|
|
|
|
| + | |
| + | |
| + | |
| + | |
| + | |
|
|
|
|
|
@@ -291,3 +296,40 @@ impl TryFrom<&sql::Value> for GossipType {
|
|
|
|
|
|
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
modified radicle-node/src/service/session.rs
@@ -5,11 +5,14 @@ use crate::node::config::Limits;
|
|
|
|
|
|
| - | |
| + | |
|
|
|
|
|
|
|
|
| + | |
| + | |
| + | |
|
|
|
|
|
@@ -61,7 +64,7 @@ pub struct Session {
|
|
|
|
|
|
| - | |
| + | |
|
|
|
|
|
@@ -120,6 +123,7 @@ impl Session {
|
|
|
|
|
|
| + | |
|
|
|
|
|
@@ -135,6 +139,10 @@ impl Session {
|
|
|
|
|
|
| + | |
| + | |
| + | |
| + | |
|
|
|
|
|
@@ -167,6 +175,22 @@ impl Session {
|
|
|
|
|
|
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
|
|
|
|
|
@@ -204,7 +228,6 @@ impl Session {
|
|
|
|
|
|
| - | |
|
|
|
|
|
@@ -215,6 +238,7 @@ impl Session {
|
|
|
|
|
|
| + | |
|
|
|
|
|
modified radicle-node/src/test/peer.rs
@@ -44,6 +44,7 @@ pub struct Peer<S, G> {
|
|
|
|
|
|
| + | |
|
|
|
|
|
@@ -56,9 +57,7 @@ where
|
|
|
|
|
|
| - | |
| - | |
| - | |
| + | |
|
|
|
|
|
@@ -85,7 +84,7 @@ impl<S, G> DerefMut for Peer<S, G> {
|
|
|
|
|
|
| - | |
| + | |
|
|
|
|
|
@@ -94,7 +93,7 @@ where
|
|
|
|
|
|
| - | |
| + | |
|
|
|
|
|
@@ -167,18 +166,18 @@ where
|
|
|
|
|
|
| + | |
|
|
|
|
|
|
| - | |
| - | |
| - | |
| + | |
| + | |
|
|
| - | |
| + | |
| + | |
|
|
|
|
|
|
| - | |
|
|
|
|
|
@@ -194,25 +193,29 @@ where
|
|
|
|
|
|
| + | |
|
|
|
|
|
|
|
|
|
|
|
|
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
|
|
| - | |
| - | |
| - | |
| - | |
| - | |
| + | |
| + | |
| + | |
|
|
|
|
|
@@ -222,7 +225,7 @@ where
|
|
|
|
|
|
| - | |
| + | |
|
|
|
|
|
@@ -340,7 +343,6 @@ where
|
|
|
|
|
|
| - | |
|
|
|
|
|
@@ -366,7 +368,6 @@ where
|
|
|
|
|
|
| - | |
|
|
|
|
|
modified radicle-node/src/tests.rs
@@ -132,7 +132,7 @@ fn test_redundant_connect() {
|
|
|
|
|
|
| - | |
| + | |
|
|
|
|
|
@@ -233,9 +233,8 @@ fn test_persistent_peer_connect() {
|
|
|
|
|
|
| - | |
| - | |
| - | |
| + | |
| + | |
|
|
|
|
|
@@ -251,15 +250,14 @@ fn test_persistent_peer_connect() {
|
|
|
|
|
|
| - | |
| + | |
|
|
|
|
|
|
| - | |
|
|
|
|
|
|
| - | |
| + | |
|
|
|
|
|
@@ -349,7 +347,8 @@ fn test_inventory_pruning() {
|
|
|
|
|
|
| - | |
| + | |
| + | |
|
|
|
|
|
@@ -359,7 +358,8 @@ fn test_inventory_pruning() {
|
|
|
|
|
|
| - | |
| + | |
| + | |
|
|
|
|
|
@@ -597,14 +597,14 @@ fn test_announcement_relay() {
|
|
|
|
|
|
| - | |
| + | |
|
|
|
|
|
|
|
|
|
|
|
|
| - | |
| + | |
|
|
|
|
|
@@ -647,17 +647,15 @@ fn test_announcement_relay() {
|
|
|
|
|
|
| - | |
| + | |
|
|
|
|
|
|
| - | |
|
|
| - | |
| + | |
|
|
|
|
|
|
| - | |
|
|
|
|
|
@@ -675,6 +673,7 @@ fn test_refs_announcement_relay() {
|
|
|
|
|
|
| + | |
|
|
|
|
|
@@ -724,11 +723,10 @@ fn test_refs_announcement_fetch_trusted_no_inventory() {
|
|
|
|
|
|
| - | |
| + | |
|
|
|
|
|
|
| - | |
|
|
|
|
|
@@ -745,6 +743,7 @@ fn test_refs_announcement_fetch_trusted_no_inventory() {
|
|
|
|
|
|
| + | |
|
|
|
|
|
@@ -861,8 +860,9 @@ fn test_refs_announcement_offline() {
|
|
|
|
|
|
| - | |
| + | |
|
|
| + | |
|
|
|
|
|
@@ -1057,7 +1057,8 @@ fn test_persistent_peer_reconnect_attempt() {
|
|
|
|
|
|
| - | |
| + | |
| + | |
|
|
|
|
|
@@ -1100,12 +1101,7 @@ fn test_persistent_peer_reconnect_attempt() {
|
|
|
|
|
|
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| + | |
|
|
|
|
|
@@ -1117,7 +1113,8 @@ fn test_persistent_peer_reconnect_success() {
|
|
|
|
|
|
| - | |
| + | |
| + | |
|
|
|
|
|
@@ -1568,20 +1565,15 @@ fn test_init_and_seed() {
|
|
|
|
|
|
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| + | |
|
|
|
|
|
|
| - | |
| + | |
|
|
|
|
|
|
| - | |
| + | |
|
|
|
|
|
@@ -1676,24 +1668,9 @@ fn test_init_and_seed() {
|
|
|
|
|
|
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| + | |
| + | |
| + | |
|
|
|
|
|
modified radicle-node/src/wire/message.rs
@@ -564,7 +564,7 @@ mod tests {
|
|
|
|
|
|
| - | |
| + | |
|
|
|
|
|
modified radicle-node/src/wire/protocol.rs
@@ -53,6 +53,9 @@ pub const DEFAULT_CONNECTION_TIMEOUT: time::Duration = time::Duration::from_secs
|
|
|
|
|
|
| + | |
| + | |
| + | |
|
|
|
|
|
@@ -198,7 +201,7 @@ enum Peer {
|
|
|
|
|
|
| - | |
| + | |
|
|
|
|
|
@@ -699,7 +702,13 @@ where
|
|
|
|
|
|
| - | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
|
|
|
|
|
@@ -781,7 +790,7 @@ where
|
|
|
|
|
|
| - | |
| + | |
|
|
|
|
|
@@ -1167,8 +1176,8 @@ mod test {
|
|
|
|
|
|
| - | |
| - | |
| + | |
| + | |
|
|
|
|
|
modified radicle/src/node.rs
@@ -53,7 +53,9 @@ pub const DEFAULT_TIMEOUT: time::Duration = time::Duration::from_secs(30);
|
|
|
|
|
|
| - | |
| + | |
| + | |
| + | |
|
|
|
|
|
@@ -105,6 +107,9 @@ pub enum State {
|
|
|
|
|
|
| + | |
| + | |
| + | |
|
|
|
|
|
@@ -159,8 +164,12 @@ pub struct Penalty(u8);
|
|
|
|
|
|
| - | |
| - | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
|
|
|
|
|
@@ -1260,6 +1269,7 @@ mod test {
|
|
|
|
|
|
| + | |
|
|
|
|
|
modified radicle/src/node/address.rs
@@ -132,6 +132,8 @@ pub struct Node {
|
|
|
|
|
|
| + | |
| + | |
|
|
|
|
|
modified radicle/src/node/address/store.rs
@@ -63,6 +63,9 @@ pub trait Store {
|
|
|
|
|
|
| + | |
| + | |
| + | |
|
|
|
|
|
@@ -80,10 +83,9 @@ pub trait Store {
|
|
|
|
|
|
| - | |
| - | |
| - | |
| - | |
| + | |
| + | |
| + | |
|
|
|
|
|
@@ -93,6 +95,7 @@ impl Store for Database {
|
|
|
|
|
|
| + | |
|
|
|
|
|
@@ -102,12 +105,34 @@ impl Store for Database {
|
|
|
|
|
|
| + | |
|
|
|
|
|
|
|
|
|
|
|
|
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
|
|
|
|
|
@@ -306,17 +331,29 @@ impl Store for Database {
|
|
|
|
|
|
| - | |
| - | |
| - | |
| - | |
| - | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
|
|
| - | |
| - | |
| - | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
|
|
| - | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
|
|
|
|
|
@@ -684,4 +721,46 @@ mod test {
|
|
|
|
|
|
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
|
modified radicle/src/node/timestamp.rs
@@ -8,7 +8,9 @@ use localtime::LocalTime;
|
|
|
|
|
|
| - | |
| + | |
| + | |
| + | |
|
|
|
|
|
modified radicle/src/test/arbitrary.rs
@@ -18,8 +18,8 @@ use crate::identity::{
|
|
|
|
|
|
| - | |
| - | |
| + | |
| + | |
|
|
|
|
|
@@ -303,6 +303,12 @@ impl Arbitrary for Address {
|
|
|
|
|
|
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
|
|
|
|
|