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

  1. Install the newest anaconda3 version.
  2. Run Jupyter notebook in the base version --> Kernel runs fine
  3. Create a new environment with python: conda create -n test python=3.7
  4. After activating the environment, Jupyter notebook is not available, thus I must install it via Conda: conda install -c anaconda jupyter
  5. 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)

Most upvoted comments

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 not jupyter 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 older secure_write method is still in place and should be replaced with the secure_write method in jupyter_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 of secure_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 of jupyter_core >=4.6.1 now appropriate?