1836 Commits

Author SHA1 Message Date
Kegan Dougal
425a5d4a2f
Merge pull request #436 from matrix-org/s7evink/optimize-latest-event-in-room
Optimize getting the latest events in each room
2024-05-20 09:24:02 +01:00
Kegan Dougal
1551ccd7c9
Merge pull request #437 from matrix-org/kegan/device-data-table
Refactor device data
2024-05-20 09:11:17 +01:00
Kegan Dougal
3fc49bd4ea Migration review comments 2024-05-20 08:37:09 +01:00
Kegan Dougal
fdbebaea68 Some review comments; swap to UPDATE..RETURNING 2024-05-20 08:22:48 +01:00
Kegan Dougal
35c9fd4d95 Remove spurious return 2024-05-17 17:10:05 +01:00
Kegan Dougal
af1f34861e Ensure txns are closed so we can wipe the db for other tests 2024-05-17 16:09:02 +01:00
Kegan Dougal
5028f93f83 If there's no updates, don't insert anything 2024-05-17 15:37:45 +01:00
Kegan Dougal
fcd9b490f9 Debug logging 2024-05-17 15:20:18 +01:00
Kegan Dougal
b6f2f9d273 Use a CURSOR 2024-05-17 14:48:08 +01:00
Kegan Dougal
b383ed0d82 Add migrations and refactor internal structs 2024-05-17 13:45:14 +01:00
Till Faelligen
425ed4efba
Fix order of params and tell pq what $1 is 2024-05-17 11:04:59 +02:00
Till Faelligen
1ae5b5cb3d
Also optimize LatestEventNIDInRooms 2024-05-17 10:41:28 +02:00
Kegan Dougal
2cd9a81ab2 Add DeviceListTable
Shift over unit tests from DeviceDataTable
2024-05-17 09:37:38 +01:00
Till Faelligen
3ca77f2bc0
Optimize getting the latest events in each room
Signed-off-by: Till Faelligen <2353100+S7evinK@users.noreply.github.com>
2024-05-17 10:27:12 +02:00
Kegan Dougal
693587ef7e v0.99.17 v0.99.17 2024-05-10 14:25:32 +01:00
Kegan Dougal
0d22cf1da5
Merge pull request #432 from matrix-org/kegan/device-list-updates
Ensure device list updates are robust to race conditions and network failures
2024-05-10 10:35:09 +01:00
Kegan Dougal
150d9d6371
Merge pull request #433 from matrix-org/kegan/sign
Sign releases
2024-05-09 16:37:07 +01:00
Kegan Dougal
39f0d220e0 Maybe sign releases very-good-sign-test 2024-05-09 16:03:29 +01:00
Kegan Dougal
f564f2d774 Redo the device data unit tests
They were A) confusing and B) testing the wrong thing as they got refactored
after the bad refactor of the source code..
2024-05-09 15:32:21 +01:00
Kegan Dougal
c5b0afb2be bugfix: ensure we send back device list updates at the correct time
Otherwise we can cause lost device list updates if the client resets
the connection (as the device list update won't be in any in-memory cache).
2024-05-09 12:36:18 +01:00
Kegan Dougal
5816c60e33 Add SELECT .. FOR UPDATE clauses to DeviceDataTable
As we are selecting... for updates. Without this, we can drop
updates to the floor incorrectly.

See https://github.com/matrix-org/sliding-sync/issues/430
2024-05-08 14:26:24 +01:00
Kegan Dougal
8c76aad4e9
Merge pull request #425 from csett86/patch-1
README: document prebuild binaries
2024-04-26 16:42:35 +01:00
Christoph Settgast
3e0162d70b
README: document prebuild binaries
Now that there is a release which is statically built, advertise it in the README as well
2024-04-26 17:36:50 +02:00
Kegan Dougal
66fd58bc49 v0.99.16 v0.99.16 2024-04-26 13:42:42 +01:00
Kegan Dougal
91d34b6b88
Merge pull request #424 from matrix-org/kegan/msc4115-unstable
Check for unstable prefix in MSC4115
2024-04-26 13:41:23 +01:00
Kegan Dougal
9620a624d7 Comment on escaped dots 2024-04-26 12:16:39 +01:00
Kegan Dougal
0af85096aa Check for unstable prefix in MSC4115 2024-04-25 15:15:42 +01:00
Kegan Dougal
abf5aeff82
Merge pull request #422 from matrix-org/kegan/db-size
Clean the syncv3_snapshots table periodically
2024-04-24 16:55:25 +01:00
Kegan Dougal
b0ab21ea90
Merge pull request #423 from matrix-org/kegan/msc4115
Remove MSC4115 unsigned.membership field
2024-04-24 16:55:13 +01:00
Kegan Dougal
c4f2617a2d Remove MSC4115 unsigned.membership field
With integration tests. This is required because this field
is scoped per-v2-user, but because the proxy deduplicates events
it means we might see the membership value for a different user.
We can't set this field correctly as we lack that information, so
rather than lie to clients instead just delete the field.

Fixes https://github.com/matrix-org/sliding-sync/issues/421
2024-04-24 16:20:07 +01:00
Kegan Dougal
a1b5e48529 Run the cleaner on startup 2024-04-22 08:59:23 +01:00
Kegan Dougal
5dae70069b Clean the syncv3_snapshots table periodically
Also cleans the transaction table periodically.

Fixes https://github.com/matrix-org/sliding-sync/issues/372

On testing, this cuts db size to about 1/3 of its original size.
2024-04-22 08:55:05 +01:00
Kegan Dougal
c18961bb46
Merge pull request #418 from matrix-org/kegan/account-data-dupe
bugfix: don't send dupe room account data
2024-04-12 15:03:01 +01:00
Kegan Dougal
236f065953 Given we only process 1 update in this function, return not break 2024-04-12 08:34:37 +01:00
Kegan Dougal
48b5a549b6 Fix sending dupe room account data
Fixes #417
2024-04-11 17:16:26 +01:00
Kegan Dougal
a7152348ac Add regression test for https://github.com/matrix-org/sliding-sync/issues/417 2024-04-11 16:08:33 +01:00
kegsay
8750e1c435
Merge pull request #410 from matrix-org/kegan/race-tests
Fix race conditions in tests
2024-03-11 15:01:26 +00:00
Kegan Dougal
05a82a43dc Same race pattern as timeSince for timeSleep 2024-03-11 12:06:13 +00:00
Kegan Dougal
4d54faa1a6 Fix remaining race conditions; add -race to CI 2024-03-11 10:30:03 +00:00
Kegan Dougal
c7dd361ca6 Use atomic.Bool rather than bool in tests to fix race detector issues 2024-03-11 10:22:18 +00:00
kegsay
cfff8bccb7
Merge pull request #393 from csett86/disable-cgo
CGO disabled to allow running on older distros
2024-03-05 13:57:39 +00:00
kegsay
6db85e6db0
Merge pull request #395 from maxkratz/hotfix/readme-params-layout
Fixes the spacing for the ENV list in `README.md` doc
2024-03-05 13:54:33 +00:00
kegsay
71598947e4
Merge pull request #406 from matrix-org/kegan/sentry-user
bugfix: ensure sentry username/id values are correct
2024-03-05 13:54:06 +00:00
Kegan Dougal
905f815794 bugfix: ensure sentry username/id values are correct
Previously there were wrong under high concurrency due to
using the global hub instead of a per-request hub.
2024-03-05 11:30:05 +00:00
kegsay
30f8c5b308
Merge pull request #405 from matrix-org/kegan/spans
Add more spans for live updates; change when we early return from buffered events
2024-02-26 14:23:36 +00:00
Kegan Dougal
8ccb0185b3 Include mutexes in spans 2024-02-26 13:01:18 +00:00
Kegan Dougal
dcb8854001 Add more spans for live updates; change when we early return from buffered events
- Add more spans to live updates to account for more time spent in various functions.
- When there are a lot of stacked updates in the buffer, return after processing 100
  of them rather than relying on >=50 list operations. List operations isn't a good
  proxy for the amount of work being done, as the majority of work updates are things
  like: receipts, typing, device list updates. This means we will return faster than
  before when we have stacked updates, reducing perceived latency, despite having to
  still go through the entire buffer.
2024-02-26 12:53:57 +00:00
kegsay
a95f3c78c0
Merge pull request #402 from matrix-org/kegan/timeline-cap
Add a sensible timeline_limit cap
2024-02-21 14:08:32 +00:00
Kegan Dougal
6d6a2d6c08 Add a sensible timeline_limit cap
To avoid pathological cases where large timeline limits are requested.
2024-02-21 13:22:20 +00:00
kegsay
aa3ea8fe2e
Merge pull request #401 from matrix-org/kegan/msc4102
Implement MSC4102
2024-02-16 10:02:57 +00:00