David Knupp created IMPALA-6716:
-----------------------------------

             Summary: ImpalaShell should not rely on global access to parsed 
command line options
                 Key: IMPALA-6716
                 URL: https://issues.apache.org/jira/browse/IMPALA-6716
             Project: IMPALA
          Issue Type: Bug
          Components: Clients
    Affects Versions: Impala 3.0, Impala 2.12.0
            Reporter: David Knupp


A recent patch to address a problem line breaks in LDAP passwords (IMPALA-6610) 
can, in rare instances, result in an exception being thrown if the call to 
{{_connect()}} fails.

{noformat}
$ impala-shell -i foo
Starting Impala Shell without Kerberos authentication
Traceback (most recent call last):
 File "/home/systest/shellenv/bin/impala-shell", line 11, in <module>
 load_entry_point('impala-shell', 'console_scripts', 'impala-shell')()
 File 
"/home/systest/Impala/shell/packaging/staging/impala_shell/impala_shell.py", 
line 1588, in main
 shell = ImpalaShell(options, query_options)
 File 
"/home/systest/Impala/shell/packaging/staging/impala_shell/impala_shell.py", 
line 209, in __init__
 self.do_connect(options.impalad)
 File 
"/home/systest/Impala/shell/packaging/staging/impala_shell/impala_shell.py", 
line 755, in do_connect
 self._connect()
 File 
"/home/systest/Impala/shell/packaging/staging/impala_shell/impala_shell.py", 
line 821, in _connect
 if options.ldap_password_cmd and \
NameError: global name 'options' is not defined
{noformat}

The error is actually in the connection failure handling code.

The problem is that the shell instance should not assume continued access to 
the options returned from {{parser.parse_args().}} In most cases, we store 
those values directly as member variables of the shell. We should do the same 
with all LDAP-related values, and then access those member variables.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to