yitzchak / common-lisp-jupyter

A Common Lisp kernel for Jupyter along with a library for building Jupyter kernels.
https://yitzchak.github.io/common-lisp-jupyter
MIT License
225 stars 28 forks source link

Errors after upgrade #91

Closed Symbolics closed 2 years ago

Symbolics commented 2 years ago

I hadn't upgraded for a year, and now is a good time to do it. The procedure was to 'git fetch', then reinstall with

CL-USER(2): (cl-jupyter:install)
Creating directories.
Installing kernel spec file C:/Users/nunez/AppData/Roaming/jupyter/kernels/common-lisp/kernel.json
Installing kernel resources to C:/Users/nunez/AppData/Roaming/jupyter/kernels/common-lisp/.
Installing local systems to C:/Users/nunez/AppData/Roaming/common-lisp-jupyter/local-projects/

I also upgraded Jupyter Lab with conda update jupyterlab as well as conda update zeromq. shasht is from Quicklisp. The MSYS2 zeromq library is up to date with the latest version.

Jupyter Lab will start, and shows the latest version, but jupyter-console --kernel=common-lisp fails:

This is SBCL 2.1.6, an implementation of ANSI Common Lisp.                                                                                             
More information about SBCL is available at <http://www.sbcl.org/>.                                                                                    

SBCL is free software, provided as is, with absolutely no warranty.                                                                                    
It is mostly in the public domain; some portions are provided under                                                                                    
BSD-style licenses.  See the CREDITS and COPYING files in the                                                                                          
distribution for more information.                                                                                                                     
C:\Users\nunez\miniconda3\lib\site-packages\zmq\_future.py:591: RuntimeWarning: Proactor event loop does not implement add_reader family of methods req
uired for zmq. Registering an additional selector thread for add_reader support via tornado. Use `asyncio.set_event_loop_policy(WindowsSelectorEventLoo
pPolicy())` to avoid this warning.                                                                                                                     
  self._get_loop()                                                                                                                                     
Error on reading from the event loop self pipe                                                                                                         
loop: <ProactorEventLoop running=True closed=False debug=False>                                                                                        
Traceback (most recent call last):                                                                                                                     
  File "C:\Users\nunez\miniconda3\lib\asyncio\windows_events.py", line 453, in finish_recv                                                             
    return ov.getresult()                                                                                                                              
OSError: [WinError 995] The I/O operation has been aborted because of either a thread exit or an application request                                   

During handling of the above exception, another exception occurred:                                                                                    

Traceback (most recent call last):                                                                                                                     
  File "C:\Users\nunez\miniconda3\lib\asyncio\proactor_events.py", line 768, in _loop_self_reading                                                     
    f.result()  # may raise                                                                                                                            
  File "C:\Users\nunez\miniconda3\lib\asyncio\windows_events.py", line 808, in _poll                                                                   
    value = callback(transferred, key, ov)                                                                                                             
  File "C:\Users\nunez\miniconda3\lib\asyncio\windows_events.py", line 457, in finish_recv                                                             
    raise ConnectionResetError(*exc.args)                                                                                                              
ConnectionResetError: [WinError 995] The I/O operation has been aborted because of either a thread exit or an application request                      
Traceback (most recent call last):                                                                                                                     
    reply = self.client.get_shell_msg(timeout=1)                                                                                                       
  File "C:\Users\nunez\miniconda3\lib\site-packages\jupyter_client\utils.py", line 26, in wrapped                                                      
    raise e                                                                                                                                            
  File "C:\Users\nunez\miniconda3\lib\site-packages\jupyter_client\utils.py", line 23, in wrapped                                                      
    return loop.run_until_complete(future)                                                                                                             
  File "C:\Users\nunez\miniconda3\lib\site-packages\nest_asyncio.py", line 70, in run_until_complete                                                   
    return f.result()                                                                                                                                  
  File "C:\Users\nunez\miniconda3\lib\asyncio\futures.py", line 178, in result                                                                         
    result = coro.send(None)                                                                                                                           
  File "C:\Users\nunez\miniconda3\lib\site-packages\jupyter_client\client.py", line 121, in _async_get_shell_msg                                       
    return await self.shell_channel.get_msg(*args, **kwargs)                                                                                           
  File "C:\Users\nunez\miniconda3\lib\site-packages\jupyter_client\channels.py", line 230, in get_msg                                                  
    raise Empty                                                                                                                                        
_queue.Empty                                                                                                                                           

The above exception was the direct cause of the following exception:                                                                                   

