[19:19:00] If an article has a deprecated link with a #-selector like https://en.wikipedia.org/wiki/Covariance_matrix#As_a_linear_operator and the heading that the # specifies has disappeared, does the article with the deprecated link also disappear from the target article's Links Here page? [19:20:03] I don't see https://en.wikipedia.org/wiki/Kernel_principal_component_analysis listed on https://en.wikipedia.org/wiki/Special:WhatLinksHere/Covariance_matrix [19:20:41] ... [19:21:15] Well nevermind, just figured out to request all the results. [19:31:37] Updated the article so the link works as intended... [23:17:00] Hello, I have a question / observation about Wikipedia and HTTP/2 [23:17:41] I went to the following article in Safari 12.1.1 on macOS and the CSS did not load: https://en.wikipedia.org/wiki/Ford_C-Max [23:18:13] it seems the following CSS did not load: https://en.wikipedia.org/w/load.php?lang=en&modules=ext.cite.styles%7Cext.uls.interlanguage%7Cext.visualEditor.desktopArticleTarget.noscript%7Cext.wikimediaBadges%7Cjquery.makeCollapsible.styles%7Cmediawiki.legacy.commonPrint%2Cshared%7Cmediawiki.page.gallery.styles%7Cmediawiki.skinning.interface%7Cmediawiki.toc.styles%7Cskins.vector.styles%7Cwikibase.client.init&only=styles&skin= [23:18:21] shortened: https://preview.tinyurl.com/yxx4blmr [23:18:36] Safari gave an error about "NSPOSIXErrorDomain:100" [23:18:47] this seems to be something to do with HTTP/2 [23:19:08] trying the URL with cURL on the macOS CLI I get: [23:19:11] $ curl 'https://en.wikipedia.org/w/load.php?lang=en&modules=ext.cite.styles%7Cext.uls.interlanguage%7Cext.visualEditor.desktopArticleTarget.noscript%7Cext.wikimediaBadges%7Cjquery.makeCollapsible.styles%7Cmediawiki.legacy.commonPrint%2Cshared%7Cmediawiki.page.gallery.styles%7Cmediawiki.skinning.interface%7Cmediawiki.toc.styles%7Cskins.vector.styles%7Cwikibase.client.init&only=styles&skin=vector' [23:19:11] curl: (92) HTTP/2 stream 1 was not closed cleanly: PROTOCOL_ERROR (err 1) [23:19:35] however, forcing HTTP/1.1 works: [23:19:37] $ curl --http1.1 'https://en.wikipedia.org/w/load.php?lang=en&modules=ext.cite.styles%7Cext.uls.interlanguage%7Cext.visualEditor.desktopArticleTarget.noscript%7Cext.wikimediaBadges%7Cjquery.makeCollapsible.styles%7Cmediawiki.legacy.commonPrint%2Cshared%7Cmediawiki.page.gallery.styles%7Cmediawiki.skinning.interface%7Cmediawiki.toc.styles%7Cskins.vector.styles%7Cwikibase.client.init&only=styles&skin=vector' | file - [23:19:37] % Total % Received % Xferd Average Speed Time Time Time Current [23:19:37] Dload Upload Total Spent Left Speed [23:19:37] 100 45744 100 45744 0 0 138k 0 --:--:-- --:--:-- --:--:-- 139k [23:19:37] /dev/stdin: ASCII text, with very long lines, with no line terminators [23:20:19] the lack of CSS is only for some articles, so I'm thinking that only some of the web servers behind your loadbalancers are doing something with HTTP/2 [23:20:46] is there anyone that can look into this? [23:25:41] The C-Max article now works properly in Safari, but I still get an error from cURL: curl: (92) HTTP/2 stream 1 was not closed cleanly: PROTOCOL_ERROR (err 1) [23:25:50] temp20191117, sounds like it may be worth a phab ticket [23:26:12] okay [23:26:21] might be an nginx http 2 bug [23:27:44] for the record though I can run that curl command that you posted fine without any http/2 protocol error [23:28:05] what version of curl do you have? [23:28:18] curl --version [23:28:18] curl 7.54.0 (x86_64-apple-darwin18.0) libcurl/7.54.0 LibreSSL/2.6.5 zlib/1.2.11 nghttp2/1.24.1 [23:28:18] Protocols: dict file ftp ftps gopher http https imap imaps ldap ldaps pop3 pop3s rtsp smb smbs smtp smtps telnet tftp [23:28:18] Features: AsynchDNS IPv6 Largefile GSS-API Kerberos SPNEGO NTLM NTLM_WB SSL libz HTTP2 UnixSockets HTTPS-proxy [23:28:25] this is on macOS 10.14.5 [23:28:36] $ which curl [23:28:36] /usr/bin/curl [23:28:51] alex@alex-laptop:~$ curl --version [23:28:51] curl 7.58.0 (x86_64-pc-linux-gnu) libcurl/7.58.0 OpenSSL/1.1.1 zlib/1.2.11 libidn2/2.0.4 libpsl/0.19.1 (+libidn2/2.0.4) nghttp2/1.30.0 librtmp/2.3 [23:28:51] Release-Date: 2018-01-24 [23:29:32] different versions of nghttp2 [23:31:05] Interesting: the cURL I have from MacPorts works [23:31:10] $ /private/opt/local/bin/curl 'https://en.wikipedia.org/w/load.php?lang=en&modules=ext.cite.styles%7Cext.uls.interlanguage%7Cext.visualEditor.desktopArticleTarget.noscript%7Cext.wikimediaBadges%7Cjquery.makeCollapsible.styles%7Cmediawiki.legacy.commonPrint%2Cshared%7Cmediawiki.page.gallery.styles%7Cmediawiki.skinning.interface%7Cmediawiki.toc.styles%7Cskins.vector.styles%7Cwikibase.client.init&only=styles&skin=vector' | [23:31:10] % Total % Received % Xferd Average Speed Time Time Time Current [23:31:10] Dload Upload Total Spent Left Speed [23:31:10] 100 45744 100 45744 0 0 148k 0 --:--:-- --:--:-- --:--:-- 148k [23:31:10] /dev/stdin: ASCII text, with very long lines, with no line terminators [23:31:18] $ /private/opt/local/bin/curl --version [23:31:18] curl 7.64.1 (x86_64-apple-darwin18.2.0) libcurl/7.64.1 OpenSSL/1.0.2s zlib/1.2.11 libidn2/2.2.0 libpsl/0.21.0 (+libidn2/2.1.1) [23:31:18] Release-Date: 2019-03-27 [23:31:18] Protocols: dict file ftp ftps gopher http https imap imaps pop3 pop3s rtsp smb smbs smtp smtps telnet tftp [23:31:18] Features: AsynchDNS HTTPS-proxy IDN IPv6 Largefile libz NTLM NTLM_WB PSL SSL TLS-SRP UnixSockets [23:32:17] perhaps an OS-library interaction of some kind? which both Safari and cURL use? [23:32:39] are you sure that one is using HTTP 2? [23:33:07] you're right, it may not be [23:33:14] you can pass --http2 [23:33:32] curl: (1) Unsupported protocol [23:33:37] yeah [23:33:48] so not that then [23:34:05] it'll be defaulting to HTTP/1.1 and that's known to be fine [23:34:40] yeah; found a Stack Overflow question (w/o answers) which sound similar: https://apple.stackexchange.com/questions/374097/ [23:35:36] an upgrade to Safari 13 may fix things, but as a sysadmin I like to know the root-cause 'why' of things breakage. :) [23:35:45] I agree [23:36:36] I'm reading through nghttp2 and curl change logs [23:37:34] compiling an new MacPorts cURL with +http2; it's pulling in nghttp2 as a depdency [23:39:47] so with the following: $/private/opt/local/bin/curl --version [23:39:48] curl 7.67.0 (x86_64-apple-darwin18.6.0) libcurl/7.67.0 OpenSSL/1.1.1d zlib/1.2.11 libidn2/2.3.0 libpsl/0.21.0 (+libidn2/2.1.1) nghttp2/1.40.0 [23:39:48] Release-Date: 2019-11-06 [23:39:48] Protocols: dict file ftp ftps gopher http https imap imaps pop3 pop3s rtsp smb smbs smtp smtps telnet tftp [23:39:48] Features: AsynchDNS HTTP2 HTTPS-proxy IDN IPv6 Largefile libz NTLM NTLM_WB PSL SSL TLS-SRP UnixSockets [23:40:01] I get the error: $ /private/opt/local/bin/curl --http2 'https://en.wikipedia.org/w/load.php?lang=en&modules=ext.cite.styles%7Cext.uls.interlanguage%7Cext.visualEditor.desktopArticleTarget.noscript%7Cext.wikimediaBadges%7Cjquery.makeCollapsible.styles%7Cmediawiki.legacy.commonPrint%2Cshared%7Cmediawiki.page.gallery.styles%7Cmediawiki.skinning.interface%7Cmediawiki.toc.styles%7Cskins.vector.styles%7Cwikibase.client.init&on [23:40:01] % Total % Received % Xferd Average Speed Time Time Time Current [23:40:01] Dload Upload Total Spent Left Speed [23:40:01] 0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0 [23:40:01] curl: (92) HTTP/2 stream 0 was not closed cleanly: PROTOCOL_ERROR (err 1) [23:40:02] /dev/stdin: empty [23:41:41] https://curl.haxx.se/docs/CVE-2018-1000005.html stood out a bit but I don't know enough to know if it's relevant [23:42:00] likely not [23:43:00] oh interesting, curl 7.67 w/ nghttp2/1.40.0 breaks [23:43:14] that's a lot newer than mine [23:43:32] it's the newest AFAICT, compiled from source via MacPorts [23:44:54] It came out November 6 :P [23:46:34] temp20191117, given the stackoverflow link you posted with two other people also running into this, I'd say let's definitely make a phab ticket [23:47:11] some more info from curl debugging options: [23:47:26] it's all fun and games if cURL can't hit load.php but an actual web browser implementation failing to load styles is a bad thing [23:47:41] $ /private/opt/local/bin/curl --http2 -vso /dev/null 'https://en ... [23:47:42] * TCP_NODELAY set [23:47:42] * Connected to en.wikipedia.org (2620:0:861:ed1a::1) port 443 (#0) [23:47:42] * ALPN, offering h2 [23:47:42] * ALPN, offering http/1.1 [23:47:42] * successfully set certificate verify locations: [23:47:42] [blah blah] [23:47:44] > Host: en.wikipedia.org [23:47:45] > user-agent: curl/7.67.0 [23:47:45] > accept: */* [23:47:46] > [23:47:46] { [5 bytes data] [23:47:47] * Connection state changed (MAX_CONCURRENT_STREAMS == 128)! [23:47:47] } [5 bytes data] [23:47:48] * http2 error: Invalid HTTP header field was received: frame type: 1, stream: 1, name: [proxy-connection], value: [keep-alive] [23:47:48] } [5 bytes data] [23:48:17] there's a bot that lurks here and really does not appreciate big pastes [23:48:19] $ /private/opt/local/bin/curl --http2 -vso /dev/null 'https://en ... [23:48:19] * TCP_NODELAY set [23:48:19] * Connected to en.wikipedia.org (2620:0:861:ed1a::1) port 443 (#0) [23:48:19] * ALPN, offering h2 [23:48:19] * ALPN, offering http/1.1 [23:48:20] * successfully set certificate verify locations: [23:48:20] [blah blah] [23:48:22] > Host: en.wikipedia.org [23:48:22] > user-agent: curl/7.67.0 [23:48:22] > accept: */* [23:48:23] > [23:48:24] { [5 bytes data] [23:48:24] * Connection state changed (MAX_CONCURRENT_STREAMS == 128)! [23:48:24] please can you pastebin next time [23:48:25] } [5 bytes data] [23:49:07] it's been a few years since I was last on IRC, and have never been on this channel before [23:49:20] no worries [23:49:25] had to resurrect my Adium setup [23:50:00] anyway, with "curl -v", the following seems interesting: * http2 error: Invalid HTTP header field was received: frame type: 1, stream: 1, name: [proxy-connection], value: [keep-alive] [23:50:06] yeah I was going to say [23:50:11] what's up with that [23:50:23] can you paste the full command? [23:50:47] sure, also, I'm connecting via IPv6, which may or may not be related [23:51:00] sure [23:51:28] command: $ /private/opt/local/bin/curl --http2 -vso /dev/null 'https://en.wikipedia.org/w/load.php?lang=en&modules=ext.cite.styles%7Cext.uls.interlanguage%7Cext.visualEditor.desktopArticleTarget.noscript%7Cext.wikimediaBadges%7Cjquery.makeCollapsible.styles%7Cmediawiki.legacy.commonPrint%2Cshared%7Cmediawiki.page.gallery.styles%7Cmediawiki.skinning.interface%7Cmediawiki.toc.styles%7Cskins.vector.styles%7Cwikibase.client. [23:51:52] sorry I only got up to part way through the modules list, the rest was truncated [23:51:56] please can you pastebin it? [23:51:59] k [23:52:36] https://pastebin.com/ihpY38Hk [23:53:02] oh right, other relevant thing here is this is ATS [23:53:55] so ignore my earlier note earlier about nginx, though this is still probably a client thing [23:54:11] the above is with cURL 7.67 and nghttp/2 1.40: https://pastebin.com/icY3Khhq [23:56:05] https://phabricator.wikimedia.org/source/operations-puppet/browse/production/modules/profile/files/trafficserver/tls.lua$32 [23:59:07] hmmm [23:59:09] temp20191117, https://github.com/nghttp2/nghttp2/issues/887