cq-editor console stops working on Windows when fed a line with a SyntaxError
- Dominant language
- Python
- Stars
- 1.2k
- Forks
- 210
- PR merge metrics
- No merged PRs in 30d
Description
### UPDATE
I got this bug after copying a path name on the console without doubling the slashes. Now I did another test and any SyntaxError causes the same problem. For example, simply typing `1 +& 2` breaks the console and requires a restart.
### Original report
When a string with a broken escape sequence is input into console, cq-editor freezes for a moment (about 15 seconds in my PC). After some time it unfreezes and shows a log in the log viewer. However the console becomes unusable after that until I restart cq-editor. Lines are not interpreted anymore..
### Sequence on the console (steps to reproduce)
```
In [1]: s = "abc"
In [2]:print(s)
abc
In [3]: s = "C:\Users\Atual\Google Drive\"
## freezes for about 15 seconds, no output ##
In [4]: print(s)
## freezes for about 15 seconds, no output ##
In [5]: s = "abc"
## freezes again ##
In [5]:print(s)
## freezes again, no output ##
```
### Log Viewer output
```
[2021-07-11 17:59:27.404491] ERROR: tornado.general: Uncaught exception in ZMQStream callback
Traceback (most recent call last):
File "C:\Users\Atual\miniconda3\envs\cq\lib\site-packages\zmq\eventloop\zmqstream.py", line 434, in _run_callback
callback(*args, **kwargs)
File "C:\Users\Atual\miniconda3\envs\cq\lib\site-packages\ipykernel\iostream.py", line 126, in _handle_event
event_f()
File "C:\Users\Atual\miniconda3\envs\cq\lib\site-packages\ipykernel\iostream.py", line 223, in
self.schedule(lambda : self._really_send(*args, **kwargs))
File "C:\Users\Atual\miniconda3\envs\cq\lib\site-packages\ipykernel\iostream.py", line 231, in _really_send
self.socket.send_multipart(msg, *args, **kwargs)
File "C:\Users\Atual\miniconda3\envs\cq\lib\site-packages\ipykernel\inprocess\socket.py", line 37, in send_multipart
self.message_sent += 1
File "C:\Users\Atual\miniconda3\envs\cq\lib\site-packages\traitlets\traitlets.py", line 604, in __set__
self.set(obj, value)
File "C:\Users\Atual\miniconda3\envs\cq\lib\site-packages\traitlets\traitlets.py", line 593, in set
obj._notify_trait(self.name, old_value, new_value)
File "C:\Users\Atual\miniconda3\envs\cq\lib\site-packages\traitlets\traitlets.py", line 1217, in _notify_trait
self.notify_change(Bunch(
File "C:\Users\Atual\miniconda3\envs\cq\lib\site-packages\traitlets\traitlets.py", line 1227, in notify_change
return self._notify_observers(change)
File "C:\Users\Atual\miniconda3\envs\cq\lib\site-packages\traitlets\traitlets.py", line 1264, in _notify_observers
c(event)
File "C:\Users\Atual\miniconda3\envs\cq\lib\site-packages\ipykernel\inprocess\ipkernel.py", line 134, in _io_dispatch
ident, msg = self.session.recv(self.iopub_socket, copy=False)
File "C:\Users\Atual\miniconda3\envs\cq\lib\site-packages\jupyter_client\session.py", line 809, in recv
msg_list = socket.recv_multipart(mode, copy=copy)
File "C:\Users\Atual\miniconda3\envs\cq\lib\site-packages\ipykernel\iostream.py", line 255, in __getattr__
warnings.warn("Accessing zmq Socket attribute %s on BackgroundSocket" % attr,
DeprecationWarning: Accessing zmq Socket attribute recv_multipart on BackgroundSocket
[2021-07-11 17:59:27.477095] ERROR: tornado.general: Uncaught exception in zmqstream callback
Traceback (most recent call last):
File "C:\Users\Atual\miniconda3\envs\cq\lib\site-packages\zmq\eventloop\zmqstream.py", line 451, in _handle_events
self._handle_recv()
File "C:\Users\Atual\miniconda3\envs\cq\lib\site-packages\zmq\eventloop\zmqstream.py", line 480, in _handle_recv
self._run_callback(callback, msg)
File "C:\Users\Atual\miniconda3\envs\cq\lib\site-packages\zmq\eventloop\zmqstream.py", line 434, in _run_callback
callback(*args, **kwargs)
File "C:\Users\Atual\miniconda3\envs\cq\lib\site-packages\ipykernel\iostream.py", line 126, in _handle_event
event_f()
File "C:\Users\Atual\miniconda3\envs\cq\lib\site-packages\ipykernel\iostream.py", line 223, in
self.schedule(lambda : self._really_send(*args, **kwargs))
File "C:\Users\Atual\miniconda3\envs\cq\lib\site-packages\ipykernel\iostream.py", line 231, in _really_send
self.socket.send_multipart(msg, *args, **kwargs)
File "C:\Users\Atual\miniconda3\envs\cq\lib\site-packages\ipykernel\inprocess\socket.py", line 37, in send_multipart
self.message_sent += 1
File "C:\Users\Atual\miniconda3\envs\cq\lib\site-packages\traitlets\traitlets.py", line 604, in __set__
self.set(obj, value)
File "C:\Users\Atual\miniconda3\envs\cq\lib\site-packages\traitlets\traitlets.py", line 593, in set
obj._notify_trait(self.name, old_value, new_value)
File "C:\Users\Atual\miniconda3\envs\cq\lib\site-packages\traitlets\traitlets.py", line 1217, in _notify_trait
self.notify_change(Bunch(
File "C:\Users\Atual\miniconda3\envs\cq\lib\site-packages\traitlets\traitlets.py", line 1227, in notify_change
return self._notify_observers(change)
File "C:\Users\Atual\miniconda3\envs\cq\lib\site-packages\traitlets\traitlets.py", line 1264, in _notify_observers
c(event)
File "C:\Users\Atual\miniconda3\envs\cq\lib\site-packages\ipykernel\inprocess\ipkernel.py", line 134, in _io_dispatch
ident, msg = self.session.recv(self.iopub_socket, copy=False)
File "C:\Users\Atual\miniconda3\envs\cq\lib\site-packages\jupyter_client\session.py", line 809, in recv
msg_list = socket.recv_multipart(mode, copy=copy)
File "C:\Users\Atual\miniconda3\envs\cq\lib\site-packages\ipykernel\iostream.py", line 255, in __getattr__
warnings.warn("Accessing zmq Socket attribute %s on BackgroundSocket" % attr,
DeprecationWarning: Accessing zmq Socket attribute recv_multipart on BackgroundSocket
[2021-07-11 17:59:27.480093] ERROR: asyncio: Exception in callback AddThreadSelectorEventLoop._handle_select([1032], [])
handle:
Traceback (most recent call last):
File "C:\Users\Atual\miniconda3\envs\cq\lib\asyncio\events.py", line 80, in _run
self._context.run(self._callback, *self._args)
File "C:\Users\Atual\miniconda3\envs\cq\lib\site-packages\tornado\platform\asyncio.py", line 579, in _handle_select
self._handle_event(r, self._readers)
File "C:\Users\Atual\miniconda3\envs\cq\lib\site-packages\tornado\platform\asyncio.py", line 591, in _handle_event
callback()
File "C:\Users\Atual\miniconda3\envs\cq\lib\site-packages\tornado\platform\asyncio.py", line 189, in _handle_events
handler_func(fileobj, events)
File "C:\Users\Atual\miniconda3\envs\cq\lib\site-packages\zmq\eventloop\zmqstream.py", line 451, in _handle_events
self._handle_recv()
File "C:\Users\Atual\miniconda3\envs\cq\lib\site-packages\zmq\eventloop\zmqstream.py", line 480, in _handle_recv
self._run_callback(callback, msg)
File "C:\Users\Atual\miniconda3\envs\cq\lib\site-packages\zmq\eventloop\zmqstream.py", line 434, in _run_callback
callback(*args, **kwargs)
File "C:\Users\Atual\miniconda3\envs\cq\lib\site-packages\ipykernel\iostream.py", line 126, in _handle_event
event_f()
File "C:\Users\Atual\miniconda3\envs\cq\lib\site-packages\ipykernel\iostream.py", line 223, in
self.schedule(lambda : self._really_send(*args, **kwargs))
File "C:\Users\Atual\miniconda3\envs\cq\lib\site-packages\ipykernel\iostream.py", line 231, in _really_send
self.socket.send_multipart(msg, *args, **kwargs)
File "C:\Users\Atual\miniconda3\envs\cq\lib\site-packages\ipykernel\inprocess\socket.py", line 37, in send_multipart
self.message_sent += 1
File "C:\Users\Atual\miniconda3\envs\cq\lib\site-packages\traitlets\traitlets.py", line 604, in __set__
self.set(obj, value)
File "C:\Users\Atual\miniconda3\envs\cq\lib\site-packages\traitlets\traitlets.py", line 593, in set
obj._notify_trait(self.name, old_value, new_value)
File "C:\Users\Atual\miniconda3\envs\cq\lib\site-packages\traitlets\traitlets.py", line 1217, in _notify_trait
self.notify_change(Bunch(
File "C:\Users\Atual\miniconda3\envs\cq\lib\site-packages\traitlets\traitlets.py", line 1227, in notify_change
return self._notify_observers(change)
File "C:\Users\Atual\miniconda3\envs\cq\lib\site-packages\traitlets\traitlets.py", line 1264, in _notify_observers
c(event)
File "C:\Users\Atual\miniconda3\envs\cq\lib\site-packages\ipykernel\inprocess\ipkernel.py", line 134, in _io_dispatch
ident, msg = self.session.recv(self.iopub_socket, copy=False)
File "C:\Users\Atual\miniconda3\envs\cq\lib\site-packages\jupyter_client\session.py", line 809, in recv
msg_list = socket.recv_multipart(mode, copy=copy)
File "C:\Users\Atual\miniconda3\envs\cq\lib\site-packages\ipykernel\iostream.py", line 255, in __getattr__
warnings.warn("Accessing zmq Socket attribute %s on BackgroundSocket" % attr,
DeprecationWarning: Accessing zmq Socket attribute recv_multipart on BackgroundSocket
[2021-07-11 17:59:47.534443] INFO: ipykernel.inprocess.ipkernel: Exception in execute request:
[1;36m File [1;32m"C:\Users\Atual\AppData\Local\Temp/ipykernel_9144/1192934994.py"[1;36m, line [1;32m1[0m
[1;33m s = "C:\Users\Atual\Google Drive\"[0m
[1;37m ^[0m
[1;31mSyntaxError[0m[1;31m:[0m EOL while scanning string literal
```
### Conda terminal window output
On the conda terminal window, the following sequence of errors is registered:
```
(cq) C:\Users\Atual>cq-editor
Namespace(filename=None)
IOStream.flush timed out
IOStream.flush timed out
...
```
### Version info
Version: 0.3.0dev
Windows 10
Installed using Conda and Python 3.9.1
Contributor guide
No contributing guide indexed for this repository
Assessment
This issue has not been assessed yet.