Closed Bug 1493297 Opened 5 years ago Closed 5 years ago

Intermittent /webdriver/tests/element_send_keys/send_keys.py | test_invalid_text_type[None] - setup error

Categories

(Remote Protocol :: Marionette, defect, P5)

Version 3
defect

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.
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
https://wiki.mozilla.org/Bug_Triage#Intermittent_Test_Failure_Cleanup
Status: NEW → RESOLVED
Closed: 5 years ago
Resolution: --- → INCOMPLETE
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.