Accepting request 921053 from network:messaging:matrix
OBS-URL: https://build.opensuse.org/request/show/921053 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/matrix-synapse?expand=0&rev=44
This commit is contained in:
commit
57ffbeb3ae
71
10719-Fix-instert-of-duplicate-key-into-event_json.patch
Normal file
71
10719-Fix-instert-of-duplicate-key-into-event_json.patch
Normal file
@ -0,0 +1,71 @@
|
|||||||
|
From d8917666d6198873bca140c3c511ae230ee698ec Mon Sep 17 00:00:00 2001
|
||||||
|
From: Jan Zerebecki <jan.suse@zerebecki.de>
|
||||||
|
Date: Mon, 30 Aug 2021 17:31:31 +0200
|
||||||
|
Subject: [PATCH] Fix instert of duplicate key into event_json
|
||||||
|
|
||||||
|
When an incoming event id is present in event_json but not in events
|
||||||
|
synapse fails trying to insert it with "psycopg2.errors.UniqueViolation:
|
||||||
|
duplicate key value violates unique constraints", because it is only
|
||||||
|
filtered based on those that are in events.
|
||||||
|
|
||||||
|
I don't know why those become out of sync, but this happening was
|
||||||
|
reported by others before.
|
||||||
|
|
||||||
|
Fix this by using an upsert (which inserts or updates existing records)
|
||||||
|
instead of a normal insert.
|
||||||
|
|
||||||
|
Please verify that this is the safe and correct thing to do before
|
||||||
|
merging this. Verify e.g. that it doesn't allow breaking history
|
||||||
|
integrity or something like it. As I don't know enough to understand
|
||||||
|
what this change entails.
|
||||||
|
|
||||||
|
Fixes: https://github.com/matrix-org/synapse/issues/10718
|
||||||
|
Signed-off-by: Jan Zerebecki <jan.suse@zerebecki.de>
|
||||||
|
---
|
||||||
|
changelog.d/10719.bugfix | 1 +
|
||||||
|
synapse/storage/databases/main/events.py | 22 +++++++++++-----------
|
||||||
|
2 files changed, 12 insertions(+), 11 deletions(-)
|
||||||
|
create mode 100644 changelog.d/10719.bugfix
|
||||||
|
|
||||||
|
diff --git a/changelog.d/10719.bugfix b/changelog.d/10719.bugfix
|
||||||
|
new file mode 100644
|
||||||
|
index 00000000000..d928f74f6bf
|
||||||
|
--- /dev/null
|
||||||
|
+++ b/changelog.d/10719.bugfix
|
||||||
|
@@ -0,0 +1 @@
|
||||||
|
+Fix instert failure because of duplicate key when an incoming event id is present in the table event_json but not in events.
|
||||||
|
diff --git a/synapse/storage/databases/main/events.py b/synapse/storage/databases/main/events.py
|
||||||
|
index 40b53274fb3..830af72d5e6 100644
|
||||||
|
--- a/synapse/storage/databases/main/events.py
|
||||||
|
+++ b/synapse/storage/databases/main/events.py
|
||||||
|
@@ -1334,19 +1334,19 @@ def get_internal_metadata(event):
|
||||||
|
|
||||||
|
return im
|
||||||
|
|
||||||
|
- self.db_pool.simple_insert_many_txn(
|
||||||
|
+ self.db_pool.simple_upsert_many_txn(
|
||||||
|
txn,
|
||||||
|
table="event_json",
|
||||||
|
- values=[
|
||||||
|
- {
|
||||||
|
- "event_id": event.event_id,
|
||||||
|
- "room_id": event.room_id,
|
||||||
|
- "internal_metadata": json_encoder.encode(
|
||||||
|
- get_internal_metadata(event)
|
||||||
|
- ),
|
||||||
|
- "json": json_encoder.encode(event_dict(event)),
|
||||||
|
- "format_version": event.format_version,
|
||||||
|
- }
|
||||||
|
+ key_names=["event_id"],
|
||||||
|
+ key_values=[[event.event_id] for event, _ in events_and_contexts],
|
||||||
|
+ value_names=["room_id", "internal_metadata", "json", "format_version"],
|
||||||
|
+ value_values=[
|
||||||
|
+ [
|
||||||
|
+ event.room_id,
|
||||||
|
+ json_encoder.encode(get_internal_metadata(event)),
|
||||||
|
+ json_encoder.encode(event_dict(event)),
|
||||||
|
+ event.format_version,
|
||||||
|
+ ]
|
||||||
|
for event, _ in events_and_contexts
|
||||||
|
],
|
||||||
|
)
|
4
_service
4
_service
@ -4,11 +4,11 @@
|
|||||||
<param name="versionformat">@PARENT_TAG@</param>
|
<param name="versionformat">@PARENT_TAG@</param>
|
||||||
<param name="url">https://github.com/matrix-org/synapse.git</param>
|
<param name="url">https://github.com/matrix-org/synapse.git</param>
|
||||||
<param name="scm">git</param>
|
<param name="scm">git</param>
|
||||||
<param name="revision">v1.42.0</param>
|
<param name="revision">v1.43.0</param>
|
||||||
<param name="versionrewrite-pattern">v(.*)</param>
|
<param name="versionrewrite-pattern">v(.*)</param>
|
||||||
<param name="versionrewrite-replacement">\1</param>
|
<param name="versionrewrite-replacement">\1</param>
|
||||||
<!--
|
<!--
|
||||||
<param name="revision">v1.43.0rc1</param>
|
<param name="revision">v1.44.0rc1</param>
|
||||||
<param name="versionrewrite-pattern">v([\.\d]+)(rc.*)</param>
|
<param name="versionrewrite-pattern">v([\.\d]+)(rc.*)</param>
|
||||||
<param name="versionrewrite-replacement">\1~\2</param>
|
<param name="versionrewrite-replacement">\1~\2</param>
|
||||||
-->
|
-->
|
||||||
|
@ -1,3 +0,0 @@
|
|||||||
version https://git-lfs.github.com/spec/v1
|
|
||||||
oid sha256:ad96ff729a81bc9db61eb967c4e2c0d53990525e385b29393be956a287157b18
|
|
||||||
size 31079949
|
|
3
matrix-synapse-1.43.0.obscpio
Normal file
3
matrix-synapse-1.43.0.obscpio
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
version https://git-lfs.github.com/spec/v1
|
||||||
|
oid sha256:cd1fe88a1edb6bc48f0b5c185791eda223e87a036f0f40c3510b1254753315ae
|
||||||
|
size 31159821
|
@ -27,7 +27,7 @@
|
|||||||
|
|
||||||
%define pkgname matrix-synapse
|
%define pkgname matrix-synapse
|
||||||
Name: %{pkgname}-test
|
Name: %{pkgname}-test
|
||||||
Version: 1.42.0
|
Version: 1.43.0
|
||||||
Release: 0
|
Release: 0
|
||||||
Summary: Test package for %{pkgname}
|
Summary: Test package for %{pkgname}
|
||||||
License: Apache-2.0
|
License: Apache-2.0
|
||||||
|
@ -1,3 +1,110 @@
|
|||||||
|
-------------------------------------------------------------------
|
||||||
|
Tue Sep 21 13:41:59 UTC 2021 - Marcus Rueckert <mrueckert@suse.de>
|
||||||
|
|
||||||
|
- Update to 1.43.0
|
||||||
|
This release drops support for the deprecated, unstable API for
|
||||||
|
MSC2858, as well as the undocumented experimental.msc2858_enabled
|
||||||
|
config option. Client authors should update their clients to use
|
||||||
|
the stable API, available since Synapse 1.30.
|
||||||
|
|
||||||
|
- Features
|
||||||
|
- Allow room creators to send historical events specified by
|
||||||
|
MSC2716 in existing room versions. (#10566)
|
||||||
|
- Add config option to use non-default manhole password and
|
||||||
|
keys. (#10643)
|
||||||
|
- Skip final GC at shutdown to improve restart performance.
|
||||||
|
(#10712)
|
||||||
|
- Allow configuration of the oEmbed URLs used for URL previews.
|
||||||
|
(#10714, #10759)
|
||||||
|
- Prefer room version 9 for restricted rooms per the room
|
||||||
|
version capabilities API. (#10772)
|
||||||
|
- Bugfixes
|
||||||
|
- Added opentracing logging to help debug #9424. (#10828)
|
||||||
|
- Fix a long-standing bug where room avatars were not included
|
||||||
|
in email notifications. (#10658)
|
||||||
|
- Fix a bug where the ordering algorithm was skipping the
|
||||||
|
origin_server_ts step in the spaces summary resulting in
|
||||||
|
unstable room orderings. (#10730)
|
||||||
|
- Fix edge case when persisting events into a room where there
|
||||||
|
are multiple events we previously hadn't calculated auth
|
||||||
|
chains for (and hadn't marked as needing to be calculated).
|
||||||
|
(#10743)
|
||||||
|
- Fix a bug which prevented calls to /createRoom that included
|
||||||
|
the room_alias_name parameter from being handled by worker
|
||||||
|
processes. (#10757)
|
||||||
|
- Fix a bug which prevented user registration via SSO to
|
||||||
|
require consent tracking for SSO mapping providers that don't
|
||||||
|
prompt for Matrix ID selection. Contributed by @AndrewFerr.
|
||||||
|
(#10733)
|
||||||
|
- Only return the stripped state events for the m.space.child
|
||||||
|
events in a room for the spaces summary from MSC2946.
|
||||||
|
(#10760)
|
||||||
|
- Properly handle room upgrades of spaces. (#10774)
|
||||||
|
- Fix a bug which generated invalid homeserver config when the
|
||||||
|
frontend_proxy worker type was passed to the Synapse
|
||||||
|
Worker-based Complement image. (#10783)
|
||||||
|
- Improved Documentation
|
||||||
|
- Minor fix to the media_repository developer documentation.
|
||||||
|
Contributed by @cuttingedge1109. (#10556)
|
||||||
|
- Update the documentation to note that the /spaces and
|
||||||
|
/hierarchy endpoints can be routed to workers. (#10648)
|
||||||
|
- Clarify admin API documentation on undoing room deletions.
|
||||||
|
(#10735)
|
||||||
|
- Split up the modules documentation and add examples for
|
||||||
|
module developers. (#10758)
|
||||||
|
- Correct 2 typographical errors in the Log Contexts
|
||||||
|
documentation. (#10795)
|
||||||
|
- Fix a wording mistake in the sample configuration.
|
||||||
|
Contributed by @BramvdnHeuvel:nltrix.net. (#10804)
|
||||||
|
- Deprecations and Removals
|
||||||
|
- Remove the unstable MSC2858 API, including the undocumented
|
||||||
|
experimental.msc2858_enabled config option. The unstable API
|
||||||
|
has been deprecated since Synapse 1.35. Client authors should
|
||||||
|
update their clients to use the stable API introduced in
|
||||||
|
Synapse 1.30 if they have not already done so. (#10693)
|
||||||
|
- Internal Changes
|
||||||
|
- Add OpenTracing logging to help debug stuck messages (as
|
||||||
|
described by issue #9424). (#10704)
|
||||||
|
- Add type annotations to the synapse.util package. (#10601)
|
||||||
|
- Ensure rooms.creator field is always populated for easy
|
||||||
|
lookup in MSC2716 usage later. (#10697)
|
||||||
|
- Add missing type hints to REST servlets. (#10707, #10728,
|
||||||
|
#10736)
|
||||||
|
- Do not include rooms with unknown room versions in the spaces
|
||||||
|
summary results. (#10727)
|
||||||
|
- Additional error checking for the preset field when creating
|
||||||
|
a room. (#10738)
|
||||||
|
- Clean up some of the federation event authentication code for
|
||||||
|
clarity. (#10744, #10745, #10746, #10771, #10773, #10781)
|
||||||
|
- Add an index to presence_stream to hopefully speed up
|
||||||
|
startups a little. (#10748)
|
||||||
|
- Refactor event size checking code to simplify searching the
|
||||||
|
codebase for the origins of certain error strings that are
|
||||||
|
occasionally emitted. (#10750)
|
||||||
|
- Move tests relating to rooms having encryption out of the
|
||||||
|
user directory tests. (#10752)
|
||||||
|
- Use attrs internally for the URL preview code & update
|
||||||
|
documentation. (#10753)
|
||||||
|
- Minor speed ups when joining large rooms over federation.
|
||||||
|
(#10754, #10755, #10756, #10780, #10784)
|
||||||
|
- Add a constant for m.federate. (#10775)
|
||||||
|
- Add a script to update the Debian changelog in a Docker
|
||||||
|
container for systems that are not Debian-based. (#10778)
|
||||||
|
- Change the format of authenticated users in logs when a user
|
||||||
|
is being puppeted by and admin user. (#10779)
|
||||||
|
- Remove fixed and flakey tests from the Sytest blacklist.
|
||||||
|
(#10788)
|
||||||
|
- Improve internal details of the user directory code. (#10789)
|
||||||
|
- Use direct references to config flags. (#10798)
|
||||||
|
- Ensure the Rust reporter passes type checking with
|
||||||
|
jaeger-client 4.7's type annotations. (#10799)
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Tue Sep 21 11:34:59 UTC 2021 - Marcus Rueckert <mrueckert@suse.de>
|
||||||
|
|
||||||
|
- disable 10719-Fix-instert-of-duplicate-key-into-event_json.patch
|
||||||
|
until upstream decided if they want to accept it
|
||||||
|
|
||||||
-------------------------------------------------------------------
|
-------------------------------------------------------------------
|
||||||
Tue Sep 7 16:11:58 UTC 2021 - Marcus Rueckert <mrueckert@suse.de>
|
Tue Sep 7 16:11:58 UTC 2021 - Marcus Rueckert <mrueckert@suse.de>
|
||||||
|
|
||||||
@ -97,6 +204,11 @@ Tue Sep 7 16:11:58 UTC 2021 - Marcus Rueckert <mrueckert@suse.de>
|
|||||||
a separate FederationEventHandler. (#10692)
|
a separate FederationEventHandler. (#10692)
|
||||||
- Remove unused compare_digest function. (#10706)
|
- Remove unused compare_digest function. (#10706)
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Thu Sep 2 09:52:14 UTC 2021 - Jan Zerebecki <jan.suse@zerebecki.de>
|
||||||
|
|
||||||
|
- Add 10719-Fix-instert-of-duplicate-key-into-event_json.patch
|
||||||
|
|
||||||
-------------------------------------------------------------------
|
-------------------------------------------------------------------
|
||||||
Tue Aug 31 14:21:51 UTC 2021 - Marcus Rueckert <mrueckert@suse.de>
|
Tue Aug 31 14:21:51 UTC 2021 - Marcus Rueckert <mrueckert@suse.de>
|
||||||
|
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
name: matrix-synapse
|
name: matrix-synapse
|
||||||
version: 1.42.0
|
version: 1.43.0
|
||||||
mtime: 1631029176
|
mtime: 1632223487
|
||||||
commit: e7b78dcc4a6bf8fdb71782640932da8dff7cc5ed
|
commit: 9ffa787eb243c98a6ca1ecd9eac4a6b5dac2bef0
|
||||||
|
|
||||||
|
@ -47,7 +47,7 @@
|
|||||||
%define pkgname matrix-synapse
|
%define pkgname matrix-synapse
|
||||||
%define eggname matrix_synapse
|
%define eggname matrix_synapse
|
||||||
Name: %{pkgname}
|
Name: %{pkgname}
|
||||||
Version: 1.42.0
|
Version: 1.43.0
|
||||||
Release: 0
|
Release: 0
|
||||||
Summary: Matrix protocol reference homeserver
|
Summary: Matrix protocol reference homeserver
|
||||||
License: Apache-2.0
|
License: Apache-2.0
|
||||||
@ -65,6 +65,9 @@ Source51: matrix-synapse-generate-config.sh
|
|||||||
Source99: series
|
Source99: series
|
||||||
Patch: matrix-synapse-1.4.1-paths.patch
|
Patch: matrix-synapse-1.4.1-paths.patch
|
||||||
Patch1: dont-bump-cryptography-with-system-openssl.patch
|
Patch1: dont-bump-cryptography-with-system-openssl.patch
|
||||||
|
# https://github.com/matrix-org/synapse/pull/10719
|
||||||
|
# disable by marking as source until we get a decision upstream
|
||||||
|
Source100: 10719-Fix-instert-of-duplicate-key-into-event_json.patch
|
||||||
BuildRequires: %{use_python}-base >= 3.5
|
BuildRequires: %{use_python}-base >= 3.5
|
||||||
BuildRequires: %{use_python}-setuptools
|
BuildRequires: %{use_python}-setuptools
|
||||||
BuildRequires: fdupes
|
BuildRequires: fdupes
|
||||||
@ -73,7 +76,7 @@ BuildRequires: systemd-rpm-macros
|
|||||||
BuildRequires: sysuser-shadow
|
BuildRequires: sysuser-shadow
|
||||||
BuildRequires: sysuser-tools
|
BuildRequires: sysuser-tools
|
||||||
BuildRequires: unzip
|
BuildRequires: unzip
|
||||||
%{?systemd_requires}
|
%{?systemd_ordering}
|
||||||
%{sysusers_requires}
|
%{sysusers_requires}
|
||||||
%requires_eq %{use_python}-base
|
%requires_eq %{use_python}-base
|
||||||
# NOTE: Keep this is in the same order as synapse/python_dependencie.py.
|
# NOTE: Keep this is in the same order as synapse/python_dependencie.py.
|
||||||
|
Loading…
Reference in New Issue
Block a user