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

Reply via email to