summary refs log tree commit diff
diff options
context:
space:
mode:
-rwxr-xr-xflake.nix5
-rw-r--r--modules/software-templates/profilers.nix2
-rw-r--r--private/0001-Hotfix-ignore-rejected-events-in-delayed_events.patch31
3 files changed, 36 insertions, 2 deletions
diff --git a/flake.nix b/flake.nix

index 75d3396..d456021 100755 --- a/flake.nix +++ b/flake.nix
@@ -182,7 +182,10 @@ nixpkgs.overlays = [ (final: prev: { matrix-synapse-unwrapped = inputs.nixpkgs-master.legacyPackages.${pkgs.stdenv.hostPlatform.system}.matrix-synapse-unwrapped.overrideAttrs (old: { - patches = [ ./private/synapse-fast-links.patch ]; + patches = [ + ./private/synapse-fast-links.patch + ./private/0001-Hotfix-ignore-rejected-events-in-delayed_events.patch + ]; #doCheck = false; #checkPhase = ""; }); diff --git a/modules/software-templates/profilers.nix b/modules/software-templates/profilers.nix
index 14e2867..26add36 100644 --- a/modules/software-templates/profilers.nix +++ b/modules/software-templates/profilers.nix
@@ -3,7 +3,7 @@ { environment.systemPackages = with pkgs; [ kdePackages.kcachegrind - linuxKernel.packages.linux_6_11.perf + linuxKernel.packages.linux_6_13.perf hotspot valgrind ]; diff --git a/private/0001-Hotfix-ignore-rejected-events-in-delayed_events.patch b/private/0001-Hotfix-ignore-rejected-events-in-delayed_events.patch new file mode 100644
index 0000000..4347b0b --- /dev/null +++ b/private/0001-Hotfix-ignore-rejected-events-in-delayed_events.patch
@@ -0,0 +1,31 @@ +From 8bd4f70bf79f0353318af10509997df6558f93e5 Mon Sep 17 00:00:00 2001 +From: Rory& <root@rory.gay> +Date: Sun, 20 Apr 2025 00:30:29 +0200 +Subject: [PATCH] Hotfix: ignore rejected events in delayed_events + +--- + synapse/handlers/delayed_events.py | 7 ++++++- + 1 file changed, 6 insertions(+), 1 deletion(-) + +diff --git a/synapse/handlers/delayed_events.py b/synapse/handlers/delayed_events.py +index 80cb1cec9b..cb2a34ff73 100644 +--- a/synapse/handlers/delayed_events.py ++++ b/synapse/handlers/delayed_events.py +@@ -208,8 +208,13 @@ class DelayedEventsHandler: + ) + + event = await self._store.get_event( +- delta.event_id, check_room_id=delta.room_id ++ delta.event_id, check_room_id=delta.room_id, allow_rejected=True, allow_none=True + ) ++ ++ if event is None or event.rejected_reason is not None: ++ # This event has been rejected, so we don't want to cancel any delayed events for it. ++ continue ++ + sender = UserID.from_string(event.sender) + + next_send_ts = await self._store.cancel_delayed_state_events( +-- +2.48.1 +