dbcli / dbcli/mssql-cli

Crash when cancelling a query

Abierto
#477 0 comentarios 0 reacciones 0 asignados Ver en GitHub
Lenguaje dominante
Python
Estrellas
1.4k
Forks
191
Métricas de merge de PR
Sin PR fusionados en 30 d

Descripción

# 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

Guía de contribución

No hay ninguna guía de contribución indexada para este repositorio

Línea de trabajo

Comienza en mssql_cli.py, en execute_query y _execute_interactive_command, y luego inspecciona las rutas de apagado en sqltoolsclient.py y jsonrpc/jsonrpcclient.py que se muestran en el traceback. Reproduce una consulta en ejecución seguida de CTRL+C y verifica que la cancelación se complete sin UnboundLocalError, traceback ni error de logging.

Escrito por el modelo de indexación a partir del texto del issue.

Evaluación

Stack tecnológico
python
Área
cli, database
Tipo de issue
Error
Dificultad
2/5
Tiempo estimado
1-3 horas
Estado de actividad
Estancado
Claridad
Bien especificado
Aptitud para principiantes
55/100

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.