Ensure msgId in CDP requests are unique at the connection scope #984
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.
Description of changes
A detailed description as to why we're doing this can be found here.
Currently the
msgId
s clash from one session to another as well as withmsgId
s that are sent without a session on the connection event loop.Generally this isn't an issue, but recently we have found that chrome sometimes returns an error without the
sessionId
that was in the original request msg. When this occurs, we route those error responses to handlers that are waiting on the connection event loop. If there's a clash inmsgId
then the wrong handler will work with the wrong response, which could result in incorrect behaviour. The other issue with routing the response to the wrong handler is that the correct handler could end up waiting indefinitely (or timeout) which could pause the whole test iteration/vu.This change will enforce a unique msgId at the connection level, which should avoid such scenarios.
Linked issue: #861
Checklist