From 24f07a83e604a7ee93214ef0bf7d7c56a14a534d Mon Sep 17 00:00:00 2001
From: Erik Johnston <erik@matrix.org>
Date: Thu, 6 May 2021 14:06:06 +0100
Subject: [PATCH] Pin attrs to <21.1.0 (#9937)

Fixes #9936
---
 changelog.d/9937.bugfix        | 1 +
 synapse/python_dependencies.py | 3 ++-
 2 files changed, 3 insertions(+), 1 deletion(-)
 create mode 100644 changelog.d/9937.bugfix

diff --git a/changelog.d/9937.bugfix b/changelog.d/9937.bugfix
new file mode 100644
index 0000000000..c1cc5ccb43
--- /dev/null
+++ b/changelog.d/9937.bugfix
@@ -0,0 +1 @@
+Fix bug where `/sync` would break if using the latest version of `attrs` dependency, by pinning to a previous version.
diff --git a/synapse/python_dependencies.py b/synapse/python_dependencies.py
index 2de946f464..7709361f16 100644
--- a/synapse/python_dependencies.py
+++ b/synapse/python_dependencies.py
@@ -78,7 +78,8 @@ REQUIREMENTS = [
     # we use attr.validators.deep_iterable, which arrived in 19.1.0 (Note:
     # Fedora 31 only has 19.1, so if we want to upgrade we should wait until 33
     # is out in November.)
-    "attrs>=19.1.0",
+    # Note: 21.1.0 broke `/sync`, see #9936
+    "attrs>=19.1.0,<21.1.0",
     "netaddr>=0.7.18",
     "Jinja2>=2.9",
     "bleach>=1.4.3",
-- 
GitLab