Skip to content
Snippets Groups Projects
Unverified Commit 1124111a authored by Erik Johnston's avatar Erik Johnston Committed by GitHub
Browse files

Allow censoring of events to happen on workers. (#7492)

This is safe as we can now write to cache invalidation stream on workers, and is required for when we move event persistence off master.
parent 46cb2550
No related branches found
No related tags found
No related merge requests found
Allow censoring of events to happen on workers.
......@@ -122,6 +122,7 @@ from synapse.rest.client.v2_alpha.register import RegisterRestServlet
from synapse.rest.client.versions import VersionsRestServlet
from synapse.rest.key.v2 import KeyApiV2Resource
from synapse.server import HomeServer
from synapse.storage.data_stores.main.censor_events import CensorEventsStore
from synapse.storage.data_stores.main.media_repository import MediaRepositoryStore
from synapse.storage.data_stores.main.monthly_active_users import (
MonthlyActiveUsersWorkerStore,
......@@ -442,6 +443,7 @@ class GenericWorkerSlavedStore(
SlavedGroupServerStore,
SlavedAccountDataStore,
SlavedPusherStore,
CensorEventsStore,
SlavedEventStore,
SlavedKeyStore,
RoomStore,
......
......@@ -72,7 +72,6 @@ class MessageHandler(object):
self.state_store = self.storage.state
self._event_serializer = hs.get_event_client_serializer()
self._ephemeral_events_enabled = hs.config.enable_ephemeral_messages
self._is_worker_app = bool(hs.config.worker_app)
# The scheduled call to self._expire_event. None if no call is currently
# scheduled.
......@@ -260,7 +259,6 @@ class MessageHandler(object):
Args:
event (EventBase): The event to schedule the expiry of.
"""
assert not self._is_worker_app
expiry_ts = event.content.get(EventContentFields.SELF_DESTRUCT_AFTER)
if not isinstance(expiry_ts, int) or event.is_state():
......
......@@ -33,15 +33,10 @@ if TYPE_CHECKING:
logger = logging.getLogger(__name__)
class CensorEventsStore(CacheInvalidationWorkerStore, EventsWorkerStore, SQLBaseStore):
class CensorEventsStore(EventsWorkerStore, CacheInvalidationWorkerStore, SQLBaseStore):
def __init__(self, database: Database, db_conn, hs: "HomeServer"):
super().__init__(database, db_conn, hs)
# This should only exist on master for now
assert (
hs.config.worker.worker_app is None
), "Can only instantiate CensorEventsStore on master"
def _censor_redactions():
return run_as_background_process(
"_censor_redactions", self._censor_redactions
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment