From 484cf0220cca07cea1863d0e20d44827683da901 Mon Sep 17 00:00:00 2001 From: cloudhead Date: Thu, 13 Jun 2024 21:38:30 +0200 Subject: [PATCH] node: Don't panic if we can't decode announcements Bubble up the error instead. Also, as part of the migration, delete existing announcements that won't decode properly. --- radicle-node/src/service/gossip/store.rs | 6 +++--- radicle/src/node/db/migrations/6.sql | 2 ++ 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/radicle-node/src/service/gossip/store.rs b/radicle-node/src/service/gossip/store.rs index 507e8341..9ae6dad8 100644 --- a/radicle-node/src/service/gossip/store.rs +++ b/radicle-node/src/service/gossip/store.rs @@ -363,15 +363,15 @@ mod parse { let gt = row.read::("type"); let message = match gt { GossipType::Refs => { - let ann = row.read::("message"); + let ann = row.try_read::("message")?; AnnouncementMessage::Refs(ann) } GossipType::Inventory => { - let ann = row.read::("message"); + let ann = row.try_read::("message")?; AnnouncementMessage::Inventory(ann) } GossipType::Node => { - let ann = row.read::("message"); + let ann = row.try_read::("message")?; AnnouncementMessage::Node(ann) } }; diff --git a/radicle/src/node/db/migrations/6.sql b/radicle/src/node/db/migrations/6.sql index 36aee208..86df381b 100644 --- a/radicle/src/node/db/migrations/6.sql +++ b/radicle/src/node/db/migrations/6.sql @@ -1,3 +1,5 @@ -- Add the version and user-agent columns. alter table "nodes" add column "version" integer not null default 1; alter table "nodes" add column "agent" text not null default "/radicle/"; +-- Delete all cached announcements, since they no longer match our format. +delete from "announcements";