Recent update of py-tornado to 5.1.1 broke jupyter-notebook with the
error below.

[E 14:09:57.987 NotebookApp] Uncaught exception GET 
/api/kernels/1d0a9a49-8d76-4cf9-8948-c4983a3c81d5/channels?session_id=63D301DA4CB645F59EEEC4ACC6B55273
 (::1)
    HTTPServerRequest(protocol='http', host='localhost:8888', method='GET', 
uri='/api/kernels/1d0a9a49-8d76-4cf9-8948-c4983a3c81d5/channels?session_id=63D301DA4CB645F59EEEC4ACC6B55273',
 version='HTTP/1.1', remote_ip='::1')
    Traceback (most recent call last):
      File "/usr/local/lib/python3.7/site-packages/tornado/websocket.py", line 
546, in _run_callback
        result = callback(*args, **kwargs)
      File 
"/usr/local/lib/python3.7/site-packages/notebook/services/kernels/handlers.py", 
line 262, in open
        super(ZMQChannelsHandler, self).open()
      File 
"/usr/local/lib/python3.7/site-packages/notebook/base/zmqhandlers.py", line 
176, in open
        self.send_ping, self.ping_interval, io_loop=loop,
    TypeError: __init__() got an unexpected keyword argument 'io_loop'


Diff below fixes the issue.

OK?


diff --git www/jupyter-notebook/Makefile www/jupyter-notebook/Makefile
index e95f27126ed..d632fc735c0 100644
--- www/jupyter-notebook/Makefile
+++ www/jupyter-notebook/Makefile
@@ -3,6 +3,7 @@
 COMMENT =              web-based notebook for interactive computing
 
 MODPY_EGG_VERSION =    5.0.0
+REVISION =             0
 DISTNAME =             notebook-${MODPY_EGG_VERSION}
 PKGNAME =              jupyter-notebook-${MODPY_EGG_VERSION}
 
diff --git www/jupyter-notebook/patches/patch-notebook_base_zmqhandlers_py 
www/jupyter-notebook/patches/patch-notebook_base_zmqhandlers_py
new file mode 100644
index 00000000000..8cf1459b782
--- /dev/null
+++ www/jupyter-notebook/patches/patch-notebook_base_zmqhandlers_py
@@ -0,0 +1,18 @@
+$OpenBSD$
+
+Fix issue with py-tornado-5:
+
+TypeError: __init__() got an unexpected keyword argument 'io_loop'
+
+Index: notebook/base/zmqhandlers.py
+--- notebook/base/zmqhandlers.py.orig
++++ notebook/base/zmqhandlers.py
+@@ -173,7 +173,7 @@ class WebSocketMixin(object):
+             self.last_ping = loop.time()  # Remember time of last ping
+             self.last_pong = self.last_ping
+             self.ping_callback = ioloop.PeriodicCallback(
+-                self.send_ping, self.ping_interval, io_loop=loop,
++                self.send_ping, self.ping_interval,
+             )
+             self.ping_callback.start()
+         return super(WebSocketMixin, self).open(*args, **kwargs)

Reply via email to