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
+
|