Page MenuHomePhabricator

PyBal ProxyFetch checks using HTTP/1.0 with https and HTTP/1.1 with plain http
Closed, ResolvedPublic

Description

After adding the restbase-ssl service https://gerrit.wikimedia.org/r/#/c/operations/puppet/+/534462/ in the context of T210411 we have noticed that all ProxyFetch checks were failing:

Sep 09 09:59:39 lvs1016 pybal[22763]: [restbase-https_7443 ProxyFetch] WARN: restbase1019.eqiad.wmnet (disabled/partially up/not pooled): Fetch failed (https://localhost/), 5.419 s

The reason for this is that, according to ats-tls logs on a upload node, PyBal's ProxyFetch checks use HTTP/1.0 when factory.scheme is set to https:

Date:2019-09-09 Time:09:40:38 Client-IP:2001:df2:e500:101:10:132:0:12 HTTPVersion:HTTP/1.0 SSL:1 SSLVersion:TLSv1.2 SSLCipher:ECDHE-ECDSA-CHACHA20-POLY1305 SSLCurve:X25519 ReqMethod:GET RespStatus:200 OriginStatus:200 ReqURL:https://varnishcheck.wikimedia.org/from/pybal BereqURL:GET http://127.0.0.2:3120/from/pybal HTTP/1.0 ReqHeader:User-Agent:Twisted PageGetter ReqHeader:Host:varnishcheck.wikimedia.org

When the check uses plain HTTP, the protocol used is HTTP/1.1 instead:

127.0.0.1 - - [09/Sep/2019:09:50:27 +0000] "GET http://varnishcheck.wikimedia.org/from/pybal HTTP/1.1" 200 40 "-" "Twisted PageGetter"

By default, envoy responds with 426 to HTTP/1.0 requests, making the ProxyFetch checks fail. We can instruct envoy not to do so by setting accept_http_10, but still PyBal's behavior should be fixed.

Related Objects

Event Timeline

Restricted Application added a subscriber: Aklapper. · View Herald Transcript
ema triaged this task as Medium priority.Sep 9 2019, 10:06 AM
ema moved this task from Backlog to LoadBalancer on the Traffic board.

Change 535142 had a related patch set uploaded (by Ema; owner: Ema):
[operations/puppet@production] envoyproxy: accept HTTP/1.0

https://gerrit.wikimedia.org/r/535142

Change 535142 merged by Ema:
[operations/puppet@production] envoyproxy: accept HTTP/1.0

https://gerrit.wikimedia.org/r/535142

BBlack subscribed.

The swap of Traffic for Traffic-Icebox in this ticket's set of tags was based on a bulk action for all such tickets that haven't been updated in 6 months or more. This does not imply any human judgement about the validity or importance of the task, and is simply the first step in a larger task cleanup effort. Further manual triage and/or requests for updates will happen this month for all such tickets. For more detail, have a look at the extended explanation on the main page of Traffic-Icebox . Thank you!

BCornwall claimed this task.