From 6b3aa7d23e75ef110790d013f58caf2b01a18b77 Mon Sep 17 00:00:00 2001
From: Bradley Olson <34992650+BradleyOlson64@users.noreply.github.com>
Date: Fri, 8 Sep 2023 15:28:07 -0700
Subject: [PATCH] Handle `CollationSeconded` Logs Conditionally (#1475)

* Removing unnecessary log

* Drop unneeded log

* Handling logs conditionally

* Changing unexpected message to warn

* Back to debug

* fmt
---
 .../src/collator_side/mod.rs                  | 40 +++++++++++++++----
 1 file changed, 33 insertions(+), 7 deletions(-)

diff --git a/polkadot/node/network/collator-protocol/src/collator_side/mod.rs b/polkadot/node/network/collator-protocol/src/collator_side/mod.rs
index 96978f39a53..ad2ab99568c 100644
--- a/polkadot/node/network/collator-protocol/src/collator_side/mod.rs
+++ b/polkadot/node/network/collator-protocol/src/collator_side/mod.rs
@@ -926,16 +926,42 @@ async fn handle_incoming_peer_message<Context>(
 						target: LOG_TARGET,
 						?statement,
 						?origin,
-						"received a valid `CollationSeconded`",
+						"received a valid `CollationSeconded`, forwarding result to collator",
 					);
 					let _ = sender.send(CollationSecondedSignal { statement, relay_parent });
 				} else {
-					gum::debug!(
-						target: LOG_TARGET,
-						candidate_hash = ?&statement.payload().candidate_hash(),
-						?origin,
-						"received an unexpected `CollationSeconded`: unknown statement",
-					);
+					// Checking whether the `CollationSeconded` statement is unexpected
+					let relay_parent = match state.per_relay_parent.get(&relay_parent) {
+						Some(per_relay_parent) => per_relay_parent,
+						None => {
+							gum::debug!(
+								target: LOG_TARGET,
+								candidate_relay_parent = %relay_parent,
+								candidate_hash = ?&statement.payload().candidate_hash(),
+								"Seconded statement relay parent is out of our view",
+							);
+							return Ok(())
+						},
+					};
+					match relay_parent.collations.get(&statement.payload().candidate_hash()) {
+						Some(_) => {
+							// We've seen this collation before, so a seconded statement is expected
+							gum::trace!(
+								target: LOG_TARGET,
+								?statement,
+								?origin,
+								"received a valid `CollationSeconded`",
+							);
+						},
+						None => {
+							gum::debug!(
+								target: LOG_TARGET,
+								candidate_hash = ?&statement.payload().candidate_hash(),
+								?origin,
+								"received an unexpected `CollationSeconded`: unknown statement",
+							);
+						},
+					}
 				}
 			}
 		},
-- 
GitLab