1 files changed, 13 insertions, 0 deletions
diff --git a/synapse/handlers/message.py b/synapse/handlers/message.py
index abfa8c65a4..3eca46df86 100644
--- a/synapse/handlers/message.py
+++ b/synapse/handlers/message.py
@@ -34,6 +34,7 @@ from ._base import BaseHandler
from canonicaljson import encode_canonical_json
import logging
+import random
logger = logging.getLogger(__name__)
@@ -415,6 +416,18 @@ class MessageHandler(BaseHandler):
builder.room_id,
)
+ # We want to limit the max number of prev events we point to in our
+ # new event
+ if len(latest_ret) > 10:
+ # Sort by reverse depth, so we point to the most recent.
+ latest_ret.sort(key=lambda a: -a[2])
+ new_latest_ret = latest_ret[:5]
+
+ # We also randomly point to some of the older events, to make
+ # sure that we don't completely ignore the older events.
+ new_latest_ret.extend(random.sample(latest_ret, 5))
+ latest_ret = new_latest_ret
+
if latest_ret:
depth = max([d for _, _, d in latest_ret]) + 1
else:
|