mirror of
https://mau.dev/maunium/synapse.git
synced 2024-12-15 08:13:48 +01:00
Fix bug when running presence off master (#10149)
Hopefully fixes #10027.
This commit is contained in:
parent
b31daac01c
commit
d26d15ba3d
3 changed files with 17 additions and 1 deletions
1
changelog.d/10149.bugfix
Normal file
1
changelog.d/10149.bugfix
Normal file
|
@ -0,0 +1 @@
|
|||
Fix a bug which caused presence updates to stop working some time after restart, when using a presence writer worker.
|
|
@ -50,7 +50,7 @@ class PresenceStore(SQLBaseStore):
|
|||
instance_name=self._instance_name,
|
||||
tables=[("presence_stream", "instance_name", "stream_id")],
|
||||
sequence_name="presence_stream_sequence",
|
||||
writers=hs.config.worker.writers.to_device,
|
||||
writers=hs.config.worker.writers.presence,
|
||||
)
|
||||
else:
|
||||
self._presence_id_gen = StreamIdGenerator(
|
||||
|
|
|
@ -397,6 +397,11 @@ class MultiWriterIdGenerator:
|
|||
# ... persist event ...
|
||||
"""
|
||||
|
||||
# If we have a list of instances that are allowed to write to this
|
||||
# stream, make sure we're in it.
|
||||
if self._writers and self._instance_name not in self._writers:
|
||||
raise Exception("Tried to allocate stream ID on non-writer")
|
||||
|
||||
return _MultiWriterCtxManager(self)
|
||||
|
||||
def get_next_mult(self, n: int):
|
||||
|
@ -406,6 +411,11 @@ class MultiWriterIdGenerator:
|
|||
# ... persist events ...
|
||||
"""
|
||||
|
||||
# If we have a list of instances that are allowed to write to this
|
||||
# stream, make sure we're in it.
|
||||
if self._writers and self._instance_name not in self._writers:
|
||||
raise Exception("Tried to allocate stream ID on non-writer")
|
||||
|
||||
return _MultiWriterCtxManager(self, n)
|
||||
|
||||
def get_next_txn(self, txn: LoggingTransaction):
|
||||
|
@ -416,6 +426,11 @@ class MultiWriterIdGenerator:
|
|||
# ... persist event ...
|
||||
"""
|
||||
|
||||
# If we have a list of instances that are allowed to write to this
|
||||
# stream, make sure we're in it.
|
||||
if self._writers and self._instance_name not in self._writers:
|
||||
raise Exception("Tried to allocate stream ID on non-writer")
|
||||
|
||||
next_id = self._load_next_id_txn(txn)
|
||||
|
||||
with self._lock:
|
||||
|
|
Loading…
Reference in a new issue