Crash when cancelling a query
- Lingua principale
- Python
- Stelle
- 1.4k
- Fork
- 191
- Metriche di merge delle PR
- Nessuna PR unita negli ultimi 30g
Descrizione
# 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
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
Guida per i contributori
Nessuna guida per i contributori indicizzata per questo repository
Direzione di ricerca
Inizia in mssql_cli.py con execute_query e _execute_interactive_command, quindi esamina i percorsi di arresto in sqltoolsclient.py e jsonrpc/jsonrpcclient.py mostrati nel traceback. Riproduci una query in esecuzione seguita da CTRL+C e verifica che la cancellazione venga completata senza UnboundLocalError, traceback o errori di logging.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Valutazione
- Stack tecnologico
- python
- Ambito
- cli, database
- Tipo di issue
- Bug
- Difficoltà
- 2/5
- Tempo stimato
- 1-3 ore
- Stato di attività
- Ferma
- Chiarezza
- Specificata chiaramente
- Idoneità per principianti
- 55/100