Closed
Bug 1493297
Opened 6 years ago
Closed 6 years ago
Intermittent /webdriver/tests/element_send_keys/send_keys.py | test_invalid_text_type[None] - setup error
Categories
(Remote Protocol :: Marionette, defect, P5)
Tracking
(Not tracked)
RESOLVED
INCOMPLETE
People
(Reporter: intermittent-bug-filer, Unassigned)
References
Details
(Keywords: intermittent-failure)
Filed by: cbrindusan [at] mozilla.com
https://treeherder.mozilla.org/logviewer.html#?job_id=200856401&repo=autoland
https://queue.taskcluster.net/v1/task/DrmBOEqmQQmHEkbta-ETcg/runs/0/artifacts/public/logs/live_backing.log
14:22:42 INFO - STDOUT: ==================================== ERRORS ====================================
14:22:42 INFO - STDOUT: ________________ ERROR at setup of test_invalid_text_type[None] ________________
14:22:42 INFO - PID 1887 | 1537564962606 webdriver::server DEBUG <- 200 OK {"value":null}
14:22:42 INFO - STDOUT: capabilities = {}
14:22:42 INFO - STDOUT: configuration = {'capabilities': {'moz:firefoxOptions': {'binary': '/Users/cltbld/tasks/task_1537564694/build/application/Firefox Nigh...b-platform.test,www.web-platform.test,xn--n8j6ds53lwwkrqhv28a.web-platform.test'}}}, 'host': '127.0.0.1', 'port': 4444}
14:22:42 INFO - STDOUT: request = <SubRequest 'session' for <Function 'test_invalid_text_type[None]'>>
14:22:42 INFO - STDOUT: @pytest.fixture(scope="function")
14:22:42 INFO - STDOUT: def session(capabilities, configuration, request):
14:22:42 INFO - STDOUT: """Create and start a session for a test that does not itself test session creation.
14:22:42 INFO - STDOUT:
14:22:42 INFO - STDOUT: By default the session will stay open after each test, but we always try to start a
14:22:42 INFO - STDOUT: new one and assume that if that fails there is already a valid session. This makes it
14:22:42 INFO - STDOUT: possible to recover from some errors that might leave the session in a bad state, but
14:22:42 INFO - STDOUT: does not demand that we start a new session per test."""
14:22:42 INFO - STDOUT: global _current_session
14:22:42 INFO - STDOUT:
14:22:42 INFO - STDOUT: # Update configuration capabilities with custom ones from the
14:22:42 INFO - STDOUT: # capabilities fixture, which can be set by tests
14:22:42 INFO - STDOUT: caps = copy.deepcopy(configuration["capabilities"])
14:22:42 INFO - STDOUT: caps.update(capabilities)
14:22:42 INFO - STDOUT: caps = {"alwaysMatch": caps}
14:22:42 INFO - STDOUT:
14:22:42 INFO - STDOUT: # If there is a session with different capabilities active, end it now
14:22:42 INFO - STDOUT: if _current_session is not None and (
14:22:42 INFO - STDOUT: caps != _current_session.requested_capabilities):
14:22:42 INFO - STDOUT: _current_session.end()
14:22:42 INFO - STDOUT: _current_session = None
14:22:42 INFO - STDOUT:
14:22:42 INFO - STDOUT: if _current_session is None:
14:22:42 INFO - STDOUT: _current_session = webdriver.Session(
14:22:42 INFO - STDOUT: configuration["host"],
14:22:42 INFO - STDOUT: configuration["port"],
14:22:42 INFO - STDOUT: capabilities=caps)
14:22:42 INFO - STDOUT: try:
14:22:42 INFO - STDOUT: _current_session.start()
14:22:42 INFO - STDOUT: except webdriver.error.SessionNotCreatedException:
14:22:42 INFO - STDOUT: if not _current_session.session_id:
14:22:42 INFO - STDOUT: raise
14:22:42 INFO - STDOUT:
14:22:42 INFO - STDOUT: # Enforce a fixed default window size
14:22:42 INFO - STDOUT: > _current_session.window.size = defaults.WINDOW_SIZE
14:22:42 INFO - STDOUT: capabilities = {}
14:22:42 INFO - STDOUT: caps = {'alwaysMatch': {'moz:firefoxOptions': {'binary': '/Users/cltbld/tasks/task_1537564694/build/application/Firefox Night...w1.not-web-platform.test,www.not-web-platform.test,www.web-platform.test,xn--n8j6ds53lwwkrqhv28a.web-platform.test'}}}}
14:22:42 INFO - STDOUT: configuration = {'capabilities': {'moz:firefoxOptions': {'binary': '/Users/cltbld/tasks/task_1537564694/build/application/Firefox Nigh...b-platform.test,www.web-platform.test,xn--n8j6ds53lwwkrqhv28a.web-platform.test'}}}, 'host': '127.0.0.1', 'port': 4444}
14:22:42 INFO - STDOUT: request = <SubRequest 'session' for <Function 'test_invalid_text_type[None]'>>
14:22:42 INFO - STDOUT: tests/web-platform/tests/webdriver/tests/conftest.py
14:22:42 INFO - STDOUT: :156:
14:22:42 INFO - STDOUT: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
14:22:42 INFO - STDOUT: tests/web-platform/tests/tools/webdriver/webdriver/client.py
14:22:42 INFO - STDOUT: :20: in inner
14:22:42 INFO - STDOUT: return func(self, *args, **kwargs)
14:22:42 INFO - STDOUT: tests/web-platform/tests/tools/webdriver/webdriver/client.py
14:22:42 INFO - STDOUT: :259: in size
14:22:42 INFO - STDOUT: self.session.send_session_command("POST", "window/rect", body)
14:22:42 INFO - STDOUT: tests/web-platform/tests/tools/webdriver/webdriver/client.py
14:22:42 INFO - STDOUT: :509: in send_session_command
14:22:42 INFO - STDOUT: return self.send_command(method, url, body)
14:22:42 INFO - STDOUT: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
14:22:42 INFO - STDOUT: self = <Session 6c2cfdad-d58e-0245-be55-d693070f2414>, method = 'POST'
14:22:42 INFO - STDOUT: url = 'session/6c2cfdad-d58e-0245-be55-d693070f2414/window/rect'
14:22:42 INFO - STDOUT: body = {'height': 600, 'width': 800}
14:22:42 INFO - STDOUT: def send_command(self, method, url, body=None):
14:22:42 INFO - STDOUT: """
14:22:42 INFO - STDOUT: Send a command to the remote end and validate its success.
14:22:42 INFO - STDOUT:
14:22:42 INFO - STDOUT: :param method: HTTP method to use in request.
14:22:42 INFO - STDOUT: :param uri: "Command part" of the HTTP request URL,
14:22:42 INFO - STDOUT: e.g. `window/rect`.
14:22:42 INFO - STDOUT: :param body: Optional body of the HTTP request.
14:22:42 INFO - STDOUT:
14:22:42 INFO - STDOUT: :return: `None` if the HTTP response body was empty, otherwise
14:22:42 INFO - STDOUT: the `value` field returned after parsing the response
14:22:42 INFO - STDOUT: body as JSON.
14:22:42 INFO - STDOUT:
14:22:42 INFO - STDOUT: :raises error.WebDriverException: If the remote end returns
14:22:42 INFO - STDOUT: an error.
14:22:42 INFO - STDOUT: :raises ValueError: If the response body does not contain a
14:22:42 INFO - STDOUT: `value` key.
14:22:42 INFO - STDOUT: """
14:22:42 INFO - STDOUT: response = self.transport.send(
14:22:42 INFO - STDOUT: method, url, body,
14:22:42 INFO - STDOUT: encoder=protocol.Encoder, decoder=protocol.Decoder,
14:22:42 INFO - STDOUT: session=self)
14:22:42 INFO - STDOUT:
14:22:42 INFO - STDOUT: if response.status != 200:
14:22:42 INFO - STDOUT: err = error.from_response(response)
14:22:42 INFO - STDOUT:
14:22:42 INFO - STDOUT: if isinstance(err, error.InvalidSessionIdException):
14:22:42 INFO - STDOUT: # The driver could have already been deleted the session.
14:22:42 INFO - STDOUT: self.session_id = None
14:22:42 INFO - STDOUT:
14:22:42 INFO - STDOUT: > raise err
14:22:42 INFO - STDOUT: E UnknownErrorException: unknown error (500): Failed to decode response from marionette
14:22:42 INFO - STDOUT: body = {'height': 600, 'width': 800}
14:22:42 INFO - STDOUT: err = <UnknownErrorException http_status=500>
14:22:42 INFO - STDOUT: method = 'POST'
14:22:42 INFO - STDOUT: response = <Response status=500 error=<UnknownErrorException http_status=500>>
14:22:42 INFO - STDOUT: self = <Session 6c2cfdad-d58e-0245-be55-d693070f2414>
14:22:42 INFO - STDOUT: url = 'session/6c2cfdad-d58e-0245-be55-d693070f2414/window/rect'
14:22:42 INFO - STDOUT: tests/web-platform/tests/tools/webdriver/webdriver/client.py
14:22:42 INFO - STDOUT: :473: UnknownErrorException
14:22:42 INFO - STDOUT: _________________ ERROR at setup of test_invalid_text_type[1] __________________
14:22:42 INFO - STDOUT: capabilities = {}
14:22:42 INFO - STDOUT: configuration = {'capabilities': {'moz:firefoxOptions': {'binary': '/Users/cltbld/tasks/task_1537564694/build/application/Firefox Nigh...b-platform.test,www.web-platform.test,xn--n8j6ds53lwwkrqhv28a.web-platform.test'}}}, 'host': '127.0.0.1', 'port': 4444}
14:22:42 INFO - STDOUT: request = <SubRequest 'session' for <Function 'test_invalid_text_type[1]'>>
14:22:42 INFO - STDOUT: @pytest.fixture(scope="function")
14:22:42 INFO - STDOUT: def session(capabilities, configuration, request):
14:22:42 INFO - STDOUT: """Create and start a session for a test that does not itself test session creation.
14:22:42 INFO - STDOUT:
14:22:42 INFO - STDOUT: By default the session will stay open after each test, but we always try to start a
14:22:42 INFO - STDOUT: new one and assume that if that fails there is already a valid session. This makes it
14:22:42 INFO - STDOUT: possible to recover from some errors that might leave the session in a bad state, but
14:22:42 INFO - STDOUT: does not demand that we start a new session per test."""
14:22:42 INFO - STDOUT: global _current_session
14:22:42 INFO - STDOUT:
14:22:42 INFO - STDOUT: # Update configuration capabilities with custom ones from the
14:22:42 INFO - STDOUT: # capabilities fixture, which can be set by tests
14:22:42 INFO - STDOUT: caps = copy.deepcopy(configuration["capabilities"])
14:22:42 INFO - STDOUT: caps.update(capabilities)
14:22:42 INFO - STDOUT: caps = {"alwaysMatch": caps}
14:22:42 INFO - STDOUT:
14:22:42 INFO - STDOUT: # If there is a session with different capabilities active, end it now
14:22:42 INFO - STDOUT: if _current_session is not None and (
14:22:42 INFO - STDOUT: caps != _current_session.requested_capabilities):
14:22:42 INFO - STDOUT: _current_session.end()
14:22:42 INFO - STDOUT: _current_session = None
14:22:42 INFO - STDOUT:
14:22:42 INFO - STDOUT: if _current_session is None:
14:22:42 INFO - STDOUT: _current_session = webdriver.Session(
14:22:42 INFO - STDOUT: configuration["host"],
14:22:42 INFO - STDOUT: configuration["port"],
14:22:42 INFO - STDOUT: capabilities=caps)
14:22:42 INFO - STDOUT: try:
14:22:42 INFO - STDOUT: _current_session.start()
14:22:42 INFO - STDOUT: except webdriver.error.SessionNotCreatedException:
14:22:42 INFO - STDOUT: if not _current_session.session_id:
14:22:42 INFO - STDOUT: raise
14:22:42 INFO - STDOUT:
14:22:42 INFO - STDOUT: # Enforce a fixed default window size
14:22:42 INFO - STDOUT: > _current_session.window.size = defaults.WINDOW_SIZE
14:22:42 INFO - STDOUT: capabilities = {}
14:22:42 INFO - STDOUT: caps = {'alwaysMatch': {'moz:firefoxOptions': {'binary': '/Users/cltbld/tasks/task_1537564694/build/application/Firefox Night...w1.not-web-platform.test,www.not-web-platform.test,www.web-platform.test,xn--n8j6ds53lwwkrqhv28a.web-platform.test'}}}}
14:22:42 INFO - STDOUT: configuration = {'capabilities': {'moz:firefoxOptions': {'binary': '/Users/cltbld/tasks/task_1537564694/build/application/Firefox Nigh...b-platform.test,www.web-platform.test,xn--n8j6ds53lwwkrqhv28a.web-platform.test'}}}, 'host': '127.0.0.1', 'port': 4444}
14:22:42 INFO - STDOUT: request = <SubRequest 'session' for <Function 'test_invalid_text_type[1]'>>
14:22:42 INFO - STDOUT: tests/web-platform/tests/webdriver/tests/conftest.py
14:22:42 INFO - STDOUT: :156:
14:22:42 INFO - STDOUT: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
14:22:42 INFO - STDOUT: tests/web-platform/tests/tools/webdriver/webdriver/client.py
14:22:42 INFO - STDOUT: :20: in inner
14:22:42 INFO - STDOUT: return func(self, *args, **kwargs)
14:22:42 INFO - STDOUT: tests/web-platform/tests/tools/webdriver/webdriver/client.py
14:22:42 INFO - STDOUT: :259: in size
14:22:42 INFO - STDOUT: self.session.send_session_command("POST", "window/rect", body)
14:22:42 INFO - STDOUT: tests/web-platform/tests/tools/webdriver/webdriver/client.py
14:22:42 INFO - STDOUT: :509: in send_session_command
14:22:42 INFO - STDOUT: return self.send_command(method, url, body)
14:22:42 INFO - .
14:22:42 INFO - STDOUT: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
14:22:42 INFO - .
14:22:42 INFO - STDOUT: self = <Session (disconnected)>, method = 'POST'
14:22:42 INFO - .
14:22:42 INFO - STDOUT: url = 'session/6c2cfdad-d58e-0245-be55-d693070f2414/window/rect'
14:22:42 INFO - .
14:22:42 INFO - STDOUT: body = {'height': 600, 'width': 800}
14:22:42 INFO - STDOUT: def send_command(self, method, url, body=None):
14:22:42 INFO -
14:22:42 INFO - TEST-PASS | /webdriver/tests/element_send_keys/send_keys.py | test_null_parameter_value
14:22:42 INFO - TEST-PASS | /webdriver/tests/element_send_keys/send_keys.py | test_null_response_value
14:22:42 INFO - TEST-PASS | /webdriver/tests/element_send_keys/send_keys.py | test_no_browsing_context
14:22:42 INFO - TEST-PASS | /webdriver/tests/element_send_keys/send_keys.py | test_invalid_text_type[True]
14:22:42 INFO - TEST-UNEXPECTED-ERROR | /webdriver/tests/element_send_keys/send_keys.py | test_invalid_text_type[None] - setup error
14:22:42 INFO - capabilities = {}
14:22:42 INFO - configuration = {'capabilities': {'moz:firefoxOptions': {'binary': '/Users/cltbld/tasks/task_1537564694/build/application/Firefox Nigh...b-platform.test,www.web-platform.test,xn--n8j6ds53lwwkrqhv28a.web-platform.test'}}}, 'host': '127.0.0.1', 'port': 4444}
14:22:42 INFO - request = <SubRequest 'session' for <Function 'test_invalid_text_type[None]'>>
14:22:42 INFO -
14:22:42 INFO - @pytest.fixture(scope="function")
14:22:42 INFO - def session(capabilities, configuration, request):
14:22:42 INFO - """Create and start a session for a test that does not itself test session creation.
14:22:42 INFO -
14:22:42 INFO - By default the session will stay open after each test, but we always try to start a
14:22:42 INFO - new one and assume that if that fails there is already a valid session. This makes it
14:22:42 INFO - possible to recover from some errors that might leave the session in a bad state, but
14:22:42 INFO - does not demand that we start a new session per test."""
14:22:42 INFO - global _current_session
14:22:42 INFO -
14:22:42 INFO - # Update configuration capabilities with custom ones from the
14:22:42 INFO - # capabilities fixture, which can be set by tests
14:22:42 INFO - caps = copy.deepcopy(configuration["capabilities"])
14:22:42 INFO - caps.update(capabilities)
14:22:42 INFO - caps = {"alwaysMatch": caps}
14:22:42 INFO -
14:22:42 INFO - # If there is a session with different capabilities active, end it now
14:22:42 INFO - if _current_session is not None and (
14:22:42 INFO - caps != _current_session.requested_capabilities):
14:22:42 INFO - _current_session.end()
14:22:42 INFO - _current_session = None
14:22:42 INFO -
14:22:42 INFO - if _current_session is None:
14:22:42 INFO - _current_session = webdriver.Session(
14:22:42 INFO - configuration["host"],
14:22:42 INFO - configuration["port"],
14:22:42 INFO - capabilities=caps)
14:22:42 INFO - try:
14:22:42 INFO - _current_session.start()
14:22:42 INFO - except webdriver.error.SessionNotCreatedException:
14:22:42 INFO - if not _current_session.session_id:
14:22:42 INFO - raise
14:22:42 INFO -
14:22:42 INFO - # Enforce a fixed default window size
14:22:42 INFO - > _current_session.window.size = defaults.WINDOW_SIZE
14:22:42 INFO -
14:22:42 INFO - capabilities = {}
14:22:42 INFO - caps = {'alwaysMatch': {'moz:firefoxOptions': {'binary': '/Users/cltbld/tasks/task_1537564694/build/application/Firefox Night...w1.not-web-platform.test,www.not-web-platform.test,www.web-platform.test,xn--n8j6ds53lwwkrqhv28a.web-platform.test'}}}}
14:22:42 INFO - configuration = {'capabilities': {'moz:firefoxOptions': {'binary': '/Users/cltbld/tasks/task_1537564694/build/application/Firefox Nigh...b-platform.test,www.web-platform.test,xn--n8j6ds53lwwkrqhv28a.web-platform.test'}}}, 'host': '127.0.0.1', 'port': 4444}
14:22:42 INFO - request = <SubRequest 'session' for <Function 'test_invalid_text_type[None]'>>
14:22:42 INFO -
14:22:42 INFO - tests/web-platform/tests/webdriver/tests/conftest.py:156:
14:22:42 INFO - _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
14:22:42 INFO - tests/web-platform/tests/tools/webdriver/webdriver/client.py:20: in inner
14:22:42 INFO - return func(self, *args, **kwargs)
14:22:42 INFO - tests/web-platform/tests/tools/webdriver/webdriver/client.py:259: in size
14:22:42 INFO - self.session.send_session_command("POST", "window/rect", body)
14:22:42 INFO - tests/web-platform/tests/tools/webdriver/webdriver/client.py:509: in send_session_command
14:22:42 INFO - return self.send_command(method, url, body)
14:22:42 INFO - _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
14:22:42 INFO -
14:22:42 INFO - self = <Session 6c2cfdad-d58e-0245-be55-d693070f2414>, method = 'POST'
14:22:42 INFO - url = 'session/6c2cfdad-d58e-0245-be55-d693070f2414/window/rect'
14:22:42 INFO - body = {'height': 600, 'width': 800}
14:22:42 INFO -
14:22:42 INFO - def send_command(self, method, url, body=None):
14:22:42 INFO - """
14:22:42 INFO - Send a command to the remote end and validate its success.
14:22:42 INFO -
14:22:42 INFO - :param method: HTTP method to use in request.
14:22:42 INFO - :param uri: "Command part" of the HTTP request URL,
14:22:42 INFO - e.g. `window/rect`.
14:22:42 INFO - :param body: Optional body of the HTTP request.
14:22:42 INFO -
14:22:42 INFO - :return: `None` if the HTTP response body was empty, otherwise
14:22:42 INFO - the `value` field returned after parsing the response
14:22:42 INFO - body as JSON.
14:22:42 INFO -
14:22:42 INFO - :raises error.WebDriverException: If the remote end returns
14:22:42 INFO - an error.
14:22:42 INFO - :raises ValueError: If the response body does not contain a
14:22:42 INFO - `value` key.
14:22:42 INFO - """
14:22:42 INFO - response = self.transport.send(
14:22:42 INFO - method, url, body,
14:22:42 INFO - encoder=protocol.Encoder, decoder=protocol.Decoder,
14:22:42 INFO - session=self)
14:22:42 INFO -
14:22:42 INFO - if response.status != 200:
14:22:42 INFO - err = error.from_response(response)
14:22:42 INFO -
14:22:42 INFO - if isinstance(err, error.InvalidSessionIdException):
14:22:42 INFO - # The driver could have already been deleted the session.
14:22:42 INFO - self.session_id = None
14:22:42 INFO -
14:22:42 INFO - > raise err
14:22:42 INFO - E UnknownErrorException: unknown error (500): Failed to decode response from marionette
14:22:42 INFO -
14:22:42 INFO - body = {'height': 600, 'width': 800}
14:22:42 INFO - err = <UnknownErrorException http_status=500>
14:22:42 INFO - method = 'POST'
14:22:42 INFO - response = <Response status=500 error=<UnknownErrorException http_status=500>>
14:22:42 INFO - self = <Session 6c2cfdad-d58e-0245-be55-d693070f2414>
14:22:42 INFO - url = 'session/6c2cfdad-d58e-0245-be55-d693070f2414/window/rect'
14:22:42 INFO -
14:22:42 INFO - tests/web-platform/tests/tools/webdriver/webdriver/client.py:473: UnknownErrorException
14:22:42 INFO - STDOUT: """
14:22:42 INFO - STDOUT: Send a command to the remote end and validate its success.
Comment hidden (Intermittent Failures Robot) |
Comment 2•6 years ago
|
||
Switching to frame caused a crash:
14:22:38 INFO - PID 1887 | A content process crashed and MOZ_CRASHREPORTER_SHUTDOWN is set, shutting down
14:22:38 INFO - PID 1887 | 1537564958420 Marionette DEBUG Received DOM event unload for [object XULDocument]
14:22:38 INFO - PID 1887 | 1537564958434 Marionette DEBUG Received observer notification message-manager-disconnect
We need bug 1490906 fixed to get this analyzed.
Depends on: 1490906
Comment 3•6 years ago
|
||
Status: NEW → RESOLVED
Closed: 6 years ago
Resolution: --- → INCOMPLETE
Comment 4•2 years ago
|
||
Moving bug to Remote Protocol::Marionette component per bug 1815831.
Component: geckodriver → Marionette
Product: Testing → Remote Protocol
You need to log in
before you can comment on or make changes to this bug.
Description
•