aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKegsay <kegan@matrix.org>2021-04-14 11:11:54 +0100
committerGitHub <noreply@github.com>2021-04-14 11:11:54 +0100
commit656d11ec9005b5cc47e495229e924df5085065e0 (patch)
tree96e05a80d8a855dedc43dfc2eb9085cfb86352c6
parent653e30619cebdc6b0f234a5ab872abddfd311656 (diff)
fedsender: tolerate dupe membership events (#1824)
* fedsender: tolerate dupe membership events Previously if the fedsender got a duplicate membership event it would cause the entire process to crash. Now it doesn't. This masks an issue with the roomserver where it can emit duplicate membership events. * Update joined_hosts_table.go
-rw-r--r--federationsender/storage/postgres/joined_hosts_table.go2
-rw-r--r--federationsender/storage/sqlite3/joined_hosts_table.go2
2 files changed, 2 insertions, 2 deletions
diff --git a/federationsender/storage/postgres/joined_hosts_table.go b/federationsender/storage/postgres/joined_hosts_table.go
index 0bc9335d..0c1e91ee 100644
--- a/federationsender/storage/postgres/joined_hosts_table.go
+++ b/federationsender/storage/postgres/joined_hosts_table.go
@@ -48,7 +48,7 @@ CREATE INDEX IF NOT EXISTS federatonsender_joined_hosts_room_id_idx
const insertJoinedHostsSQL = "" +
"INSERT INTO federationsender_joined_hosts (room_id, event_id, server_name)" +
- " VALUES ($1, $2, $3)"
+ " VALUES ($1, $2, $3) ON CONFLICT DO NOTHING"
const deleteJoinedHostsSQL = "" +
"DELETE FROM federationsender_joined_hosts WHERE event_id = ANY($1)"
diff --git a/federationsender/storage/sqlite3/joined_hosts_table.go b/federationsender/storage/sqlite3/joined_hosts_table.go
index 1f906808..4c0c1f51 100644
--- a/federationsender/storage/sqlite3/joined_hosts_table.go
+++ b/federationsender/storage/sqlite3/joined_hosts_table.go
@@ -47,7 +47,7 @@ CREATE INDEX IF NOT EXISTS federatonsender_joined_hosts_room_id_idx
`
const insertJoinedHostsSQL = "" +
- "INSERT INTO federationsender_joined_hosts (room_id, event_id, server_name)" +
+ "INSERT OR IGNORE INTO federationsender_joined_hosts (room_id, event_id, server_name)" +
" VALUES ($1, $2, $3)"
const deleteJoinedHostsSQL = "" +