Bug 1705227 - asv FTBFS with Python 3.8
Summary: asv FTBFS with Python 3.8
Keywords:
Status: CLOSED RAWHIDE
Alias: None
Product: Fedora
Classification: Fedora
Component: asv
Version: rawhide
Hardware: Unspecified
OS: Unspecified
unspecified
high
Target Milestone: ---
Assignee: Elliott Sales de Andrade
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On: 1606315
Blocks: PYTHON38
TreeView+ depends on / blocked
 
Reported: 2019-05-01 19:03 UTC by Miro Hrončok
Modified: 2019-07-24 13:27 UTC (History)
3 users (show)

Fixed In Version: asv-0.4-1.fc31
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
Environment:
Last Closed: 2019-07-24 13:27:52 UTC
Type: Bug
Embargoed:


Attachments (Terms of Use)
Full log from Copr (258.33 KB, text/plain)
2019-05-01 19:03 UTC, Miro Hrončok
no flags Details


Links
System ID Private Priority Status Summary Last Updated
Github airspeed-velocity asv issues 811 0 None closed asizeof will be broken in Python 3.8 2020-01-27 15:18:15 UTC

Description Miro Hrončok 2019-05-01 19:03:41 UTC
Created attachment 1561038 [details]
Full log from Copr

asv-0.3.1-8.fc31 fails to build from sources with test failures caused by:

LookupError: unknown encoding: unicode-internal (full log attached)

unicode_internal codec was deprecated since Python 3.3 and removed from Python 3.8:

https://bugs.python.org/issue36297

Comment 1 Elliott Sales de Andrade 2019-05-16 05:01:52 UTC
This is fixed upstream, though the PR is pretty big, so I'm hoping there'll be a release I can build soon instead of backporting.

Comment 2 Elliott Sales de Andrade 2019-05-27 00:54:19 UTC
Should be fixed in the latest release.

Comment 3 Miro Hrončok 2019-05-27 08:31:53 UTC
Thanks!

I cannot test this yet, as it is blocked by scipy.

I will close this BZ once I can verify the fix.

Comment 4 Miro Hrončok 2019-07-10 10:01:51 UTC
_____________________________ test_web_regressions _____________________________

browser = <selenium.webdriver.chrome.webdriver.WebDriver (session="8d7999ad0827d8a9741999e4bdbd2bf9")>
basic_html = ('/builddir/build/BUILD/asv-0.4.1/.pytest_cache/d/asv-test_web-basic_html/cache/cached/html', <test.tools.Git object at 0x7f1f79027070>)

    @pytest.mark.flaky(reruns=1, reruns_delay=5)
    def test_web_regressions(browser, basic_html):
        html_dir, dvcs = basic_html
    
        bad_commit_hash = dvcs.get_hash('master~9')
    
        browser.set_window_size(1200, 900)
    
        with tools.preview(html_dir) as base_url:
            get_with_retry(browser, base_url)
    
            regressions_btn = browser.find_element_by_link_text('Regressions')
            regressions_btn.click()
    
            # Wait for element to appear in the table
            WebDriverWait(browser, WAIT_TIME).until(EC.text_to_be_present_in_element(
                ('xpath', '//table[1]/tbody/tr[2]/td[1]'), 'params_examples.track_find_test'
                ))
    
            # Check that the expected links appear in the table
            regression_1 = browser.find_element_by_link_text('params_examples.track_find_test(1)')
            regression_2 = browser.find_element_by_link_text('params_examples.track_find_test(2)')
            bad_hash_link = browser.find_element_by_link_text(bad_commit_hash[:8])
    
            href = regression_1.get_attribute('href')
            assert '/#params_examples.track_find_test?' in href
            assert 'commits=' in href
    
            # Sort the tables vs. benchmark name (PhantomJS doesn't allow doing it via actionchains)
            browser.execute_script("$('thead th').eq(0).stupidsort('asc')")
            WebDriverWait(browser, WAIT_TIME).until(EC.text_to_be_present_in_element(
                ('xpath', '//table[1]/tbody/tr[1]/td[1]'), 'params_examples.track_find_test(1)'
                ))
    
            # Check the contents of the table
            table_rows = browser.find_elements_by_xpath('//table[1]/tbody/tr')
            assert len(table_rows) == 2
            cols1 = [td.text for td in table_rows[0].find_elements_by_xpath('td')]
            cols2 = [td.text for td in table_rows[1].find_elements_by_xpath('td')]
    
            assert cols1[0] == 'params_examples.track_find_test(1)'
            assert cols2[0] == 'params_examples.track_find_test(2)'
    
            assert re.match(r'^\d\d\d\d-\d\d-\d\d \d\d:\d\d$', cols1[1])
            assert re.match(r'^\d\d\d\d-\d\d-\d\d \d\d:\d\d$', cols2[1])
    
            assert cols1[2:] == [bad_commit_hash[:8], '2.00x', '1.00', '2.00', 'Ignore']
            assert cols2[2:] == [bad_commit_hash[:8], '2.00x', '1.00', '2.00', 'Ignore']
    
            # Check that the ignore buttons work as expected
            buttons = [button for button in browser.find_elements_by_xpath('//button')
                       if button.text == 'Ignore']
            buttons[0].click()
    
            # The button should disappear, together with the link
