This changes where the IsUpgradeDowngradeEndlessLoop check triggers.
Before this patch, it triggered during the redirect caused by the https
upgrade. With this patch, it triggers during the downgrade for http
redirects. META and JS redirect are still detected during upgrade.
This should be fixed as a follow up (See Bug 1896691).
Downgrade in this context means same url, except with the scheme http
instead of https.
Different query parameters normally lead to different responses by web servers.
Don't consider the '#ref' part of the uri, because it doesn't get send to
the server and therefore can't change the server response.
We can't use the redirect chain anymore, because the query parameters
are trimmed since Bug 1715785.
This also removes the config option dom.security.https_only_check_path_upgrade_downgrade_endless_loop,
because it adds unnecessary complexity. Removing it for this patch is
easier.
https-only, https-first and httpssvc_https_upgrade tests had to be
modified, because they depended on the incorrect handling of query
strings in loop detection.
Differential Revision: https://phabricator.services.mozilla.com/D193672
This changes where the IsUpgradeDowngradeEndlessLoop check triggers.
Before this patch, it triggered during the redirect caused by the https
upgrade. With this patch, it triggers during the downgrade for http
redirects. META and JS redirect are still detected during upgrade.
This should be fixed as a follow up (See Bug 1896691).
Downgrade in this context means same url, except with the scheme http
instead of https.
Different query parameters normally lead to different responses by web servers.
Don't consider the '#ref' part of the uri, because it doesn't get send to
the server and therefore can't change the server response.
We can't use the redirect chain anymore, because the query parameters
are trimmed since Bug 1715785.
This also removes the config option dom.security.https_only_check_path_upgrade_downgrade_endless_loop,
because it adds unnecessary complexity. Removing it for this patch is
easier.
https-only, https-first and httpssvc_https_upgrade tests had to be
modified, because they depended on the incorrect handling of query
strings in loop detection.
Differential Revision: https://phabricator.services.mozilla.com/D193672
harness_timeout should be assigned to kwargs for it to have any effect.
... and fix the exponential backoff waiter, to wait for at most 15
seconds between checks. Otherwise a timed-out test could be kept
running for several minutes longer, which is a waste of time.
Differential Revision: https://phabricator.services.mozilla.com/D212124
Since use_multiprocess is no longer used, do not set or pass it from mozdevice.
Since the launch_activity/launch_service e10s optional parameter becomes unused, stop passing it also.
Differential Revision: https://phabricator.services.mozilla.com/D211464
When the http2 server prints a bunch of stuff and dies, the loop doesn't
actually have the time to read multiple lines before poll returns
something, breaking the loop... leaving the log without possibly vital
information.
Unfortunately, since killing the process in stop can also lead to
the threads being blocked on readline (see bug 1863675), we also need to
stop joining the threads. If the process terminates normally, the loop
will break itself when the pipe returns nothing, and the threads will
exit on their own.
Differential Revision: https://phabricator.services.mozilla.com/D195503
Spawned nodejs servers sometimes print output to stdout or stderr.
While it's not strictly necessary to display, it's sometimes useful for
debugging, but it's problematic that we only dump the output when killing
the node server.
After landing D189212 this becomes even more problematic, as killing the
process via os.killpg means the file descriptors are already closed.
This patch makes it so for each started server we also spawn a new thread
that reads from stdout and stderr. This way the output is present in the
logs at the correct time.
Depends on D189212
Differential Revision: https://phabricator.services.mozilla.com/D189213
Added the start_new_session=True argument to Popen so that the node instance gets its own pgid.
On POSIX platforms the server shutdown will now be done using os.killpg() instead of process.terminate()
Differential Revision: https://phabricator.services.mozilla.com/D189212