notebook: Kernel error: jupyter_client/connect.py AssertionError
Error message
Traceback (most recent call last): File “/home/djan/anaconda3/lib/python3.7/site-packages/tornado/web.py”, line 1699, in _execute result = await result File “/home/djan/anaconda3/lib/python3.7/site-packages/tornado/gen.py”, line 742, in run yielded = self.gen.throw(*exc_info) # type: ignore File “/home/djan/anaconda3/lib/python3.7/site-packages/notebook/services/sessions/handlers.py”, line 72, in post type=mtype)) File “/home/djan/anaconda3/lib/python3.7/site-packages/tornado/gen.py”, line 735, in run value = future.result() File “/home/djan/anaconda3/lib/python3.7/site-packages/tornado/gen.py”, line 742, in run yielded = self.gen.throw(*exc_info) # type: ignore File “/home/djan/anaconda3/lib/python3.7/site-packages/notebook/services/sessions/sessionmanager.py”, line 88, in create_session kernel_id = yield self.start_kernel_for_session(session_id, path, name, type, kernel_name) File “/home/djan/anaconda3/lib/python3.7/site-packages/tornado/gen.py”, line 735, in run value = future.result() File “/home/djan/anaconda3/lib/python3.7/site-packages/tornado/gen.py”, line 742, in run yielded = self.gen.throw(*exc_info) # type: ignore File “/home/djan/anaconda3/lib/python3.7/site-packages/notebook/services/sessions/sessionmanager.py”, line 101, in start_kernel_for_session self.kernel_manager.start_kernel(path=kernel_path, kernel_name=kernel_name) File “/home/djan/anaconda3/lib/python3.7/site-packages/tornado/gen.py”, line 735, in run value = future.result() File “/home/djan/anaconda3/lib/python3.7/site-packages/tornado/gen.py”, line 209, in wrapper yielded = next(result) File “/home/djan/anaconda3/lib/python3.7/site-packages/notebook/services/kernels/kernelmanager.py”, line 168, in start_kernel super(MappingKernelManager, self).start_kernel(**kwargs) File “/home/djan/anaconda3/lib/python3.7/site-packages/jupyter_client/multikernelmanager.py”, line 110, in start_kernel km.start_kernel(**kwargs) File “/home/djan/anaconda3/lib/python3.7/site-packages/jupyter_client/manager.py”, line 240, in start_kernel self.write_connection_file() File “/home/djan/anaconda3/lib/python3.7/site-packages/jupyter_client/connect.py”, line 547, in write_connection_file kernel_name=self.kernel_name File “/home/djan/anaconda3/lib/python3.7/site-packages/jupyter_client/connect.py”, line 212, in write_connection_file with secure_write(fname) as f: File “/home/djan/anaconda3/lib/python3.7/contextlib.py”, line 112, in enter return next(self.gen) File “/home/djan/anaconda3/lib/python3.7/site-packages/jupyter_client/connect.py”, line 105, in secure_write assert ‘0600’ == oct(stat.S_IMODE(os.stat(fname).st_mode)).replace(‘0o’, ‘0’) AssertionError
System information
Running Jupyter (v. 1.0.0) on a Linux server, with anaconda3 (v. 2019.07) 64-bit.
Available Kernels
Available kernels: python3 /home/djan/.local/share/jupyter/kernels/python3 nn /home/djan/.local/share/jupyter/kernels/nn
Reproducing the issue
- Install the newest anaconda3 version.
- Run Jupyter notebook in the base version --> Kernel runs fine
- Create a new environment with python:
conda create -n test python=3.7
- After activating the environment, Jupyter notebook is not available, thus I must install it via Conda:
conda install -c anaconda jupyter
- Run Jupyter notebook in the test environment --> Kernel breaks down as explained above
What I tried so far
There seems to be an issue with file permissions when running Jupyter on a server inside a Conda environment. I tried to give all files inside my anaconda3 folder the requested permissions (0600), but this did not help.
About this issue
- Original URL
- State: closed
- Created 5 years ago
- Reactions: 1
- Comments: 21 (9 by maintainers)
Update
It turns out that the newest version of
jupyter_client
, available under anaconda as version 5.3.3, breaks the Jupyter environment on a server.Installing the previous version of jupyter_client via following command fixes this issue:
conda install -c anaconda jupyter_client=5.3.1
jupyter_client
is the other.Thanks @kevin-bates - Looks like I can run
jupyter notebook
just notjupyter labs
Hi @a114383 - updating
jupyter_client
(in the first half of your comment) was the correct thing to do. Unfortunately, it exposed an issue in jupyter_server in which the oldersecure_write
method is still in place and should be replaced with thesecure_write
method injupyter_core
. This update will likely still trigger a similar failure, but the messaging should be a bit more helpful.I suspect you’d be able to simulate that error by attempting to run
jupyter notebook
in this environment - since notebook uses the correct variant ofsecure_write
. Could you please try that? I’d like to be able to close this issue here.I will open a new issue in jupyter_server regarding my previous comment.
So is an updated
jupyter_client
bottom pin ofjupyter_core >=4.6.1
now appropriate?