>           WebDriverWait(browser, WAIT_TIME).until_not(EC.visibility_of(buttons[0]))

/builddir/build/BUILD/asv-0.4.1/test/test_web.py:220: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
/usr/lib/python3.8/site-packages/selenium/webdriver/support/wait.py:88: in until_not
    value = method(self._driver)
/usr/lib/python3.8/site-packages/selenium/webdriver/support/expected_conditions.py:143: in __call__
    return _element_if_visible(self.element)
/usr/lib/python3.8/site-packages/selenium/webdriver/support/expected_conditions.py:147: in _element_if_visible
    return element if element.is_displayed() == visibility else False
/usr/lib/python3.8/site-packages/selenium/webdriver/remote/webelement.py:490: in is_displayed
    return self._execute(Command.IS_ELEMENT_DISPLAYED)['value']
/usr/lib/python3.8/site-packages/selenium/webdriver/remote/webelement.py:628: in _execute
    return self._parent.execute(command, params)
/usr/lib/python3.8/site-packages/selenium/webdriver/remote/webdriver.py:314: in execute
    self.error_handler.check_response(response)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <selenium.webdriver.remote.errorhandler.ErrorHandler object at 0x7f1f78fd6be0>
response = {'status': 404, 'value': '{"value":{"error":"unknown command","message":"unknown command: Cannot call non W3C standard...4 base::(anonymous namespace)::ThreadFunc()\\n#13 0x7fc33b1c74e2 start_thread\\n#14 0x7fc33ac48623 __GI___clone\\n"}}'}

    def check_response(self, response):
        """
        Checks that a JSON response from the WebDriver does not have an error.
    
        :Args:
         - response - The JSON response from the WebDriver server as a dictionary
           object.
    
        :Raises: If the response contains an error message.
        """
        status = response.get('status', None)
        if status is None or status == ErrorCode.SUCCESS:
            return
        value = None
        message = response.get("message", "")
        screen = response.get("screen", "")
        stacktrace = None
        if isinstance(status, int):
            value_json = response.get('value', None)
            if value_json and isinstance(value_json, basestring):
                import json
                try:
                    value = json.loads(value_json)
                    if len(value.keys()) == 1:
                        value = value['value']
                    status = value.get('error', None)
                    if status is None:
                        status = value["status"]
                        message = value["value"]
                        if not isinstance(message, basestring):
                            value = message
                            message = message.get('message')
                    else:
                        message = value.get('message', None)
                except ValueError:
                    pass
    
        exception_class = ErrorInResponseException
        if status in ErrorCode.NO_SUCH_ELEMENT:
            exception_class = NoSuchElementException
        elif status in ErrorCode.NO_SUCH_FRAME:
            exception_class = NoSuchFrameException
        elif status in ErrorCode.NO_SUCH_WINDOW:
            exception_class = NoSuchWindowException
        elif status in ErrorCode.STALE_ELEMENT_REFERENCE:
            exception_class = StaleElementReferenceException
        elif status in ErrorCode.ELEMENT_NOT_VISIBLE:
            exception_class = ElementNotVisibleException
        elif status in ErrorCode.INVALID_ELEMENT_STATE:
            exception_class = InvalidElementStateException
        elif status in ErrorCode.INVALID_SELECTOR \
                or status in ErrorCode.INVALID_XPATH_SELECTOR \
                or status in ErrorCode.INVALID_XPATH_SELECTOR_RETURN_TYPER:
            exception_class = InvalidSelectorException
        elif status in ErrorCode.ELEMENT_IS_NOT_SELECTABLE:
            exception_class = ElementNotSelectableException
        elif status in ErrorCode.ELEMENT_NOT_INTERACTABLE:
            exception_class = ElementNotInteractableException
        elif status in ErrorCode.INVALID_COOKIE_DOMAIN:
            exception_class = InvalidCookieDomainException
        elif status in ErrorCode.UNABLE_TO_SET_COOKIE:
            exception_class = UnableToSetCookieException
        elif status in ErrorCode.TIMEOUT:
            exception_class = TimeoutException
        elif status in ErrorCode.SCRIPT_TIMEOUT:
            exception_class = TimeoutException
        elif status in ErrorCode.UNKNOWN_ERROR:
            exception_class = WebDriverException
        elif status in ErrorCode.UNEXPECTED_ALERT_OPEN:
            exception_class = UnexpectedAlertPresentException
        elif status in ErrorCode.NO_ALERT_OPEN:
            exception_class = NoAlertPresentException
        elif status in ErrorCode.IME_NOT_AVAILABLE:
            exception_class = ImeNotAvailableException
        elif status in ErrorCode.IME_ENGINE_ACTIVATION_FAILED:
            exception_class = ImeActivationFailedException
        elif status in ErrorCode.MOVE_TARGET_OUT_OF_BOUNDS:
            exception_class = MoveTargetOutOfBoundsException
        elif status in ErrorCode.JAVASCRIPT_ERROR:
            exception_class = JavascriptException
        elif status in ErrorCode.SESSION_NOT_CREATED:
            exception_class = SessionNotCreatedException
        elif status in ErrorCode.INVALID_ARGUMENT:
            exception_class = InvalidArgumentException
        elif status in ErrorCode.NO_SUCH_COOKIE:
            exception_class = NoSuchCookieException
        elif status in ErrorCode.UNABLE_TO_CAPTURE_SCREEN:
            exception_class = ScreenshotException
        elif status in ErrorCode.ELEMENT_CLICK_INTERCEPTED:
            exception_class = ElementClickInterceptedException
        elif status in ErrorCode.INSECURE_CERTIFICATE:
            exception_class = InsecureCertificateException
        elif status in ErrorCode.INVALID_COORDINATES:
            exception_class = InvalidCoordinatesException
        elif status in ErrorCode.INVALID_SESSION_ID:
            exception_class = InvalidSessionIdException
        elif status in ErrorCode.UNKNOWN_METHOD:
            exception_class = UnknownMethodException
        else:
            exception_class = WebDriverException
        if value == '' or value is None:
            value = response['value']
        if isinstance(value, basestring):
            if exception_class == ErrorInResponseException:
                raise exception_class(response, value)
            raise exception_class(value)
        if message == "" and 'message' in value:
            message = value['message']
    
        screen = None
        if 'screen' in value:
            screen = value['screen']
    
        stacktrace = None
        if 'stackTrace' in value and value['stackTrace']:
            stacktrace = []
            try:
                for frame in value['stackTrace']:
                    line = self._value_or_default(frame, 'lineNumber', '')
                    file = self._value_or_default(frame, 'fileName', '<anonymous>')
                    if line:
                        file = "%s:%s" % (file, line)
                    meth = self._value_or_default(frame, 'methodName', '<anonymous>')
                    if 'className' in frame:
                        meth = "%s.%s" % (frame['className'], meth)
                    msg = "    at %s (%s)"
                    msg = msg % (meth, file)
                    stacktrace.append(msg)
            except TypeError:
                pass
        if exception_class == ErrorInResponseException:
            raise exception_class(response, message)
        elif exception_class == UnexpectedAlertPresentException:
            alert_text = None
            if 'data' in value:
                alert_text = value['data'].get('text')
            elif 'alert' in value:
                alert_text = value['alert'].get('text')
            raise exception_class(message, screen, stacktrace, alert_text)
>       raise exception_class(message, screen, stacktrace)
E       selenium.common.exceptions.WebDriverException: Message: unknown command: Cannot call non W3C standard command while in W3C mode

/usr/lib/python3.8/site-packages/selenium/webdriver/remote/errorhandler.py:242: WebDriverException
----------------------------- Captured stderr call -----------------------------
127.0.0.1 - - [08/Jul/2019 15:38:18] "GET /info.json?_=1562600298768 HTTP/1.1" 200 -
127.0.0.1 - - [08/Jul/2019 15:38:18] "GET /index.json?timestamp=1562600294840 HTTP/1.1" 304 -
127.0.0.1 - - [08/Jul/2019 15:38:18] code 404, message File not found
127.0.0.1 - - [08/Jul/2019 15:38:18] "GET /graphs/summary/cache_examples.ClassLevelCacheTimeout.track_fail.json?timestamp=1562600294840 HTTP/1.1" 404 -
127.0.0.1 - - [08/Jul/2019 15:38:18] code 404, message File not found
127.0.0.1 - - [08/Jul/2019 15:38:18] "GET /graphs/summary/cache_examples.ClassLevelCacheTimeoutSuccess.track_success.json?timestamp=1562600294840 HTTP/1.1" 404 -
127.0.0.1 - - [08/Jul/2019 15:38:18] code 404, message File not found
127.0.0.1 - - [08/Jul/2019 15:38:18] "GET /graphs/summary/cache_examples.ClassLevelSetup.track_example.json?timestamp=1562600294840 HTTP/1.1" 404 -
127.0.0.1 - - [08/Jul/2019 15:38:18] code 404, message File not found
127.0.0.1 - - [08/Jul/2019 15:38:18] "GET /graphs/summary/cache_examples.ClassLevelSetup.track_example2.json?timestamp=1562600294840 HTTP/1.1" 404 -
127.0.0.1 - - [08/Jul/2019 15:38:18] code 404, message File not found
127.0.0.1 - - [08/Jul/2019 15:38:18] "GET /graphs/summary/cache_examples.ClassLevelSetupFail.track_fail.json?timestamp=1562600294840 HTTP/1.1" 404 -
127.0.0.1 - - [08/Jul/2019 15:38:18] code 404, message File not found
127.0.0.1 - - [08/Jul/2019 15:38:18] "GET /graphs/summary/cache_examples.time_fail_second_run.json?timestamp=1562600294840 HTTP/1.1" 404 -
127.0.0.1 - - [08/Jul/2019 15:38:18] code 404, message File not found
127.0.0.1 - - [08/Jul/2019 15:38:18] "GET /graphs/summary/cache_examples.track_cache_bar.json?timestamp=1562600294840 HTTP/1.1" 404 -
127.0.0.1 - - [08/Jul/2019 15:38:18] code 404, message File not found
127.0.0.1 - - [08/Jul/2019 15:38:18] "GET /graphs/summary/cache_examples.track_cache_foo.json?timestamp=1562600294840 HTTP/1.1" 404 -
127.0.0.1 - - [08/Jul/2019 15:38:18] code 404, message File not found
127.0.0.1 - - [08/Jul/2019 15:38:18] "GET /graphs/summary/cache_examples.track_my_cache_foo.json?timestamp=1562600294840 HTTP/1.1" 404 -
127.0.0.1 - - [08/Jul/2019 15:38:18] code 404, message File not found
127.0.0.1 - - [08/Jul/2019 15:38:18] "GET /graphs/summary/code_extraction.MyClass.track_test.json?timestamp=1562600294840 HTTP/1.1" 404 -
127.0.0.1 - - [08/Jul/2019 15:38:18] code 404, message File not found
127.0.0.1 - - [08/Jul/2019 15:38:18] "GET /graphs/summary/code_extraction.track_pretty_source_test.json?timestamp=1562600294840 HTTP/1.1" 404 -
127.0.0.1 - - [08/Jul/2019 15:38:18] code 404, message File not found
127.0.0.1 - - [08/Jul/2019 15:38:18] "GET /graphs/summary/code_extraction.track_test.json?timestamp=1562600294840 HTTP/1.1" 404 -
127.0.0.1 - - [08/Jul/2019 15:38:18] code 404, message File not found
127.0.0.1 - - [08/Jul/2019 15:38:18] "GET /graphs/summary/custom.time_function.json?timestamp=1562600294840 HTTP/1.1" 404 -
127.0.0.1 - - [08/Jul/2019 15:38:18] code 404, message File not found
127.0.0.1 - - [08/Jul/2019 15:38:18] "GET /graphs/summary/custom.track_method.json?timestamp=1562600294840 HTTP/1.1" 404 -
127.0.0.1 - - [08/Jul/2019 15:38:19] "GET /regressions.json?timestamp=1562600294840 HTTP/1.1" 200 -
_____________________________ test_web_summarylist _____________________________

browser = <selenium.webdriver.chrome.webdriver.WebDriver (session="8d7999ad0827d8a9741999e4bdbd2bf9")>
basic_html = ('/builddir/build/BUILD/asv-0.4.1/.pytest_cache/d/asv-test_web-basic_html/cache/cached/html', <test.tools.Git object at 0x7f1f79027070>)

    @pytest.mark.flaky(reruns=1, reruns_delay=5)
    def test_web_summarylist(browser, basic_html):
        ignore_exc = (NoSuchElementException, StaleElementReferenceException)
    
        html_dir, dvcs = basic_html
    
        last_change_hash = dvcs.get_hash('master~4')
    
        browser.set_window_size(1200, 900)
    
        with tools.preview(html_dir) as base_url:
            get_with_retry(browser, base_url)
    
            summarylist_btn = browser.find_element_by_link_text('Benchmark list')
            summarylist_btn.click()
    
            # Check text content in the table
            base_link = browser.find_element_by_link_text('params_examples.track_find_test')
            cur_row = base_link.find_element_by_xpath('../..')
            m = re.match('params_examples.track_find_test \\([12]\\) 2.00 \u221233.3% \\(-1.00\\).*'
                             + last_change_hash[:8],
                         cur_row.text)
            assert m, cur_row.text
    
            # Check units in row
            base_link2 = browser.find_element_by_link_text('params_examples.track_bytes')
            cur_row2 = base_link2.find_element_by_xpath('../..')
            m = re.match(r'params_examples.track_bytes\s*1.000M', cur_row2.text)
            assert m, cur_row2.text
    
            # Check link
            base_href, qs = splitquery(base_link.get_attribute('href'))
            base_url, tag = splittag(base_href)
            assert parse_qs(qs) == {'ram': ['128GB'], 'cpu': ['Blazingly fast'],
                                    'NUL': ['[none]']}
            assert tag == 'params_examples.track_find_test'
    
            # Change table sort (sorting is async, so needs waits)
            sort_th = browser.find_element_by_xpath('//th[text()="Recent change"]')
            sort_th.click()
            WebDriverWait(browser, WAIT_TIME).until(
                EC.text_to_be_present_in_element(('xpath', '//tbody/tr[1]'),
                                                  'params_examples.track_find_test'))
    
            # Try to click cpu selector link in the panel
            cpu_select = browser.find_element_by_link_text('Not /really/ <fast>')
            cpu_select.click()
    
            # For the other CPU, there is no recent change recorded, only
            # the latest result is available
            def check(*args):
                links = browser.find_elements_by_link_text('params_examples.track_find_test')
                visible_links = [item for item in links if item.is_displayed()]
    
                row_texts = [link.find_element_by_xpath('../..').text
                             for link in visible_links]
                row_texts.sort()
    
                if len(row_texts) != 2:
                    return False
    
                ok = (re.match(r'^params_examples\.track_find_test \(1\) 2\.00 .*\(-1\.00\).*$', row_texts[0]) and
                      re.match(r'^params_examples\.track_find_test \(2\) 2\.00 .*\(-1\.00\).*$', row_texts[1]))
                return ok
    
