Commit Graph
935 Commits
Author SHA1 Message Date
timedout b580379a2d fix: Only check that room_id is not present on create events in PDU check 1 2026-10-30 00:43:55 +00:00
timedout 3c19206534 fix: Perform PDU checks 1, 2, and 3 before yielding a gapfilled PDU
Fixes #2386
2026-10-30 00:43:55 +00:00
Jade Ellis 24b1e2ebe8 refactor(service): Use SyncRwLock and SyncMutex for in-memory services
Convert in-memory data structures in appservice, rooms::typing, and sync
wakers to use SyncRwLock and SyncMutex. Drop appservice locks before
making outbound network requests in room alias queries and federation
invites.
2026-10-28 21:48:22 +00:00
Jade Ellis 9c4f84940e fix(service): Prevent remote join lock inversion
Do not hold state.mutex across join_remote_room to prevent an ABBA

deadlock against mutex_federation.
2026-10-28 21:44:02 +00:00
Ginger 3295427af6 fix: Don't check room summary access rules on remote rooms 2026-10-25 14:00:28 +00:00
timedout 9c27441acf style: Reformat with nightly 2026-10-23 23:37:51 +02:00
Ginger 98c694eaa3 chore: Add some comments 2026-10-15 22:56:04 -04:00
Ginger e6ca06a501 feat: Add support for MSC4560 2026-10-15 22:56:04 -04:00
Ginger 4f21fa2bda refactor: Clean up join rule evaluation logic 2026-10-15 22:55:36 -04:00
timedout 090203c2ea style: Remove import 2026-10-12 22:28:50 +01:00
timedout ff63d9f203 fix: Don't unconditionally mark gapfilled events as referenced
This is pointless and fallible
2026-10-12 22:28:50 +01:00
timedout 511e791b9f fix: Mark state and auth chain events as referenced after joining a room
It's generally safe to assume that all of these events have been referenced by the time we get to joining.
2026-10-12 22:28:50 +01:00
timedout bc70c4eaff fix: Mark PDUs as referenced during gapfill immediately 2026-10-12 22:28:50 +01:00
timedout bbbc9bc7d8 fix: Never add unknown events to the extremity tracker 2026-10-12 22:28:46 +01:00
Erwan Leboucher fe0ab62124 refactor: Unify retry backoff helpers 2026-10-12 11:14:01 +01:00
timedout b76dc816a4 fix: Handle policy server errors better 2026-10-08 20:26:30 +01:00
Jade Ellis 5d55b413a2 feat: Send private read receipts to appservices 2026-10-06 23:56:30 +01:00
Jade Ellis 7ce47be4de feat: Send read receipts and typing indicators to appservices 2026-10-06 23:56:28 +01:00
timedout 20fe43d200 fix: Don't insert top-level redacts in v11+ rooms 2026-10-06 02:34:10 +00:00
timedout 0224a558b3 fix: Stop embedding prev_content during event creation 2026-10-06 02:34:10 +00:00
Jade Ellis 1e34bd2ed9 style: Run formatting 2026-10-05 00:27:12 +01:00
timedout c94fa39fd1 fix: Don't panic when a join doesn't include a create event 2026-10-03 15:19:10 +00:00
timedout 550dd0160a fix: SEC8
Reviewed-By: Ginger <ginger@gingershaped.computer>
Reviewed-By: Jade <jade@ellis.link>
Reviewed-By: Jacob Taylor <jacob@explodie.org>
2026-09-28 02:00:37 +01:00
timedout 05d6922351 style: Take an optional context instead of deconstructed parameters 2026-09-27 17:33:26 +01:00
timedout f0a0596d12 fix: Remove undocumented prev_sender unsigned field 2026-09-27 17:32:47 +01:00
timedout fbedf994db fix: Don't unnecessarily embed prev_content in populate_unsigned 2026-09-27 17:32:47 +01:00
timedout 4812837d13 fix: Don't allow set_unsigned to panic
While an error in this function is probably bad, detonating a metric tonne of TNT on the call tree is probably worse
2026-09-27 17:32:47 +01:00
timedout 05ee24df7d fix: Move helper to helpers.rs, rename field, don't recurse unsigned in redacted_because
Renamed `redacted_because_id` to `org.continuwuity.redacted_by` for proper namespacing; `get_unsigned_context` now lives in helpers.rs instead of `mod.rs`. The helper function also now explicitly wipes `unsigned` for `redacted_because` to avoid leaks (see comment).
2026-09-27 17:32:46 +01:00
timedout 89eecd2bf7 fix: Record redacted_because_id instead of redacted_because 2026-09-27 17:32:46 +01:00
timedout b2072baf59 perf: Strip unsigned over federation and generate it on the fly locally 2026-09-27 17:32:46 +01:00
Ginger 4ea4e15edb chore: Reformat with latest nightly 2026-09-24 09:53:59 -04:00
Erwan Leboucher cee69b4c8d fix: Walk auth events once instead of re-queueing parents 2026-09-22 21:19:25 +02:00
timedout 7924e96589 chore: add todo to fix 2026-09-22 00:16:27 +00:00
timedout 6299df3552 style: Document fetch_and_handle_auth_events control flow 2026-09-22 00:16:27 +00:00
Erwan Leboucher 20d146bd5e fix: Throttle client-triggered remote event fetches 2026-09-22 00:16:27 +00:00
Erwan Leboucher 03f60c7002 fix: Don't re-fetch auth events that can never be resolved 2026-09-22 00:16:27 +00:00
timedout 1a8e5ccc09 fix: Gracefully handle extremityless rooms when gapfilling
See also: #2259
2026-09-17 00:06:17 +01:00
Jade ffcf152016 revert d330930bb5
revert feat: Add timestamp to event endpoint

This implementation unfortunately resulted in resource exhaustion when run on some rooms.
2026-09-16 13:05:45 +00:00
Erwan Leboucher ac8b17db1b fix: Only count non-outlier prev_events in get_missing_events assertion 2026-09-13 18:50:38 +00:00
Jade Ellis 71e101a4dc style: Run formatting 2026-09-11 15:54:42 +01:00
Jade Ellis 0f97eea31f style: Run formatting 2026-09-11 15:39:54 +01:00
Erwan Leboucher d330930bb5 feat: Add timestamp to event endpoint 2026-09-11 14:22:11 +00:00
Ginger 9fbabe2210 chore: Reformat with latest nightly 2026-09-01 12:55:05 -04:00
timedout 03d669594e fix: Re-invert prev events filter in fetch_prev_events 2026-09-01 16:24:18 +00:00
timedout c05ead912e fix: Don't increment backoff if we're still in backoff 2026-09-01 16:24:18 +00:00
timedout 32c652d67d fix: Actually check backoff before attempting to fetch prevs 2026-09-01 16:24:18 +00:00
timedout ebf48d1b08 fix: Rebase properly 2026-09-01 16:24:18 +00:00
timedout 37842d482c style: Remove unused import and reformat 2026-09-01 16:24:18 +00:00
timedout e58601d8a7 feat: Plumb event backoff into auth and prev fetchers 2026-09-01 16:24:18 +00:00
timedout dc302799a0 feat: Add pdu pull backoff
# Conflicts:
#	src/service/rooms/event_handler/mod.rs
2026-09-01 16:24:18 +00:00