Skip to content
This repository has been archived by the owner on Apr 26, 2024. It is now read-only.

Commit

Permalink
Allow censoring of events to happen on workers. (#7492)
Browse files Browse the repository at this point in the history
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.
  • Loading branch information
erikjohnston authored May 13, 2020
1 parent 46cb255 commit 1124111
Show file tree
Hide file tree
Showing 4 changed files with 4 additions and 8 deletions.
1 change: 1 addition & 0 deletions changelog.d/7492.misc
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Allow censoring of events to happen on workers.
2 changes: 2 additions & 0 deletions synapse/app/generic_worker.py
Original file line number Diff line number Diff line change
Expand Up @@ -122,6 +122,7 @@
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,
Expand Down Expand Up @@ -442,6 +443,7 @@ class GenericWorkerSlavedStore(
SlavedGroupServerStore,
SlavedAccountDataStore,
SlavedPusherStore,
CensorEventsStore,
SlavedEventStore,
SlavedKeyStore,
RoomStore,
Expand Down
2 changes: 0 additions & 2 deletions synapse/handlers/message.py
Original file line number Diff line number Diff line change
Expand Up @@ -72,7 +72,6 @@ def __init__(self, hs):
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.
Expand Down Expand Up @@ -260,7 +259,6 @@ def maybe_schedule_expiry(self, event):
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():
Expand Down
7 changes: 1 addition & 6 deletions synapse/storage/data_stores/main/censor_events.py
Original file line number Diff line number Diff line change
Expand Up @@ -33,15 +33,10 @@
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
Expand Down

0 comments on commit 1124111

Please sign in to comment.