>           WebDriverWait(browser, WAIT_TIME, ignored_exceptions=ignore_exc).until(check)

/builddir/build/BUILD/asv-0.4.1/test/test_web.py:333: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
/usr/lib/python3.8/site-packages/selenium/webdriver/support/wait.py:71: in until
    value = method(self._driver)
/builddir/build/BUILD/asv-0.4.1/test/test_web.py:320: in check
    visible_links = [item for item in links if item.is_displayed()]
/builddir/build/BUILD/asv-0.4.1/test/test_web.py:320: in <listcomp>
    visible_links = [item for item in links if item.is_displayed()]
/usr/lib/python3.8/site-packages/selenium/webdriver/remote/webelement.py:490: in is_displayed
    return self._execute(Command.IS_ELEMENT_DISPLAYED)['value']
/usr/lib/python3.8/site-packages/selenium/webdriver/remote/webelement.py:628: in _execute
    return self._parent.execute(command, params)
/usr/lib/python3.8/site-packages/selenium/webdriver/remote/webdriver.py:314: in execute
    self.error_handler.check_response(response)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <selenium.webdriver.remote.errorhandler.ErrorHandler object at 0x7f1f78fd6be0>
response = {'status': 404, 'value': '{"value":{"error":"unknown command","message":"unknown command: Cannot call non W3C standard...4 base::(anonymous namespace)::ThreadFunc()\\n#13 0x7fc33b1c74e2 start_thread\\n#14 0x7fc33ac48623 __GI___clone\\n"}}'}

    def check_response(self, response):
        """
        Checks that a JSON response from the WebDriver does not have an error.
    
        :Args:
         - response - The JSON response from the WebDriver server as a dictionary
           object.
    
        :Raises: If the response contains an error message.
        """
        status = response.get('status', None)
        if status is None or status == ErrorCode.SUCCESS:
            return
        value = None
        message = response.get("message", "")
        screen = response.get("screen", "")
        stacktrace = None
        if isinstance(status, int):
            value_json = response.get('value', None)
            if value_json and isinstance(value_json, basestring):
                import json
                try:
                    value = json.loads(value_json)
                    if len(value.keys()) == 1:
                        value = value['value']
                    status = value.get('error', None)
                    if status is None:
                        status = value["status"]
                        message = value["value"]
                        if not isinstance(message, basestring):
                            value = message
                            message = message.get('message')
                    else:
                        message = value.get('message', None)
                except ValueError:
                    pass
    
        exception_class = ErrorInResponseException
        if status in ErrorCode.NO_SUCH_ELEMENT:
            exception_class = NoSuchElementException
        elif status in ErrorCode.NO_SUCH_FRAME:
            exception_class = NoSuchFrameException
        elif status in ErrorCode.NO_SUCH_WINDOW:
            exception_class = NoSuchWindowException
        elif status in ErrorCode.STALE_ELEMENT_REFERENCE:
            exception_class = StaleElementReferenceException
        elif status in ErrorCode.ELEMENT_NOT_VISIBLE:
            exception_class = ElementNotVisibleException
        elif status in ErrorCode.INVALID_ELEMENT_STATE:
            exception_class = InvalidElementStateException
        elif status in ErrorCode.INVALID_SELECTOR \
                or status in ErrorCode.INVALID_XPATH_SELECTOR \
                or status in ErrorCode.INVALID_XPATH_SELECTOR_RETURN_TYPER:
            exception_class = InvalidSelectorException
        elif status in ErrorCode.ELEMENT_IS_NOT_SELECTABLE:
            exception_class = ElementNotSelectableException
        elif status in ErrorCode.ELEMENT_NOT_INTERACTABLE:
            exception_class = ElementNotInteractableException
        elif status in ErrorCode.INVALID_COOKIE_DOMAIN:
            exception_class = InvalidCookieDomainException
        elif status in ErrorCode.UNABLE_TO_SET_COOKIE:
            exception_class = UnableToSetCookieException
        elif status in ErrorCode.TIMEOUT:
            exception_class = TimeoutException
        elif status in ErrorCode.SCRIPT_TIMEOUT:
            exception_class = TimeoutException
        elif status in ErrorCode.UNKNOWN_ERROR:
            exception_class = WebDriverException
        elif status in ErrorCode.UNEXPECTED_ALERT_OPEN:
            exception_class = UnexpectedAlertPresentException
        elif status in ErrorCode.NO_ALERT_OPEN:
            exception_class = NoAlertPresentException
        elif status in ErrorCode.IME_NOT_AVAILABLE:
            exception_class = ImeNotAvailableException
        elif status in ErrorCode.IME_ENGINE_ACTIVATION_FAILED:
            exception_class = ImeActivationFailedException
        elif status in ErrorCode.MOVE_TARGET_OUT_OF_BOUNDS:
            exception_class = MoveTargetOutOfBoundsException
        elif status in ErrorCode.JAVASCRIPT_ERROR:
            exception_class = JavascriptException
        elif status in ErrorCode.SESSION_NOT_CREATED:
            exception_class = SessionNotCreatedException
        elif status in ErrorCode.INVALID_ARGUMENT:
            exception_class = InvalidArgumentException
        elif status in ErrorCode.NO_SUCH_COOKIE:
            exception_class = NoSuchCookieException
        elif status in ErrorCode.UNABLE_TO_CAPTURE_SCREEN:
            exception_class = ScreenshotException
        elif status in ErrorCode.ELEMENT_CLICK_INTERCEPTED:
            exception_class = ElementClickInterceptedException
        elif status in ErrorCode.INSECURE_CERTIFICATE:
            exception_class = InsecureCertificateException
        elif status in ErrorCode.INVALID_COORDINATES:
            exception_class = InvalidCoordinatesException
        elif status in ErrorCode.INVALID_SESSION_ID:
            exception_class = InvalidSessionIdException
        elif status in ErrorCode.UNKNOWN_METHOD:
            exception_class = UnknownMethodException
        else:
            exception_class = WebDriverException
        if value == '' or value is None:
            value = response['value']
        if isinstance(value, basestring):
            if exception_class == ErrorInResponseException:
                raise exception_class(response, value)
            raise exception_class(value)
        if message == "" and 'message' in value:
            message = value['message']
    
        screen = None
        if 'screen' in value:
            screen = value['screen']
    
        stacktrace = None
        if 'stackTrace' in value and value['stackTrace']:
            stacktrace = []
            try:
                for frame in value['stackTrace']:
                    line = self._value_or_default(frame, 'lineNumber', '')
                    file = self._value_or_default(frame, 'fileName', '<anonymous>')
                    if line:
                        file = "%s:%s" % (file, line)
                    meth = self._value_or_default(frame, 'methodName', '<anonymous>')
                    if 'className' in frame:
                        meth = "%s.%s" % (frame['className'], meth)
                    msg = "    at %s (%s)"
                    msg = msg % (meth, file)
                    stacktrace.append(msg)
            except TypeError:
                pass
        if exception_class == ErrorInResponseException:
            raise exception_class(response, message)
        elif exception_class == UnexpectedAlertPresentException:
            alert_text = None
            if 'data' in value:
                alert_text = value['data'].get('text')
            elif 'alert' in value:
                alert_text = value['alert'].get('text')
            raise exception_class(message, screen, stacktrace, alert_text)
