Filippo Giunchedi has submitted this change and it was merged. (
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.py
M modules/webperf/files/navtiming_ua_data.yaml
2 files changed, 8 insertions(+), 1 deletion(-)
Approvals:
jenkins-bot: Verified
Gilles: Looks good to me, but someone else must approve
Filippo Giunchedi: Looks good to me, approved
diff --git a/modules/webperf/files/navtiming.py
b/modules/webperf/files/navtiming.py
index 6b75277..62ab271 100755
--- a/modules/webperf/files/navtiming.py
+++ b/modules/webperf/files/navtiming.py
@@ -121,7 +121,7 @@
"""
ua_obj = json.loads(ua)
- browser_family = "Other"
+ browser_family = 'Other'
version = ua_obj['browser_major']
# Chrome for iOS
@@ -196,6 +196,11 @@
browser_family == 'Other'
version = '_'
+ # Catch partial ua-parser result (T176149)
+ if version is None:
+ browser_family = 'Other'
+ version = '_'
+
return (browser_family, version)
diff --git a/modules/webperf/files/navtiming_ua_data.yaml
b/modules/webperf/files/navtiming_ua_data.yaml
index 2c9a9ba..51dde30 100644
--- a/modules/webperf/files/navtiming_ua_data.yaml
+++ b/modules/webperf/files/navtiming_ua_data.yaml
@@ -136,3 +136,5 @@
- '{"browser_major":"1","browser_minor": "0",
"os_family":"Other","os_major":"-","device_family":"Other","browser_family":"SeaMonkey","os_minor":"-","wmf_app_version":"-"}'
- '{"browser_major":"99","browser_minor": "0",
"os_family":"Android","os_major":"7","device_family":"XT1650","browser_family":"Facebook","os_minor":"0","wmf_app_version":"-"}'
- '{"os_minor": null, "browser_minor": "0", "os_major": null,
"device_family": "Other", "os_family": "Windows Vista", "wmf_app_version": "-",
"browser_major": null, "browser_family": "Other"}'
+ - '{"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}'
+ - '{"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}'
--
To view, visit https://gerrit.wikimedia.org/r/379820
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: merged
Gerrit-Change-Id: I9e515db219775eb248af49571b6bec004b9cd613
Gerrit-PatchSet: 10
Gerrit-Project: operations/puppet
Gerrit-Branch: production
Gerrit-Owner: Krinkle <[email protected]>
Gerrit-Reviewer: Filippo Giunchedi <[email protected]>
Gerrit-Reviewer: Gilles <[email protected]>
Gerrit-Reviewer: Krinkle <[email protected]>
Gerrit-Reviewer: jenkins-bot <>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits