Commit Graph

19048 Commits (187ab28611546321e02770944c86f30ee2bc742a)

Author SHA1 Message Date
Eric Eastwood 187ab28611 Messy: Fix undefined state_group for federated historical events
```
2021-07-13 02:27:57,810 - synapse.handlers.federation - 1248 - ERROR - GET-4 - Failed to backfill from hs1 because NOT NULL constraint failed: event_to_state_groups.state_group
Traceback (most recent call last):
  File "/usr/local/lib/python3.8/site-packages/synapse/handlers/federation.py", line 1216, in try_backfill
    await self.backfill(
  File "/usr/local/lib/python3.8/site-packages/synapse/handlers/federation.py", line 1035, in backfill
    await self._auth_and_persist_event(dest, event, context, backfilled=True)
  File "/usr/local/lib/python3.8/site-packages/synapse/handlers/federation.py", line 2222, in _auth_and_persist_event
    await self._run_push_actions_and_persist_event(event, context, backfilled)
  File "/usr/local/lib/python3.8/site-packages/synapse/handlers/federation.py", line 2244, in _run_push_actions_and_persist_event
    await self.persist_events_and_notify(
  File "/usr/local/lib/python3.8/site-packages/synapse/handlers/federation.py", line 3290, in persist_events_and_notify
    events, max_stream_token = await self.storage.persistence.persist_events(
  File "/usr/local/lib/python3.8/site-packages/synapse/logging/opentracing.py", line 774, in _trace_inner
    return await func(*args, **kwargs)
  File "/usr/local/lib/python3.8/site-packages/synapse/storage/persist_events.py", line 320, in persist_events
    ret_vals = await yieldable_gather_results(enqueue, partitioned.items())
  File "/usr/local/lib/python3.8/site-packages/synapse/storage/persist_events.py", line 237, in handle_queue_loop
    ret = await self._per_item_callback(
  File "/usr/local/lib/python3.8/site-packages/synapse/storage/persist_events.py", line 577, in _persist_event_batch
    await self.persist_events_store._persist_events_and_state_updates(
  File "/usr/local/lib/python3.8/site-packages/synapse/storage/databases/main/events.py", line 176, in _persist_events_and_state_updates
    await self.db_pool.runInteraction(
  File "/usr/local/lib/python3.8/site-packages/synapse/storage/database.py", line 681, in runInteraction
    result = await self.runWithConnection(
  File "/usr/local/lib/python3.8/site-packages/synapse/storage/database.py", line 770, in runWithConnection
    return await make_deferred_yieldable(
  File "/usr/local/lib/python3.8/site-packages/twisted/python/threadpool.py", line 238, in inContext
    result = inContext.theWork()  # type: ignore[attr-defined]
  File "/usr/local/lib/python3.8/site-packages/twisted/python/threadpool.py", line 254, in <lambda>
    inContext.theWork = lambda: context.call(  # type: ignore[attr-defined]
  File "/usr/local/lib/python3.8/site-packages/twisted/python/context.py", line 118, in callWithContext
    return self.currentContext().callWithContext(ctx, func, *args, **kw)
  File "/usr/local/lib/python3.8/site-packages/twisted/python/context.py", line 83, in callWithContext
    return func(*args, **kw)
  File "/usr/local/lib/python3.8/site-packages/twisted/enterprise/adbapi.py", line 293, in _runWithConnection
    compat.reraise(excValue, excTraceback)
  File "/usr/local/lib/python3.8/site-packages/twisted/python/deprecate.py", line 298, in deprecatedFunction
    return function(*args, **kwargs)
  File "/usr/local/lib/python3.8/site-packages/twisted/python/compat.py", line 403, in reraise
    raise exception.with_traceback(traceback)
  File "/usr/local/lib/python3.8/site-packages/twisted/enterprise/adbapi.py", line 284, in _runWithConnection
    result = func(conn, *args, **kw)
  File "/usr/local/lib/python3.8/site-packages/synapse/storage/database.py", line 765, in inner_func
    return func(db_conn, *args, **kwargs)
  File "/usr/local/lib/python3.8/site-packages/synapse/storage/database.py", line 549, in new_transaction
    r = func(cursor, *args, **kwargs)
  File "/usr/local/lib/python3.8/site-packages/synapse/logging/utils.py", line 69, in wrapped
    return f(*args, **kwargs)
  File "/usr/local/lib/python3.8/site-packages/synapse/storage/databases/main/events.py", line 385, in _persist_events_txn
    self._store_event_state_mappings_txn(txn, events_and_contexts)
  File "/usr/local/lib/python3.8/site-packages/synapse/storage/databases/main/events.py", line 2065, in _store_event_state_mappings_txn
    self.db_pool.simple_insert_many_txn(
  File "/usr/local/lib/python3.8/site-packages/synapse/storage/database.py", line 923, in simple_insert_many_txn
    txn.execute_batch(sql, vals)
  File "/usr/local/lib/python3.8/site-packages/synapse/storage/database.py", line 280, in execute_batch
    self.executemany(sql, args)
  File "/usr/local/lib/python3.8/site-packages/synapse/storage/database.py", line 300, in executemany
    self._do_execute(self.txn.executemany, sql, *args)
  File "/usr/local/lib/python3.8/site-packages/synapse/storage/database.py", line 330, in _do_execute
    return func(sql, *args)
sqlite3.IntegrityError: NOT NULL constraint failed: event_to_state_groups.state_group
```
2021-07-20 19:56:44 -05:00
Eric Eastwood 8ebbc5f607 Merge branch 'madlittlemods/2716-backfill-historical-events-for-federation' into madlittlemods/2716-marker-events
Conflicts:
	synapse/storage/databases/main/events.py
