Bug 1407383 - [wdspec] Remove usage of mozlog to prevent process lock. draft
authorHenrik Skupin <mail@hskupin.info>
Mon, 05 Mar 2018 22:32:57 +0100
changeset 763646 1073d642eb2bc4c5255a713328eb9f882168c29d
parent 763586 72cbd3ccd9be2f4e65d40fd5bff4899d6e20b062
child 763647 aa908b155dc8ca9812cd08ddff2608f43016984d
push id101504
push userbmo:hskupin@gmail.com
push dateTue, 06 Mar 2018 11:14:19 +0000
bugs1407383
milestone60.0a1
Bug 1407383 - [wdspec] Remove usage of mozlog to prevent process lock. Due to misbehavior of the threading module in how threads are forked, the mozlog module and specifically the Lock instance in StructuredLogger can cause a hang of random duration when trying to require the lock. Given that mozlog isn't used anywhere workaround this problem by removing all instances of it. MozReview-Commit-ID: 10yrUIb0XW4
testing/web-platform/meta/MANIFEST.json
testing/web-platform/tests/lint.whitelist
testing/web-platform/tests/tools/webdriver/webdriver/client.py
testing/web-platform/tests/webdriver/tests/support/fixtures.py
--- a/testing/web-platform/meta/MANIFEST.json
+++ b/testing/web-platform/meta/MANIFEST.json
@@ -385646,17 +385646,17 @@
    "f8af4287f3b0f6925a2a6c5c75b3788e24de1680",
    "support"
   ],
   "./config.default.json": [
    "403d365196f6fe2c631d27fe6042e3114d204016",
    "support"
   ],
   "./lint.whitelist": [
-   "fc1e09fcc92c3f54ed75fe93681c5ff0a53d25a4",
+   "2292c83ea0bd1432a7ba43e86a6b9f9fa8836e23",
    "support"
   ],
   "./serve.py": [
    "0efa39b1f26f86d73f2fce4f9e46003d62057b41",
    "support"
   ],
   "./server-side.md": [
    "c51b17fbac2a2e3121dc74f7badbd2873ce92f61",
@@ -593062,17 +593062,17 @@
    "5a31a3917a5157516c10951a3b3d5ffb43b992d9",
    "support"
   ],
   "webdriver/tests/support/asserts.py": [
    "1b839404daaca1d059cba98377edb91691ef7e82",
    "support"
   ],
   "webdriver/tests/support/fixtures.py": [
-   "b9b62366cd60ae7167ad2d0efdf3790ae2e780a4",
+   "ff5b6ca84a42c849b018b512af6987dc9e317cc5",
    "support"
   ],
   "webdriver/tests/support/http_request.py": [
    "cb40c781fea2280b98135522def5e6a116d7b946",
    "support"
   ],
   "webdriver/tests/support/inline.py": [
    "ffabd6a12d6e7928176fa00702214e0c8e0a25d7",
--- a/testing/web-platform/tests/lint.whitelist
+++ b/testing/web-platform/tests/lint.whitelist
@@ -105,19 +105,20 @@ CR AT EOL: html/form-elements/the-textar
 CR AT EOL: html/input/the-placeholder-attribute/multiline-cr.html
 CR AT EOL: html/input/the-placeholder-attribute/multiline-crlf.html
 CR AT EOL: html/semantics/embedded-content/the-canvas-element/size.attributes.parse.whitespace.html
 CR AT EOL: webvtt/parsing/file-parsing/tests/support/newlines.vtt
 
 # Intentional use of tabs
 INDENT TABS: html/semantics/embedded-content/the-canvas-element/size.attributes.parse.whitespace.html
 
-# Test generation files containing print statements
+# Intentional use of print statements
 PRINT STATEMENT: dom/nodes/Document-createElement-namespace-tests/generate.py
 PRINT STATEMENT: encrypted-media/polyfill/make-polyfill-tests.py
+PRINT STATEMENT: webdriver/tests/support/fixtures.py
 
 # semi-legitimate use of console.*
 CONSOLE: console/*
 CONSOLE: resources/check-layout-th.js
 CONSOLE: resources/chromium/*
 CONSOLE: resources/idlharness.js
 CONSOLE: streams/resources/test-utils.js
 CONSOLE: service-workers/service-worker/resources/navigation-redirect-other-origin.html
--- a/testing/web-platform/tests/tools/webdriver/webdriver/client.py
+++ b/testing/web-platform/tests/tools/webdriver/webdriver/client.py
@@ -1,20 +1,16 @@
 import urlparse
 
 import error
 import protocol
 import transport
 
 from six import string_types
 
-from mozlog import get_default_logger
-
-logger = get_default_logger()
-
 
 def command(func):
     def inner(self, *args, **kwargs):
         if hasattr(self, "session"):
             session = self.session
         else:
             session = self
 
--- a/testing/web-platform/tests/webdriver/tests/support/fixtures.py
+++ b/testing/web-platform/tests/webdriver/tests/support/fixtures.py
@@ -1,31 +1,30 @@
+from __future__ import print_function
+
 import json
 import os
 import urlparse
 import re
 
 import webdriver
-import mozlog
 
 from tests.support.http_request import HTTPRequest
 from tests.support.wait import wait
 
 default_host = "http://127.0.0.1"
 default_port = "4444"
 
-logger = mozlog.get_default_logger()
-
 
 def ignore_exceptions(f):
     def inner(*args, **kwargs):
         try:
             return f(*args, **kwargs)
         except webdriver.error.WebDriverException as e:
-            logger.warning("Ignored exception %s" % e)
+            print("Ignored exception %s" % e, file=sys.stderr)
     inner.__name__ = f.__name__
     return inner
 
 
 @ignore_exceptions
 def _ensure_valid_window(session):
     """If current window is not open anymore, ensure to have a valid
     one selected.