Crash when cancelling a query
- Ngôn ngữ chính
- Python
- Star
- 1.4k
- Fork
- 191
- Chỉ số merge pull request
- Không có pull request nào được merge trong 30 ngày
Mô tả
# 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
Hướng dẫn đóng góp
Chưa lập chỉ mục được hướng dẫn đóng góp cho kho mã nguồn này
Hướng nghiên cứu
Bắt đầu trong mssql_cli.py tại execute_query và _execute_interactive_command, sau đó kiểm tra các đường dẫn shutdown trong sqltoolsclient.py và jsonrpc/jsonrpcclient.py được hiển thị trong traceback. Tái hiện một truy vấn đang chạy, sau đó nhấn CTRL+C, và xác minh rằng việc hủy hoàn tất mà không có UnboundLocalError, traceback hoặc lỗi logging.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Đánh giá
- Công nghệ
- python
- Lĩnh vực
- cli, database
- Loại issue
- Lỗi
- Độ khó
- 2/5
- Thời gian dự kiến
- 1-3 giờ
- Mức độ hoạt động
- Đình trệ
- Độ rõ ràng
- Đặc tả rõ ràng
- Mức phù hợp với người mới
- 55/100