2021-07-20 17:31:38 -05:00
Eric Eastwood 258fa57d7e Add unstable room version to support new historical PL 2021-07-20 01:41:44 -05:00
Eric Eastwood 04a29fed47 Switch to chunk events for federation 2021-07-20 00:48:08 -05:00
Eric Eastwood b2be8cec39 Switch to chunk events so we can auth via power_levels
Previously, we were using `content.chunk_id` to connect one
chunk to another. But these events can be from any `sender`
and we can't tell who should be able to send historical events.
We know we only want the application service to do it but these
events have the sender of a real historical message, not the
application service user ID as the sender. Other federated homeservers
also have no indicator which senders are an application service on
the originating homeserver.

So we want to auth all of the MSC2716 events via power_levels
and have them be sent by the application service with proper
PL levels in the room.
2021-07-20 00:06:31 -05:00
Eric Eastwood 2196ba527b Add insertion_event_extremities table 2021-07-17 03:59:39 -05:00
Eric Eastwood d63c34c7e5 hs2 to better ask for insertion event extremity
But running into the `sqlite3.IntegrityError: NOT NULL constraint failed: event_to_state_groups.state_group`
error
2021-07-17 03:37:18 -05:00
Eric Eastwood e0e1bd0550 WIP: make hs2 backfill historical messages after marker event 2021-07-17 03:00:10 -05:00
Eric Eastwood 435f074541 Process markers when we receive it over federation 2021-07-16 17:24:18 -05:00
Eric Eastwood 164e32b1d2 Add support for MSC2716 marker events 2021-07-16 14:46:21 -05:00
Eric Eastwood 35a4569ce6 Remove debug changes 2021-07-14 23:32:24 -05:00
Eric Eastwood 8999567de4 Fix test case where insertion event is already in the normal DAG 2021-07-14 23:29:45 -05:00
Eric Eastwood 9a86e0538f Only use event_id as unique constraint 2021-07-14 15:04:59 -05:00
Eric Eastwood 669da52ae2 Address review and improve sql queries 2021-07-14 14:49:15 -05:00
Eric Eastwood bc133969e4 Add more detail on which insertion event came through 2021-07-14 02:26:54 -05:00
Eric Eastwood 5970e3fdc7 Make it clear what MSC the change is part of 2021-07-14 02:26:40 -05:00
Eric Eastwood 0f6179fa67 Add changelog 2021-07-14 02:02:27 -05:00
Eric Eastwood 9a6fd3fd46 More accurate description 2021-07-14 01:57:47 -05:00
Eric Eastwood ea7c30db88 Add some better sql comments 2021-07-14 01:54:31 -05:00
Eric Eastwood 64aeb7330d Rename insertion_event_id to just event_id 2021-07-14 01:42:51 -05:00
Eric Eastwood f20ba0264c Clean up PR 2021-07-14 01:33:59 -05:00
Eric Eastwood ab8011bb5d Some marker event implemntation trials 2021-07-14 01:24:13 -05:00
Eric Eastwood 66cf5beaf3 Merge branch 'develop' into madlittlemods/2716-backfill-historical-events-for-federation 2021-07-13 14:34:28 -05:00
Eric Eastwood 02b1bea935 Remove debug sql queries 2021-07-13 14:34:03 -05:00
Eric Eastwood 0d5b08ac7a
Fix messages from multiple senders in historical chunk (MSC2716) (#10276)
Fix messages from multiple senders in historical chunk. This also means that an app service does not need to define `?user_id` when using this endpoint.

Follow-up to https://github.com/matrix-org/synapse/pull/9247

Part of MSC2716: https://github.com/matrix-org/matrix-doc/pull/2716
2021-07-13 14:12:33 -05:00
Patrick Cloke 30b56f6925
Add type hints to get_domain_from_id and get_localpart_from_id. (#10385) 2021-07-13 12:08:47 -04:00
Patrick Cloke 2d16e69b4b
Show all joinable rooms in the spaces summary. (#10298)
Previously only world-readable rooms were shown. This means that
rooms which are public, knockable, or invite-only with a pending invitation,
are included in a space summary. It also applies the same logic to
the experimental room version from MSC3083 -- if a user has access
to the proper allowed rooms then it is shown in the spaces summary.

This change is made per MSC3173 allowing stripped state of a room to
be shown to any potential room joiner.
2021-07-13 08:59:27 -04:00
Richard van der Hoff 475fcb0f20 Merge branch 'master' into develop 2021-07-13 13:30:16 +01:00
Richard van der Hoff 519ec8271f Move upgrade blurb 2021-07-13 13:25:46 +01:00
Richard van der Hoff f7309622e0
Update CHANGES.md 2021-07-13 13:23:07 +01:00
Richard van der Hoff 08a8297c0d fix debian changelog 2021-07-13 13:22:12 +01:00
Richard van der Hoff c647c2a9ac 1.38.0 2021-07-13 13:19:06 +01:00
Richard van der Hoff f7bfa694ae 1.38.0rc3 2021-07-13 11:57:55 +01:00
Dirk Klimpel e938f69697
Fix some links in `docs` and `contrib` (#10370) 2021-07-13 11:55:48 +01:00
Dirk Klimpel d9b3637e44
Bugfix `make_room_admin` fails for users that have left a private room (#10367)
Fixes: #10338
2021-07-13 11:53:45 +01:00
Jonathan de Jong 93729719b8
Use inline type hints in `tests/` (#10350)
This PR is tantamount to running:

    python3.8 -m com2ann -v 6 tests/

(com2ann requires python 3.8 to run)
2021-07-13 11:52:58 +01:00
Richard van der Hoff 2d8b60e0f2
Github Actions workflow to attach release artifacts to release (#10379) 2021-07-13 11:50:14 +01:00
Jonathan de Jong 89cfc3dd98
[pyupgrade] `tests/` (#10347) 2021-07-13 11:43:15 +01:00
Erik Johnston 879d8c1ee1
Fix federation inbound age metric. (#10355)
We should be reporting the age rather than absolute timestamp.
2021-07-13 11:33:15 +01:00
Eric Eastwood c05e43bf31 Add inserted historical messages to /backfill response 2021-07-12 20:22:38 -05:00
Richard van der Hoff ae81ec428d Build the python release artifacts in GHA too 2021-07-13 00:20:11 +01:00
Eric Eastwood baae5d86f5 Share validation logic 2021-07-12 17:18:34 -05:00
Eric Eastwood 4226165cc4 Continue debugging 2021-07-12 14:34:38 -05:00
Richard van der Hoff 5f2848f379
build debs in GHA (#10247)
GHA workflow to build the debs
2021-07-12 19:03:14 +01:00
Richard van der Hoff c2c364f27f
Replace `room_depth.min_depth` with a BIGINT (#10289)
while I'm dealing with INTEGERs and BIGINTs, let's replace room_depth.min_depth
with a BIGINT.
2021-07-12 17:22:54 +01:00
Patrick Cloke 19d0401c56
Additional unit tests for spaces summary. (#10305) 2021-07-12 11:21:04 -04:00
Erik Johnston 8eddbde0e2
Unblacklist fixed tests (#10357) 2021-07-09 17:51:15 +01:00
Richard van der Hoff 0f7ed3fc08
Re-enable room v6 sytest (#10345)
... now that it has been fixed in https://github.com/matrix-org/sytest/pull/1061.
2021-07-09 17:13:11 +01:00
Erik Johnston ac036e26c6 Revert "Newsfile"
This reverts commit 944428d116.
2021-07-09 14:52:00 +01:00
Erik Johnston 944428d116 Newsfile 2021-07-09 14:51:37 +01:00