mirror of
https://git.anonymousland.org/anonymousland/synapse.git
synced 2025-05-05 06:34:56 -04:00
Fix /initialSync error due to unhashable RoomStreamToken
(#10827)
The deprecated /initialSync endpoint maintains a cache of responses, using parameter values as part of the cache key. When a `from` or `to` parameter is specified, it gets converted into a `StreamToken`, which contains a `RoomStreamToken` and forms part of the cache key. `RoomStreamToken`s need to be made hashable for this to work.
This commit is contained in:
parent
52913d56a5
commit
9391de3f37
3 changed files with 19 additions and 6 deletions
|
@ -39,6 +39,8 @@ import logging
|
|||
from collections import namedtuple
|
||||
from typing import TYPE_CHECKING, Collection, Dict, List, Optional, Set, Tuple
|
||||
|
||||
from frozendict import frozendict
|
||||
|
||||
from twisted.internet import defer
|
||||
|
||||
from synapse.api.filtering import Filter
|
||||
|
@ -379,7 +381,7 @@ class StreamWorkerStore(EventsWorkerStore, SQLBaseStore, metaclass=abc.ABCMeta):
|
|||
if p > min_pos
|
||||
}
|
||||
|
||||
return RoomStreamToken(None, min_pos, positions)
|
||||
return RoomStreamToken(None, min_pos, frozendict(positions))
|
||||
|
||||
async def get_room_events_stream_for_rooms(
|
||||
self,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue