dbcli / mssql-cli

A command-line client for SQL Server with auto-completion and syntax highlighting
BSD 3-Clause "New" or "Revised" License
1.35k stars 192 forks source link

Crash when cancelling a query #477

Open DylanVanAssche opened 4 years ago

DylanVanAssche commented 4 years ago

Description

The CLI tool crashes when you cancel a query with CTRL+C.

Traceback

^CCancelling query...
Query cancelled.
Traceback (most recent call last):
  File "/usr/lib/python3.8/runpy.py", line 193, in _run_module_as_main
    return _run_code(code, main_globals, None,
  File "/usr/lib/python3.8/runpy.py", line 86, in _run_code
    exec(code, run_globals)
  File "/home/dylan/.local/share/virtualenvs/mssql-7pmLXHeZ/lib/python3.8/site-packages/mssqlcli/main.py", line 122, in <module>
    main()
  File "/home/dylan/.local/share/virtualenvs/mssql-7pmLXHeZ/lib/python3.8/site-packages/mssqlcli/main.py", line 115, in main
    run_cli_with(mssqlcli_options)
  File "/home/dylan/.local/share/virtualenvs/mssql-7pmLXHeZ/lib/python3.8/site-packages/mssqlcli/main.py", line 56, in run_cli_with
    mssqlcli.run()
  File "/home/dylan/.local/share/virtualenvs/mssql-7pmLXHeZ/lib/python3.8/site-packages/mssqlcli/mssql_cli.py", line 445, in run
    self.execute_query(text)
  File "/home/dylan/.local/share/virtualenvs/mssql-7pmLXHeZ/lib/python3.8/site-packages/mssqlcli/mssql_cli.py", line 372, in execute_query
    output = self._execute_interactive_command(text)
  File "/home/dylan/.local/share/virtualenvs/mssql-7pmLXHeZ/lib/python3.8/site-packages/mssqlcli/mssql_cli.py", line 367, in _execute_interactive_command
    return output
UnboundLocalError: local variable 'output' referenced before assignment
--- Logging error ---
Traceback (most recent call last):
  File "/usr/lib/python3.8/logging/handlers.py", line 69, in emit
    if self.shouldRollover(record):
  File "/usr/lib/python3.8/logging/handlers.py", line 183, in shouldRollover
    self.stream = self._open()
  File "/usr/lib/python3.8/logging/__init__.py", line 1172, in _open
    return open(self.baseFilename, self.mode, encoding=self.encoding)
NameError: name 'open' is not defined
Call stack:
  File "/home/dylan/.local/share/virtualenvs/mssql-7pmLXHeZ/lib/python3.8/site-packages/mssqlcli/mssql_cli.py", line 214, in __del__
    self.sqltoolsclient.shutdown()
  File "/home/dylan/.local/share/virtualenvs/mssql-7pmLXHeZ/lib/python3.8/site-packages/mssqlcli/sqltoolsclient.py", line 91, in shutdown
    self.json_rpc_client.shutdown()
  File "/home/dylan/.local/share/virtualenvs/mssql-7pmLXHeZ/lib/python3.8/site-packages/mssqlcli/jsonrpc/jsonrpcclient.py", line 183, in shutdown
    logger.info('Shutting down Json rpc client.')
Message: 'Shutting down Json rpc client.'
Arguments: ()
--- Logging error ---
Traceback (most recent call last):
  File "/usr/lib/python3.8/logging/handlers.py", line 69, in emit
    if self.shouldRollover(record):
  File "/usr/lib/python3.8/logging/handlers.py", line 183, in shouldRollover
    self.stream = self._open()
  File "/usr/lib/python3.8/logging/__init__.py", line 1172, in _open
    return open(self.baseFilename, self.mode, encoding=self.encoding)
NameError: name 'open' is not defined
Call stack:
  File "/home/dylan/.local/share/virtualenvs/mssql-7pmLXHeZ/lib/python3.8/site-packages/mssqlcli/mssql_cli.py", line 214, in __del__
    self.sqltoolsclient.shutdown()
  File "/home/dylan/.local/share/virtualenvs/mssql-7pmLXHeZ/lib/python3.8/site-packages/mssqlcli/sqltoolsclient.py", line 94, in shutdown
    logger.info(u'Shutting down Sql Tools Client Process Id: %s',
Message: 'Shutting down Sql Tools Client Process Id: %s'
Arguments: (44347,)

How to reproduce

  1. Perform a query
  2. Hit CTRL+C during the execution
  3. Cancelling query... is printed
  4. Query cancelled. is printed and the tool crashes.

Environment

OS: Ubuntu 20.04 LTS Python version: Python 3.8.2 Server version: 15.0.4023.6 Developer Edition 64 bit