Traceback (most recent call last):                                                                                                                     
  File "C:\Users\nunez\miniconda3\Scripts\jupyter-console-script.py", line 9, in <module>                                                              
    sys.exit(main())                                                                                                                                   
  File "C:\Users\nunez\miniconda3\lib\site-packages\jupyter_core\application.py", line 264, in launch_instance                                         
    return super(JupyterApp, cls).launch_instance(argv=argv, **kwargs)                                                                                 
  File "C:\Users\nunez\miniconda3\lib\site-packages\traitlets\config\application.py", line 845, in launch_instance                                     
    app.initialize(argv)                                                                                                                               
  File "C:\Users\nunez\miniconda3\lib\site-packages\traitlets\config\application.py", line 88, in inner                                                
    return method(app, *args, **kwargs)                                                                                                                
  File "C:\Users\nunez\miniconda3\lib\site-packages\jupyter_console\app.py", line 137, in initialize                                                   
    self.init_shell()                                                                                                                                  
  File "C:\Users\nunez\miniconda3\lib\site-packages\jupyter_console\app.py", line 107, in init_shell                                                   
    self.shell = ZMQTerminalInteractiveShell.instance(parent=self,                                                                                     
  File "C:\Users\nunez\miniconda3\lib\site-packages\traitlets\config\configurable.py", line 540, in instance                                           
    inst = cls(*args, **kwargs)                                                                                                                        
  File "C:\Users\nunez\miniconda3\lib\site-packages\jupyter_console\ptshell.py", line 351, in __init__                                                 
    self.init_kernel_info()                                                                                                                            
  File "C:\Users\nunez\miniconda3\lib\site-packages\jupyter_console\ptshell.py", line 436, in init_kernel_info                                         
    raise RuntimeError("Kernel didn't respond to kernel_info_request") from e                                                                          
RuntimeError: Kernel didn't respond to kernel_info_request                                                                                             
PS S:\src\ips> COMMON-LISP:WARNING: Missing column name was filled in                                                                                  
COMMON-LISP:WARNING: Missing column name was filled in                                                                                                 
COMMON-LISP:WARNING: Missing column name was filled in                                                                                                 
Loading TOOTHGROWTHLoading PLANTGROWTHLoading USARRESTSTo load "common-lisp-jupyter":                                                                  
  Load 1 ASDF system:                                                                                                                                  
    common-lisp-jupyter                                                                                                                                
; Loading "common-lisp-jupyter"                                                                                                                        
...                                                                                                                                                    

debugger invoked on a FILE-DOES-NOT-EXIST in thread #<THREAD "main thread" RUNNING {101C3E0003}>: The file #P"C:/Users/nunez/AppData/Roaming/jupyter/ru
ntime/kernel-57888.json" does not exist: The system cannot find the file specified.                                                                    

Type HELP for debugger help, or (SB-EXT:EXIT) to exit from SBCL.                                                                                       

restarts (invokable by number or by possibly-abbreviated name):                                                                                        
  0: [CREATE   ] Reopen with :if-does-not-exist :create                                                                                                
  1: [CONTINUE ] Retry opening.                                                                                                                        
  2: [USE-VALUE] Try opening a different file.                                                                                                         
  3:             Ignore runtime option --eval "(jupyter:run-kernel 'jupyter/common-lisp:kernel)".                                                      
  4: [ABORT    ] Skip rest of --eval and --load options.                                                                                               
  5:             Skip to toplevel READ/EVAL/PRINT loop.                                                                                                
  6: [EXIT     ] Exit SBCL (calling #'EXIT, killing the process).                                                                                      

(SB-IMPL::FILE-PERROR #P"C:/Users/nunez/AppData/Roaming/jupyter/runtime/kernel-57888.json" 2 FILE-DOES-NOT-EXIST)                                      
0]                                                                                                                                                     
CL-USER(1):  > (quit)                                                                                                                                  
quit : The term 'quit' is not recognized as the name of a cmdlet, function, script file, or operable program. Check the spelling of the name, or if a  
path was included, verify that the path is correct and try again.                                                                                      
At line:1 char:2                                                                                                                                       
+ (quit)                                                                                                                                               
+  ~~~~                                                                                                                                                
    + CategoryInfo          : ObjectNotFound: (quit:String) [], CommandNotFoundException                                                               
    + FullyQualifiedErrorId : CommandNotFoundException                                                                                                 

Is there something else that needs updating?

Symbolics commented 2 years ago

I wish I could say I knew exactly how I 'fixed' this, but I don't. I believe it has to do with the timeouts. Increasing that with a command-line option for jupyter-console seems to have done the trick.