mirror of
https://mau.dev/maunium/synapse.git
synced 2024-10-01 01:36:05 -04:00
Remove racey assertion in MultiWriterIDGenerator (#8530)
We asserted that the IDs returned by postgres sequence was greater than any we had seen, however this is technically racey as we may update the current positions out of order. We now assert that the sequences are correct on startup, so the assertion is no longer really required, so we remove them.
This commit is contained in:
parent
1cf4a68108
commit
618d405a32
1
changelog.d/8530.bugfix
Normal file
1
changelog.d/8530.bugfix
Normal file
@ -0,0 +1 @@
|
|||||||
|
Fix rare bug where sending an event would fail due to a racey assertion.
|
@ -618,14 +618,7 @@ class _MultiWriterCtxManager:
|
|||||||
db_autocommit=True,
|
db_autocommit=True,
|
||||||
)
|
)
|
||||||
|
|
||||||
# Assert the fetched ID is actually greater than any ID we've already
|
|
||||||
# seen. If not, then the sequence and table have got out of sync
|
|
||||||
# somehow.
|
|
||||||
with self.id_gen._lock:
|
with self.id_gen._lock:
|
||||||
assert max(self.id_gen._current_positions.values(), default=0) < min(
|
|
||||||
self.stream_ids
|
|
||||||
)
|
|
||||||
|
|
||||||
self.id_gen._unfinished_ids.update(self.stream_ids)
|
self.id_gen._unfinished_ids.update(self.stream_ids)
|
||||||
|
|
||||||
if self.multiple_ids is None:
|
if self.multiple_ids is None:
|
||||||
|
Loading…
Reference in New Issue
Block a user