Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add support for moving /push_rules off of main process #17037

Merged
merged 5 commits into from
Mar 28, 2024

Conversation

erikjohnston
Copy link
Member

No description provided.

@erikjohnston erikjohnston requested a review from a team as a code owner March 28, 2024 13:06
Copy link
Member

@sandhose sandhose left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think I learned how replication usually works reading this 🙇

If my understanding is right, this is to allow routing /push_rules to a separate worker.
Problem is, one other case where push rules are being written outside of the /push_rules, which is when we copy push rules when we upgrade rooms.
So this adds a replication handler for that particular operation, which is called if the room upgrade doesn't happen on the worker which is supposed to handle push rules

At least, this is what I understood reading the patch, so if that's completely not the case, either the patch is wrong or I can't read code anymore

synapse/config/workers.py Show resolved Hide resolved
@erikjohnston
Copy link
Member Author

I think I learned how replication usually works reading this 🙇

If my understanding is right, this is to allow routing /push_rules to a separate worker. Problem is, one other case where push rules are being written outside of the /push_rules, which is when we copy push rules when we upgrade rooms. So this adds a replication handler for that particular operation, which is called if the room upgrade doesn't happen on the worker which is supposed to handle push rules

At least, this is what I understood reading the patch, so if that's completely not the case, either the patch is wrong or I can't read code anymore

Yes, exactly

@github-actions github-actions bot deployed to PR Documentation Preview March 28, 2024 15:18 Active
@erikjohnston erikjohnston enabled auto-merge (squash) March 28, 2024 15:30
@erikjohnston erikjohnston merged commit ea6bfae into develop Mar 28, 2024
40 checks passed
@erikjohnston erikjohnston deleted the erikj/push_off_main branch March 28, 2024 15:44
The following endpoints should be routed directly to the worker configured as
the stream writer for the `push` stream:

^/_matrix/client/(api/v1|r0|v3|unstable)/push_rules/
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

WAIT it's actually /pushrules/

Suggested change
^/_matrix/client/(api/v1|r0|v3|unstable)/push_rules/
^/_matrix/client/(api/v1|r0|v3|unstable)/pushrules/

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Oh good spot

erikjohnston added a commit that referenced this pull request Mar 28, 2024
yingziwu added a commit to yingziwu/synapse that referenced this pull request Apr 19, 2024
No significant changes since 1.105.0rc1.

- Stabilize support for [MSC4010](matrix-org/matrix-spec-proposals#4010) which clarifies the interaction of push rules and account data. Contributed by @clokep. ([\#17022](element-hq/synapse#17022))
- Stabilize support for [MSC3981](matrix-org/matrix-spec-proposals#3981): `/relations` recursion. Contributed by @clokep. ([\#17023](element-hq/synapse#17023))
- Add support for moving `/pushrules` off of main process. ([\#17037](element-hq/synapse#17037), [\#17038](element-hq/synapse#17038))

- Fix various long-standing bugs which could cause incorrect state to be returned from `/sync` in certain situations. ([\#16930](element-hq/synapse#16930), [\#16932](element-hq/synapse#16932), [\#16942](element-hq/synapse#16942), [\#17064](element-hq/synapse#17064), [\#17065](element-hq/synapse#17065), [\#17066](element-hq/synapse#17066))
- Fix server notice rooms not always being created as unencrypted rooms, even when `encryption_enabled_by_default_for_room_type` is in use (server notices are always unencrypted). ([\#17033](element-hq/synapse#17033))
- Fix the `.m.rule.encrypted_room_one_to_one` and `.m.rule.room_one_to_one` default underride push rules being in the wrong order. Contributed by @Sumpy1. ([\#17043](element-hq/synapse#17043))

- Refactor auth chain fetching to reduce duplication. ([\#17044](element-hq/synapse#17044))
- Improve database performance by adding a missing index to `access_tokens.refresh_token_id`. ([\#17045](element-hq/synapse#17045), [\#17054](element-hq/synapse#17054))
- Improve database performance by reducing number of receipts fetched when sending push notifications. ([\#17049](element-hq/synapse#17049))

* Bump packaging from 23.2 to 24.0. ([\#17027](element-hq/synapse#17027))
* Bump regex from 1.10.3 to 1.10.4. ([\#17028](element-hq/synapse#17028))
* Bump ruff from 0.3.2 to 0.3.5. ([\#17060](element-hq/synapse#17060))
* Bump serde_json from 1.0.114 to 1.0.115. ([\#17041](element-hq/synapse#17041))
* Bump types-pillow from 10.2.0.20240125 to 10.2.0.20240406. ([\#17061](element-hq/synapse#17061))
* Bump types-requests from 2.31.0.20240125 to 2.31.0.20240406. ([\#17063](element-hq/synapse#17063))
* Bump typing-extensions from 4.9.0 to 4.11.0. ([\#17062](element-hq/synapse#17062))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants