-
Notifications
You must be signed in to change notification settings - Fork 244
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
Ensure that batch entry contexts are correctly preserved #5162
Conversation
Batch processing was not using contexts correctly. A representative context was chosen, the first item in a batch of items, and used to provide context functionality for all the generated responses. This bug is now fixed and the router correctly preserves request contexts and uses them during response creation.
This comment has been minimized.
This comment has been minimized.
CI performance tests
|
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.
Maybe a dumb question but are we sure the ordering of graphql requests is the same and so it's safe to use a Vec instead of a map or something ?
Also could you add tests please ?
We are sure (Or at least I am). I did some manual testing to make sure that the ordering was correct. I should have documented that. Adding tests is challenging, but I'll see what I can think of. |
Add a check to make sure that the output list of contexts match the input list of request contexts.
I've enhanced an existing unit test and documented the manual testing that I performed. |
Batch processing was not using contexts correctly. A representative context was chosen, the first item in a batch of items, and used to provide context functionality for all the generated responses.
The router now correctly preserves request contexts and uses them during response creation.
Checklist
Complete the checklist (and note appropriate exceptions) before the PR is marked ready-for-review.
Exceptions
I've enhanced the existing
it_assembles_batch
test to ensure that output contexts match input contexts. This isn't fully testing all the new functionality, but along with manual testing, it does mean that the fix is fully tested.Manual testing was performed by modifying the router to make Context id externally visible and then running a custom test program which updated context in Subgraph and Supergraph stages and ensuring that Context ids were correct.
Notes
Footnotes
It may be appropriate to bring upcoming changes to the attention of other (impacted) groups. Please endeavour to do this before seeking PR approval. The mechanism for doing this will vary considerably, so use your judgement as to how and when to do this. ↩
Configuration is an important part of many changes. Where applicable please try to document configuration examples. ↩
Tick whichever testing boxes are applicable. If you are adding Manual Tests, please document the manual testing (extensively) in the Exceptions. ↩