-
-
Notifications
You must be signed in to change notification settings - Fork 10.2k
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
Fix remaining interop tests #25528
Fix remaining interop tests #25528
Conversation
To run the chacha20 test in interop we need to: 1) negotiate an hq-interop alpn 2) only use chacha 20 Item 1 requires the use of quic-hq-interop, the latter requires this change
Need to update the docker interop container to use the quic-hq-interop client so that the right alpn is negotiated for chacha20 testing
Could you please add a temporary commit that will run the interop CI on this PR to see if it passes? |
ping @nhorman re my comment above |
@t8m working on it now. In testing I discovered some transient failures that I'm looking at |
The multiplexing test works on local runs, but appears to be failing in CI, possibly due to some environmental limitation (the test generates a large list of requests in an environment variable), leading to not sending all the requests needed. Disable the test for now, and look to re-enable it after release when we can appropriately diagnose the problem
d8c8485
to
dc3569e
Compare
@t8m here you go, had to do some github gymnastics to get the test to run on the updated workflow, but this should prove its working: |
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.
looks good to me.
I have a question: would it make sense to enable multiplexing test for other servers? I vaguely remember earlier version of the PR did that.
@Sashan in answer to your question, yes it definitely would be good to enable the multiplexing test everywhere, but we seem to be encountering some transient failures that don't occur when running outside of CI (the summary is that randomly, creating new QUIC streams fail). I'm looking at it now and will submit a subsequent PR when I figure out whats going on |
This pull request is ready to merge |
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.
LGTM.
Co-authored-by: Viktor Dukhovni <[email protected]>
for req in $REQUESTS | ||
do | ||
OUTFILE=$(basename $req) | ||
printf "%s " "$OUTFILE" >> ./reqfile.txt | ||
HOSTNAME=$(printf "%s\n" "$req" | sed -ne 's,^https://\([^/:]*\).*,\1,p') | ||
HOSTPORT=$(printf "%s\n" "$req" | sed -ne 's,^https://[^:/]*:\([^/]*\).*,\1,p') | ||
done |
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've approved the PR as-is, but an alternative implementation, that is arguably cleaner, could be:
for req in $REQUESTS | |
do | |
OUTFILE=$(basename $req) | |
printf "%s " "$OUTFILE" >> ./reqfile.txt | |
HOSTNAME=$(printf "%s\n" "$req" | sed -ne 's,^https://\([^/:]*\).*,\1,p') | |
HOSTPORT=$(printf "%s\n" "$req" | sed -ne 's,^https://[^:/]*:\([^/]*\).*,\1,p') | |
done | |
reqpaths=() | |
for req in $REQUESTS | |
do | |
reqpaths=("${reqpaths[@]}" "$(basename $req)") | |
HOSTNAME=$(printf "%s\n" "$req" | sed -ne 's,^https://\([^/:]*\).*,\1,p') | |
HOSTPORT=$(printf "%s\n" "$req" | sed -ne 's,^https://[^:/]*:\([^/]*\).*,\1,p') | |
done | |
printf "%s\n" "${reqpaths[*]}" > ./reqfile.txt |
Though (in the unlikely case it matters), this version appends a newline rather than a space after the last request path list element.
Yet another version could simply redirect the entire "for" loop, rather than each printf by using done > reqfile.txt
This pull request is ready to merge |
To run the chacha20 test in interop we need to: 1) negotiate an hq-interop alpn 2) only use chacha 20 Item 1 requires the use of quic-hq-interop, the latter requires this change Reviewed-by: Viktor Dukhovni <[email protected]> Reviewed-by: Tomas Mraz <[email protected]> (Merged from #25528)
Need to update the docker interop container to use the quic-hq-interop client so that the right alpn is negotiated for chacha20 testing Reviewed-by: Viktor Dukhovni <[email protected]> Reviewed-by: Tomas Mraz <[email protected]> (Merged from #25528)
The multiplexing test works on local runs, but appears to be failing in CI, possibly due to some environmental limitation (the test generates a large list of requests in an environment variable), leading to not sending all the requests needed. Disable the test for now, and look to re-enable it after release when we can appropriately diagnose the problem Reviewed-by: Viktor Dukhovni <[email protected]> Reviewed-by: Tomas Mraz <[email protected]> (Merged from #25528)
Co-authored-by: Viktor Dukhovni <[email protected]> Reviewed-by: Viktor Dukhovni <[email protected]> Reviewed-by: Tomas Mraz <[email protected]> (Merged from #25528)
Merged to the master branch. Thank you. |
We have 4 remaining interop tests that are currently failing
chacha20 fails against some servers because those servers do not support the use of an h3 alpn, and the client side setup uses curl which only supports an h3 alpn. Convert the test to use quic-hq-interop with support for cipher selection to make this universally compatible
the multiplexing tests fails against the mvfst server for an unkown reason. It works in a local container environment, but aborts sending requests early in CI (possibly due to some environmental limitation). Disable the test for now, and re-enable once we fully understand the root cause
Checklist