diff options
author | Kegsay <kegan@matrix.org> | 2021-04-14 11:11:54 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-04-14 11:11:54 +0100 |
commit | 656d11ec9005b5cc47e495229e924df5085065e0 (patch) | |
tree | 96e05a80d8a855dedc43dfc2eb9085cfb86352c6 | |
parent | 653e30619cebdc6b0f234a5ab872abddfd311656 (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.go | 2 | ||||
-rw-r--r-- | federationsender/storage/sqlite3/joined_hosts_table.go | 2 |
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 = "" + |