[
https://issues.apache.org/jira/browse/IMPALA-11251?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Joe McDonnell resolved IMPALA-11251.
------------------------------------
Fix Version/s: Impala 4.2.0
Resolution: Fixed
> TestImpalaShellInteractive.test_unicode_input fails on Ubuntu 20
> ----------------------------------------------------------------
>
> Key: IMPALA-11251
> URL: https://issues.apache.org/jira/browse/IMPALA-11251
> Project: IMPALA
> Issue Type: Bug
> Components: Infrastructure
> Affects Versions: Impala 4.1.0
> Reporter: Joe McDonnell
> Assignee: Joe McDonnell
> Priority: Major
> Fix For: Impala 4.2.0
>
>
> Running TestImpalaShellInteractive.test_unicode_input() on Ubuntu results in
> this failure:
>
> {noformat}
> shell/test_shell_interactive.py:377: in test_unicode_input
> child_proc.expect(PROMPT_REGEX)
> ../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)
> ../infra/python/env-gcc7.5.0/lib/python2.7/site-packages/pexpect/__init__.py:1554:
> in expect_loop
> raise EOF(str(err) + '\n' + str(self))
> E EOF: End Of File (EOF). Exception style platform.
> E <pexpect.spawn object at 0x7fe089a9e890>
> E version: 3.3
> E command:
> /home/impdev/Impala/shell/build/impala-shell-4.1.0-SNAPSHOT/impala-shell
> E args:
> ['/home/impdev/Impala/shell/build/impala-shell-4.1.0-SNAPSHOT/impala-shell',
> '--protocol=beeswax', '-ilocalhost:21000']
> E searcher: <pexpect.searcher_re object at 0x7fe089a9ec10>
> E buffer (last 100 chars): ''
> E before (last 100 chars): ' (required by
> /home/impdev/.python-eggs/sasl-0.2.1-py2.7-linux-x86_64.egg-tmp/sasl/saslwrapper.so)\r\n'
> E after: <class 'pexpect.EOF'>
> E match: None
> E match_index: None
> E exitstatus: None
> E flag_eof: True
> E pid: 1109550
> E child_fd: 23
> E closed: False
> E timeout: 30
> E delimiter: <class 'pexpect.EOF'>
> E logfile: None
> E logfile_read: None
> E logfile_send: None
> E maxread: 2000
> E ignorecase: False
> E searchwindowsize: None
> E delaybeforesend: 0.05
> E delayafterclose: 0.1
> E delayafterterminate: 0.1{noformat}
> What seems to be happening is that impala-shell is built against the system
> compiler / system libstdc++ (GCC 9). If we then run it with LD_LIBRARY_PATH
> set to point to toolchain compiler / libstdc++, then it won't find the
> symbols it needs to run. The solution is to use shell/util.py's spawn_shell
> function, which cleans up the environment for the pexpect:
>
>
> {noformat}
> def build_shell_env(env=None):
> """ Construct the environment for the shell to run in based on 'env', or
> the current
> process's environment if env is None."""
> if not env: env = os.environ
> # Don't inherit PYTHONPATH or LD_LIBRARY_PATH - the shell launch script
> must set
> # these to include dependencies. Copy 'env' to avoid mutating argument or
> os.environ.
> env = dict(env)
> if "PYTHONPATH" in env:
> del env["PYTHONPATH"]
> if "LD_LIBRARY_PATH" in env:
> del env["LD_LIBRARY_PATH"]
> return env
> ...
> def spawn_shell(shell_cmd):
> """Spawn a shell process with the provided command line. Returns the
> Pexpect object."""
> return pexpect.spawn(shell_cmd[0], shell_cmd[1:],
> env=build_shell_env()){noformat}
>
>
--
This message was sent by Atlassian Jira
(v8.20.7#820007)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]