>       raise exception_class(message, screen, stacktrace)
E       selenium.common.exceptions.WebDriverException: Message: unknown command: Cannot call non W3C standard command while in W3C mode

/usr/lib/python3.8/site-packages/selenium/webdriver/remote/errorhandler.py:242: WebDriverException
----------------------------- Captured stderr call -----------------------------
127.0.0.1 - - [08/Jul/2019 15:38:21] "GET /info.json?_=1562600301307 HTTP/1.1" 200 -
127.0.0.1 - - [08/Jul/2019 15:38:21] "GET /index.json?timestamp=1562600294840 HTTP/1.1" 304 -
127.0.0.1 - - [08/Jul/2019 15:38:21] code 404, message File not found
127.0.0.1 - - [08/Jul/2019 15:38:21] "GET /graphs/summary/cache_examples.ClassLevelCacheTimeout.track_fail.json?timestamp=1562600294840 HTTP/1.1" 404 -
127.0.0.1 - - [08/Jul/2019 15:38:21] code 404, message File not found
127.0.0.1 - - [08/Jul/2019 15:38:21] "GET /graphs/summary/cache_examples.ClassLevelCacheTimeoutSuccess.track_success.json?timestamp=1562600294840 HTTP/1.1" 404 -
127.0.0.1 - - [08/Jul/2019 15:38:21] code 404, message File not found
127.0.0.1 - - [08/Jul/2019 15:38:21] "GET /graphs/summary/cache_examples.ClassLevelSetup.track_example.json?timestamp=1562600294840 HTTP/1.1" 404 -
127.0.0.1 - - [08/Jul/2019 15:38:21] code 404, message File not found
127.0.0.1 - - [08/Jul/2019 15:38:21] "GET /graphs/summary/cache_examples.ClassLevelSetup.track_example2.json?timestamp=1562600294840 HTTP/1.1" 404 -
127.0.0.1 - - [08/Jul/2019 15:38:21] code 404, message File not found
127.0.0.1 - - [08/Jul/2019 15:38:21] "GET /graphs/summary/cache_examples.ClassLevelSetupFail.track_fail.json?timestamp=1562600294840 HTTP/1.1" 404 -
127.0.0.1 - - [08/Jul/2019 15:38:21] code 404, message File not found
127.0.0.1 - - [08/Jul/2019 15:38:21] "GET /graphs/summary/cache_examples.time_fail_second_run.json?timestamp=1562600294840 HTTP/1.1" 404 -
127.0.0.1 - - [08/Jul/2019 15:38:21] code 404, message File not found
127.0.0.1 - - [08/error: Bad exit status from /var/tmp/rpm-tmp.gvGUJu (%check)
Jul/2019 15:38:21] "GET /graphs/summary/cache_examples.track_cache_bar.json?timestamp=1562600294840 HTTP/1.1" 404 -
127.0.0.1 - - [08/Jul/2019 15:38:21] code 404, message File not found
127.0.0.1 - - [08/Jul/2019 15:38:21] "GET /graphs/summary/cache_examples.track_cache_foo.json?timestamp=1562600294840 HTTP/1.1" 404 -
127.0.0.1 - - [08/Jul/2019 15:38:21] code 404, message File not found
127.0.0.1 - - [08/Jul/2019 15:38:21] "GET /graphs/summary/cache_examples.track_my_cache_foo.json?timestamp=1562600294840 HTTP/1.1" 404 -
127.0.0.1 - - [08/Jul/2019 15:38:21] code 404, message File not found
127.0.0.1 - - [08/Jul/2019 15:38:21] "GET /graphs/summary/code_extraction.MyClass.track_test.json?timestamp=1562600294840 HTTP/1.1" 404 -
127.0.0.1 - - [08/Jul/2019 15:38:21] code 404, message File not found
127.0.0.1 - - [08/Jul/2019 15:38:21] "GET /graphs/summary/code_extraction.track_pretty_source_test.json?timestamp=1562600294840 HTTP/1.1" 404 -
127.0.0.1 - - [08/Jul/2019 15:38:21] code 404, message File not found
127.0.0.1 - - [08/Jul/2019 15:38:21] "GET /graphs/summary/code_extraction.track_test.json?timestamp=1562600294840 HTTP/1.1" 404 -
127.0.0.1 - - [08/Jul/2019 15:38:21] code 404, message File not found
127.0.0.1 - - [08/Jul/2019 15:38:21] "GET /graphs/summary/custom.time_function.json?timestamp=1562600294840 HTTP/1.1" 404 -
127.0.0.1 - - [08/Jul/2019 15:38:21] code 404, message File not found
127.0.0.1 - - [08/Jul/2019 15:38:21] "GET /graphs/summary/custom.track_method.json?timestamp=1562600294840 HTTP/1.1" 404 -
127.0.0.1 - - [08/Jul/2019 15:38:21] "GET /graphs/NUL-null/arch-x86_64/branch-master/cpu-Blazingly%20fast/machine-orangutan/os-GNU_Linux/python-3.8/ram-128GB/summary.json?timestamp=1562600294840 HTTP/1.1" 200 -
127.0.0.1 - - [08/Jul/2019 15:38:22] "GET /graphs/NUL_/arch-x86_64/branch-master/cpu-Not%20_really_%20_fast_/machine-orangutan/os-GNU_Linux/python-3.8/ram-_/summary.json?timestamp=1562600294840 HTTP/1.1" 200 -

Full logs: https://copr-be.cloud.fedoraproject.org/results/@python/python3.8/fedora-rawhide-x86_64/00964708-asv/

All attempts: https://copr.fedorainfracloud.org/coprs/g/python/python3.8/package/asv/

Comment 5 Elliott Sales de Andrade 2019-07-23 00:42:48 UTC
This should be fixed now.

Comment 6 Zbigniew Jędrzejewski-Szmek 2019-07-23 10:26:13 UTC
https://copr.fedorainfracloud.org/coprs/g/python/python3.8/build/976636/ failed:
DEBUG util.py:585:  BUILDSTDERR:  Problem: package python3-rpy-3.0.5-1.fc31.noarch requires python(abi) = 3.7, but none of the providers can be installed

https://copr-be.cloud.fedoraproject.org/results/@python/python3.8/fedora-rawhide-x86_64/00962450-rpy
has python3-rpy-3.0.4-2.fc31.noarch.rpm which has lower version. So rpy needs to be rebuilt
in copr, and then asv again.

Comment 7 Zbigniew Jędrzejewski-Szmek 2019-07-24 13:27:52 UTC
https://copr.fedorainfracloud.org/coprs/g/python/python3.8/build/976799/


Note You need to log in before you can comment on or make changes to this bug.