This repository has been archived by the owner on Apr 26, 2024. It is now read-only.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Allow non-member state sent in room batch to resolve for historic events (MSC2716) #12329
Allow non-member state sent in room batch to resolve for historic events (MSC2716) #12329
Changes from 1 commit
1d770c5
ea0c99d
5151de0
File filter
Filter by extension
Conversations
Jump to
There are no files selected for viewing
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Removing these as
outliers
becausefilter_events_for_client
filters out alloutlier
state except for out-of-band membership. And we want all of thestate_events_at_start
to resolve when a historical event is pulled.This state chain is still disconnected from the normal DAG because the first event has empty
prev_events
so they state just floats in a chain of its own.There was a problem hiding this comment.
Choose a reason for hiding this comment
The 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?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The 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
prev_events
and that the state chain is disconnected from the historical message chain (noprev_event
edges connect them).There was a problem hiding this comment.
Choose a reason for hiding this comment
The 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
batch0
,batch1
,batch2
?There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
persist_state_events_at_start
is handling the state events above the yellow boxes (m.room.member
events in the diagram). The historical state chain.The yellow boxes are the historical messages chains
There was a problem hiding this comment.
Choose a reason for hiding this comment
The 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.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The 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
state_event_ids