-
-
Notifications
You must be signed in to change notification settings - Fork 2.1k
Allow non-member state sent in room batch to resolve for historic events (MSC2716) #12329
Changes from 1 commit
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -213,9 +213,6 @@ async def persist_state_events_at_start( | |
| room_id=room_id, | ||
| action=membership, | ||
| content=event_dict["content"], | ||
| # Mark as an outlier to disconnect it from the normal DAG | ||
| # and not show up between batches of history. | ||
| outlier=True, | ||
|
Contributor
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Removing these as This state chain is still disconnected from the normal DAG because the first event has empty
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I'm struggling to understand how the diagram relates to the change here. Which of the events on the diagram correspond to this code path?
Contributor
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Just giving it as a reference. It shows that the state chain floats by no
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. ok, so this code is handling the events in the yellow boxes labelled
Contributor
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
The yellow boxes are the historical messages chains
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
well in that case, this seems wrong. those events seem to be random state events where we haven't wired them up to the event dag? why would we have the state at those events? Either I'm severely understanding your diagram, or something is odd here.
Contributor
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Correct, they float in their own chain.
But we technically do have the state for them because we're manually providing it via |
||
| historical=True, | ||
| # Only the first event in the state chain should be floating. | ||
| # The rest should hang off each other in a chain. | ||
|
|
@@ -246,9 +243,6 @@ async def persist_state_events_at_start( | |
| state_event["sender"], app_service_requester.app_service | ||
| ), | ||
| event_dict, | ||
| # Mark as an outlier to disconnect it from the normal DAG | ||
| # and not show up between batches of history. | ||
| outlier=True, | ||
| historical=True, | ||
| # Only the first event in the state chain should be floating. | ||
| # The rest should hang off each other in a chain. | ||
|
|
||

Uh oh!
There was an error while loading. Please reload this page.