Joe McDonnell created IMPALA-11317:
--------------------------------------

             Summary: TestImpalaShellInteractive.test_http_interactions_extra 
fails on Python 3
                 Key: IMPALA-11317
                 URL: https://issues.apache.org/jira/browse/IMPALA-11317
             Project: IMPALA
          Issue Type: Bug
          Components: Clients
    Affects Versions: Impala 4.2.0
            Reporter: Joe McDonnell


TestImpalaShellInteractive.test_http_interactions_extra is failing when using a 
Python 3 impala-shell:
{noformat}
[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)
{noformat}
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



--
This message was sent by Atlassian Jira
(v8.20.7#820007)

Reply via email to