Running notebooks with Python 3.8.3 causes Assertion errors
- Langage dominant
- Python
- Étoiles
- 734
- Forks
- 412
- Merge moyen
- 1 j 5 h
- PR mergées (30 j)
- 8
Description
Since upgrading to the latest python release 3.8.3 on my system I have had issues running a notebook, specifically: https://github.com/Qiskit/qiskit-tutorials/blob/master/tutorials/circuits_advanced/1_advanced_circuits.ipynb Running that notebook when you run it from scratch on a fresh kernel it hangs on cell 8 and the jupyter notebook output logs multiple assertion errors:
```
[I 07:27:26.810 NotebookApp] Replaying 3 buffered messages
[IPKernelApp] ERROR | Exception in message handler:
Traceback (most recent call last):
File "/tmp/test-tutorials/lib/python3.8/site-packages/ipykernel/kernelbase.py", line 268, in dispatch_shell
yield gen.maybe_future(handler(stream, idents, msg))
File "/tmp/test-tutorials/lib/python3.8/site-packages/tornado/gen.py", line 735, in run
value = future.result()
File "/tmp/test-tutorials/lib/python3.8/site-packages/tornado/gen.py", line 209, in wrapper
yielded = next(result)
File "/tmp/test-tutorials/lib/python3.8/site-packages/ipykernel/kernelbase.py", line 543, in execute_request
self.do_execute(
File "/tmp/test-tutorials/lib/python3.8/site-packages/tornado/gen.py", line 225, in wrapper
runner = Runner(result, future, yielded)
File "/tmp/test-tutorials/lib/python3.8/site-packages/tornado/gen.py", line 712, in __init__
if self.handle_yield(first_yielded):
File "/tmp/test-tutorials/lib/python3.8/site-packages/tornado/gen.py", line 789, in handle_yield
self.io_loop.add_future(self.future, inner)
File "/tmp/test-tutorials/lib/python3.8/site-packages/tornado/ioloop.py", line 693, in add_future
assert is_future(future)
AssertionError
[IPKernelApp] ERROR | Exception in message handler:
Traceback (most recent call last):
File "/tmp/test-tutorials/lib/python3.8/site-packages/ipykernel/kernelbase.py", line 268, in dispatch_shell
yield gen.maybe_future(handler(stream, idents, msg))
File "/tmp/test-tutorials/lib/python3.8/site-packages/tornado/gen.py", line 735, in run
value = future.result()
File "/tmp/test-tutorials/lib/python3.8/site-packages/tornado/gen.py", line 209, in wrapper
yielded = next(result)
File "/tmp/test-tutorials/lib/python3.8/site-packages/ipykernel/kernelbase.py", line 543, in execute_request
self.do_execute(
File "/tmp/test-tutorials/lib/python3.8/site-packages/tornado/gen.py", line 225, in wrapper
runner = Runner(result, future, yielded)
File "/tmp/test-tutorials/lib/python3.8/site-packages/tornado/gen.py", line 712, in __init__
if self.handle_yield(first_yielded):
File "/tmp/test-tutorials/lib/python3.8/site-packages/tornado/gen.py", line 789, in handle_yield
self.io_loop.add_future(self.future, inner)
File "/tmp/test-tutorials/lib/python3.8/site-packages/tornado/ioloop.py", line 693, in add_future
assert is_future(future)
AssertionError
[IPKernelApp] ERROR | Exception in message handler:
Traceback (most recent call last):
File "/tmp/test-tutorials/lib/python3.8/site-packages/ipykernel/kernelbase.py", line 268, in dispatch_shell
yield gen.maybe_future(handler(stream, idents, msg))
File "/tmp/test-tutorials/lib/python3.8/site-packages/tornado/gen.py", line 735, in run
value = future.result()
File "/tmp/test-tutorials/lib/python3.8/site-packages/tornado/gen.py", line 209, in wrapper
yielded = next(result)
File "/tmp/test-tutorials/lib/python3.8/site-packages/ipykernel/kernelbase.py", line 543, in execute_request
self.do_execute(
File "/tmp/test-tutorials/lib/python3.8/site-packages/tornado/gen.py", line 225, in wrapper
runner = Runner(result, future, yielded)
File "/tmp/test-tutorials/lib/python3.8/site-packages/tornado/gen.py", line 712, in __init__
if self.handle_yield(first_yielded):
File "/tmp/test-tutorials/lib/python3.8/site-packages/tornado/gen.py", line 789, in handle_yield
self.io_loop.add_future(self.future, inner)
File "/tmp/test-tutorials/lib/python3.8/site-packages/tornado/ioloop.py", line 693, in add_future
assert is_future(future)
AssertionError
[IPKernelApp] ERROR | Exception in message handler:
Traceback (most recent call last):
File "/tmp/test-tutorials/lib/python3.8/site-packages/ipykernel/kernelbase.py", line 268, in dispatch_shell
yield gen.maybe_future(handler(stream, idents, msg))
File "/tmp/test-tutorials/lib/python3.8/site-packages/tornado/gen.py", line 735, in run
value = future.result()
File "/tmp/test-tutorials/lib/python3.8/site-packages/tornado/gen.py", line 209, in wrapper
yielded = next(result)
File "/tmp/test-tutorials/lib/python3.8/site-packages/ipykernel/kernelbase.py", line 543, in execute_request
self.do_execute(
File "/tmp/test-tutorials/lib/python3.8/site-packages/tornado/gen.py", line 225, in wrapper
runner = Runner(result, future, yielded)
File "/tmp/test-tutorials/lib/python3.8/site-packages/tornado/gen.py", line 712, in __init__
if self.handle_yield(first_yielded):
File "/tmp/test-tutorials/lib/python3.8/site-packages/tornado/gen.py", line 789, in handle_yield
self.io_loop.add_future(self.future, inner)
File "/tmp/test-tutorials/lib/python3.8/site-packages/tornado/ioloop.py", line 693, in add_future
assert is_future(future)
AssertionError
```
Downgrading python to 3.8.2 (or 3.7.x) fixes this. I've also confirmed it on other platforms (I run on linux, but mac users running 3.8.3 have had the same issue). I assume this is probably a bug in python or tornado, but I lack the domain expertise on the stack to be sure.
Guide de contribution
Ouvrir le guide de contribution
Piste de recherche
Reproduce the linked circuits_advanced/1_advanced_circuits.ipynb from a fresh kernel under Python 3.8.3, then inspect the traceback locations in ipykernel/kernelbase.py and tornado/ioloop.py. Compare with Python 3.8.2 or 3.7.x, where the notebook works; done means identifying the compatibility cause and verifying the resulting fix or dependency change.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Évaluation
- Stack technique
- jupyter-notebook, python
- Domaine
- devtools
- Type d'issue
- Bug
- Difficulté
- 4/5
- Temps estimé
- 3-5 jours
- Activité
- À l'abandon
- Clarté
- À clarifier
- Accessibilité débutants
- 35/100