In T151702, we saw a lot of changeprop requests sharing the same request id. All of these requests were triggered by the same edit, but targeted different titles. The shared request id created confusion, with those investigating suspecting retry issues.
Assuming the shared request ID is indeed added / forwarded in ChangeProp, I am proposing to change the behavior so that:
- Each derived request initiated by ChangeProp gets a fresh request-id assigned. Retries (if any) use the same request id.
- Additionally, each derived request gets a triggered-by header assigned, which contains a comma separated list of trigger URLs, with each component escaped with encodeURIComponent. This list is appended to the same way https://en.wikipedia.org/wiki/X-Forwarded-For is, so that it builds up a complete chain of events / request ids that triggered the actual request.
The result should be:
- Avoid confusion between requests / retries and triggers.
- Ability to filter on request id only, seeing only the primary event processing.
- Ability to filter on triggered-by only, seeing only derived events. Using phrase search, even specific parts of the update graphs can be targeted in queries.