Krinkle has uploaded a new change for review. ( 
https://gerrit.wikimedia.org/r/379820 )

Change subject: webperf: Fix crash when event contains browser_major:null
......................................................................

webperf: Fix crash when event contains browser_major:null

We already support browser_major being null if browser_family
is "Other", but for the others we expect EventLogging's ua-parser
to always return a pair of browser_family and browser_major.

This isn't always the case (possibly due to weird input that is
meant to be classified as Other but is matching a loose family
pattern but failing the version pattern). All properties of
ua-parser output are nullable so we should support that case too.

Add test cases to verify fix.

Bug: T176149
Change-Id: I9e515db219775eb248af49571b6bec004b9cd613
---
M modules/webperf/files/navtiming_fixture.yaml
1 file changed, 4 insertions(+), 0 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/operations/puppet 
refs/changes/20/379820/1

diff --git a/modules/webperf/files/navtiming_fixture.yaml 
b/modules/webperf/files/navtiming_fixture.yaml
index a291ca2..589efeb 100644
--- a/modules/webperf/files/navtiming_fixture.yaml
+++ b/modules/webperf/files/navtiming_fixture.yaml
@@ -34,3 +34,7 @@
 - {"event": {"mediaWikiVersion": "1.30.0-wmf.14", "saveTiming": 1452}, 
"recvFrom": "example", "revision": 1, "schema": "SaveTiming", "seqId": 1, 
"timestamp": 1, "userAgent": "{\"os_minor\": null, \"is_bot\": false, 
\"os_major\": null, \"device_family\": \"Other\", \"os_family\": \"Windows 7\", 
\"browser_minor\": \"0\", \"wmf_app_version\": \"-\", \"browser_major\": 
\"47\", \"browser_family\": \"Opera\", \"is_mediawiki\": false}", "uuid": 
"example", "webHost": "example", "wiki": "example"}
 - {"event": {"action": "view", "dnsLookup": 0, "domComplete": 5513, 
"domInteractive": 715, "isAnon": true, "isHiDPI": true, "isHttp2": true, 
"loadEventEnd": 5899, "loadEventStart": 5513, "mediaWikiLoadComplete": 4920, 
"mediaWikiVersion": "1.30.0-wmf.14", "namespaceId": 1, "originCountry": "GB", 
"originRegion": "ENG", "pageId": 1, "requestStart": 1, "responseEnd": 570, 
"responseStart": 232, "revId": 1}, "recvFrom": "example", "revision": 1, 
"schema": "NavigationTiming", "seqId": 1, "timestamp": 1, "userAgent": 
"{\"os_minor\": \"3\", \"is_bot\": false, \"os_major\": \"9\", 
\"device_family\": \"iPhone\", \"os_family\": \"iOS\", \"browser_minor\": 
\"2\", \"wmf_app_version\": \"-\", \"browser_major\": \"8\", 
\"browser_family\": \"Firefox iOS\", \"is_mediawiki\": false}", "uuid": 
"example", "webHost": "example", "wiki": "example"}
 - {"event": {"mediaWikiVersion": "1.30.0-wmf.14", "saveTiming": 627}, 
"recvFrom": "example", "revision": 1, "schema": "SaveTiming", "seqId": 1, 
"timestamp": 1, "userAgent": "{\"os_minor\": null, \"is_bot\": false, 
\"os_major\": null, \"device_family\": \"Other\", \"os_family\": \"Windows 7\", 
\"browser_minor\": \"0\", \"wmf_app_version\": \"-\", \"browser_major\": 
\"60\", \"browser_family\": \"Chrome\", \"is_mediawiki\": false}", "uuid": 
"example", "webHost": "example", "wiki": "example"}
+# browser_family: Safari, browser_major: null
+- {"event": {"action": "view", "connectEnd": 0, "connectStart": 0, 
"dnsLookup": 0, "domComplete": 292, "domInteractive": 195, "fetchStart": 0, 
"isAnon": true, "isHiDPI": false, "isHttp2": false, "loadEventEnd": 296, 
"loadEventStart": 292, "mediaWikiLoadComplete": 533, "mediaWikiVersion": 
"1.30.0-wmf.19", "namespaceId": 1, "originCountry": "DE", "originRegion": "", 
"pageId": 1, "requestStart": 0, "responseEnd": 154, "responseStart": 0, 
"revId": 1, "unload": 0}, "recvFrom": "example", "revision": 1, "schema": 
"NavigationTiming", "seqId": 1, "timestamp": 1, "userAgent": "{\"os_minor\": 
null, \"is_bot\": false, \"os_major\": null, \"device_family\": \"Other\", 
\"os_family\": \"Windows 8\", \"browser_minor\": null, \"wmf_app_version\": 
\"-\", \"browser_major\": null, \"browser_family\": \"Safari\", 
\"is_mediawiki\": false}", "uuid": "example", "webHost": "example", "wiki": 
"example"}
+# browser_family: Other, browser_major: null
+- {"event": {"action": "view", "connectEnd": 1200, "connectStart": 293, 
"dnsLookup": 88, "domComplete": 11190, "domInteractive": 4076, "fetchStart": 
193, "isAnon": true, "isHiDPI": true, "isHttp2": true, "loadEventEnd": 11523, 
"loadEventStart": 11190, "mediaWikiLoadComplete": 7204, "mediaWikiVersion": 
"1.30.0-wmf.19", "namespaceId": 1, "originCountry": "IN", "originRegion": "MH", 
"pageId": 1, "requestStart": 1202, "responseEnd": 2621, "responseStart": 1617, 
"revId": 1, "secureConnectionStart": 708}, "recvFrom": "example", "revision": 
1, "schema": "NavigationTiming", "seqId": 1, "timestamp": 1, "userAgent": 
"{\"os_minor\": null, \"is_bot\": false, \"os_major\": null, \"device_family\": 
\"Other\", \"os_family\": \"Other\", \"browser_minor\": null, 
\"wmf_app_version\": \"-\", \"browser_major\": null, \"browser_family\": 
\"Other\", \"is_mediawiki\": false}", "uuid": "example", "webHost": "example", 
"wiki": "example"}

-- 
To view, visit https://gerrit.wikimedia.org/r/379820
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I9e515db219775eb248af49571b6bec004b9cd613
Gerrit-PatchSet: 1
Gerrit-Project: operations/puppet
Gerrit-Branch: production
Gerrit-Owner: Krinkle <[email protected]>

_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to