Uploaded image for project: 'IMPALA'
  1. IMPALA
  2. IMPALA-11317

TestImpalaShellInteractive.test_http_interactions_extra fails on Python 3

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Major
    • Resolution: Fixed
    • Impala 4.1.0
    • Impala 4.2.0, Impala 4.1.1
    • Clients
    • None
    • ghx-label-10

    Description

      TestImpalaShellInteractive.test_http_interactions_extra is failing when using a Python 3 impala-shell:

      [gw2] linux2 -- Python 2.7.16 /home/joe/view2/Impala/bin/../infra/python/env-gcc7.5.0/bin/python
      self = <tests.shell.test_shell_interactive.TestImpalaShellInteractive object at 0x7fe5b9dacb50>
      vector = <tests.common.test_vector.ImpalaTestVector object at 0x7fe5ba153dd0>
      http_503_server_extra = <tests.shell.test_shell_interactive.TestHTTPServer503 object at 0x7fe5b9dacbd0>    def test_http_interactions_extra(self, vector, http_503_server_extra):
            """Test interactions with the http server when using hs2-http protocol.
              Check that the shell prints a good message when the server returns a 503 error,
              including the body text from the message."""
            protocol = vector.get_value("protocol")
            if protocol != 'hs2-http':
              pytest.skip()
          
            # Check that we get a message about the 503 error when we try to connect.
            shell_args = ["--protocol={0}".format(protocol),
                          "-i{0}:{1}".format(http_503_server_extra.HOST,
                                             http_503_server_extra.PORT)]
            shell_proc = spawn_shell([IMPALA_SHELL_EXECUTABLE] + shell_args)
      >     shell_proc.expect("HTTP code 503: Service Unavailable \[EXTRA\]", timeout=10)shell/test_shell_interactive.py:1201: 
      _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
      ../infra/python/env-gcc7.5.0/lib/python2.7/site-packages/pexpect/__init__.py:1451: in expect
          timeout, searchwindowsize)
      ../infra/python/env-gcc7.5.0/lib/python2.7/site-packages/pexpect/__init__.py:1466: in expect_list
          timeout, searchwindowsize)
      

      It is expecting "HTTP code 503: Service Unavailable [EXTRA]", but it gets "HTTP code 503: Service Unavailable [b'EXTRA']". Python 3 is treating the "EXTRA" as a series of bytes, and that changes the printing. This could use a decode() call here:

      https://github.com/apache/impala/blob/master/shell/ImpalaHttpClient.py#L365-L366

      Attachments

        Issue Links

          Activity

            People

              joemcdonnell Joe McDonnell
              joemcdonnell Joe McDonnell
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: