Ottomata has submitted this change and it was merged. ( 
https://gerrit.wikimedia.org/r/389861 )

Change subject: Add exception guard for json parsing in eventlogging mysql 
filter
......................................................................


Add exception guard for json parsing in eventlogging mysql filter

This is temporary to help with transition as part of T179625.
This will be removed in https://gerrit.wikimedia.org/r/#/c/389722/ anyway.

Bug: T179625
Change-Id: I5313147c8520556ecd34c389367e785ea37d959d
---
M modules/eventlogging/files/filters.py
1 file changed, 13 insertions(+), 1 deletion(-)

Approvals:
  Ottomata: Looks good to me, approved
  jenkins-bot: Verified



diff --git a/modules/eventlogging/files/filters.py 
b/modules/eventlogging/files/filters.py
index e411a89..9ad0fe2 100644
--- a/modules/eventlogging/files/filters.py
+++ b/modules/eventlogging/files/filters.py
@@ -1,4 +1,5 @@
 import json
+import logging
 
 
 def should_insert_event(e):
@@ -11,7 +12,16 @@
     if 'userAgent' not in e:
         return True
 
-    user_agent_dict = json.loads(e['userAgent'])
+    if isinstance(e['userAgent'], dict):
+        user_agent_dict = e['userAgent']
+    else:
+        try:
+            user_agent_dict = json.loads(e['userAgent'])
+        except Exception as ex:
+            logging.warn('userAgent is a {}.  Skipping insertion. userAgent: 
{}. ({})'.format(
+                type(e['userAgent']), e['userAgent'], ex
+            ))
+            return False
 
     is_bot = user_agent_dict.get('is_bot', False)
     is_mediawiki = user_agent_dict.get('is_mediawiki', False)
@@ -20,4 +30,6 @@
     if is_bot and not is_mediawiki:
         return False
     else:
+        if isinstance(e['userAgent'], dict):
+            e['userAgent'] = json.dumps(e['userAgent'])
         return True

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

Gerrit-MessageType: merged
Gerrit-Change-Id: I5313147c8520556ecd34c389367e785ea37d959d
Gerrit-PatchSet: 3
Gerrit-Project: operations/puppet
Gerrit-Branch: production
Gerrit-Owner: Ottomata <[email protected]>
Gerrit-Reviewer: Ottomata <[email protected]>
Gerrit-Reviewer: Volans <[email protected]>
Gerrit-Reviewer: jenkins-bot <>

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

Reply via email to