-
Notifications
You must be signed in to change notification settings - Fork 84
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
nbclient.exceptions.DeadKernelError from papermill if PYTHONWARNINGS='default' #1840
Open
1 task done
Labels
bug
Something isn't working
Comments
matthewfeickert
added
bug
Something isn't working
needs-triage
Needs a maintainer to categorize and assign
labels
Apr 6, 2022
4 tasks
@kratsg @lukasheinrich I'm unable to replicate the error that the GHA runners in PR #1841 are seeing when I (on the same branch) run $ pytest --override-ini filterwarnings= tests/test_notebooks.py -k test_xml_importexport
================================================================= test session starts ==================================================================
platform linux -- Python 3.9.6, pytest-7.1.1, pluggy-1.0.0
Matplotlib: 3.5.1
Freetype: 2.6.1
benchmark: 3.4.1 (defaults: timer=time.perf_counter disable_gc=False min_rounds=5 min_time=0.000005 max_time=1.0 calibration_precision=10 warmup=False warmup_iterations=100000)
rootdir: /home/feickert/Code/GitHub/pyhf, configfile: pyproject.toml
plugins: console-scripts-1.3.1, mock-3.7.0, mpl-0.14.0, requests-mock-1.9.3, benchmark-3.4.1, cov-3.0.0, anyio-3.3.3
collected 12 items / 11 deselected / 1 selected
tests/test_notebooks.py . [100%] Can one of you try to replicate the GHA runner behavior before I try to bug |
Oh. It fails if you add $ PYTHONWARNINGS='default' pytest --override-ini filterwarnings= tests/test_notebooks.py -k test_xml_importexport &> /tmp/pythonwarnings_log.txt pythonwarnings_log.txt:/home/feickert/.pyenv/versions/pyhf-dev-CPU/lib/python3.9/site-packages/requests_mock/contrib/_pytest_plugin.py:15: DeprecationWarning: distutils Version classes are deprecated. Use packaging.version instead.
_pytest_version = version.StrictVersion(pytest.__version__)
/home/feickert/.pyenv/versions/pyhf-dev-CPU/lib/python3.9/site-packages/requests_mock/contrib/_pytest_plugin.py:16: DeprecationWarning: distutils Version classes are deprecated. Use packaging.version instead.
_pytest29 = _pytest_version >= version.StrictVersion('2.9.0')
/home/feickert/.pyenv/versions/pyhf-dev-CPU/lib/python3.9/site-packages/requests_mock/contrib/_pytest_plugin.py:17: DeprecationWarning: distutils Version classes are deprecated. Use packaging.version instead.
_pytest30 = _pytest_version >= version.StrictVersion('3.0.0')
============================= test session starts ==============================
platform linux -- Python 3.9.6, pytest-7.1.1, pluggy-1.0.0
Matplotlib: 3.5.1
Freetype: 2.6.1
benchmark: 3.4.1 (defaults: timer=time.perf_counter disable_gc=False min_rounds=5 min_time=0.000005 max_time=1.0 calibration_precision=10 warmup=False warmup_iterations=100000)
rootdir: /home/feickert/Code/GitHub/pyhf, configfile: pyproject.toml
plugins: console-scripts-1.3.1, mock-3.7.0, mpl-0.14.0, requests-mock-1.9.3, benchmark-3.4.1, cov-3.0.0, anyio-3.3.3
collected 12 items / 11 deselected / 1 selected
tests/test_notebooks.py F [100%]
=================================== FAILURES ===================================
____________________________ test_xml_importexport _____________________________
self = <papermill.clientwrap.PapermillNotebookClient object at 0x7fbeb2135b20>
msg_id = '00b826eb-55989758c7b1b700d57d9c4d_31186_4'
cell = {'cell_type': 'code', 'execution_count': 4, 'metadata': {'tags': [], 'papermill': {'exception': False, 'start_time': '...e': '!mkdir -p output\n!pyhf json2xml xml_importexport.json --output-dir output\n!ls -lavh output/*', 'id': '36b1477f'}
timeout = None
task_poll_output_msg = <Task cancelled name='Task-21' coro=<NotebookClient._async_poll_output_msg() done, defined at /home/feickert/.pyenv/versions/pyhf-dev-CPU/lib/python3.9/site-packages/nbclient/client.py:756>>
task_poll_kernel_alive = <Task finished name='Task-20' coro=<NotebookClient._async_poll_kernel_alive() done, defined at /home/feickert/.pyenv/versions/pyhf-dev-CPU/lib/python3.9/site-packages/nbclient/client.py:770> result=None>
async def _async_poll_for_reply(
self,
msg_id: str,
cell: NotebookNode,
timeout: t.Optional[int],
task_poll_output_msg: asyncio.Future,
task_poll_kernel_alive: asyncio.Future,
) -> t.Dict:
assert self.kc is not None
new_timeout: t.Optional[float] = None
if timeout is not None:
deadline = monotonic() + timeout
new_timeout = float(timeout)
while True:
try:
> msg = await ensure_async(self.kc.shell_channel.get_msg(timeout=new_timeout))
cell = {'cell_type': 'code', 'execution_count': 4, 'metadata': {'tags': [], 'papermill': {'exception': False, 'start_time': '...e': '!mkdir -p output\n!pyhf json2xml xml_importexport.json --output-dir output\n!ls -lavh output/*', 'id': '36b1477f'}
msg_id = '00b826eb-55989758c7b1b700d57d9c4d_31186_4'
new_timeout = None
self = <papermill.clientwrap.PapermillNotebookClient object at 0x7fbeb2135b20>
task_poll_kernel_alive = <Task finished name='Task-20' coro=<NotebookClient._async_poll_kernel_alive() done, defined at /home/feickert/.pyenv/versions/pyhf-dev-CPU/lib/python3.9/site-packages/nbclient/client.py:770> result=None>
task_poll_output_msg = <Task cancelled name='Task-21' coro=<NotebookClient._async_poll_output_msg() done, defined at /home/feickert/.pyenv/versions/pyhf-dev-CPU/lib/python3.9/site-packages/nbclient/client.py:756>>
timeout = None
../../../.pyenv/versions/pyhf-dev-CPU/lib/python3.9/site-packages/nbclient/client.py:730:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
obj = <coroutine object ZMQSocketChannel.get_msg at 0x7fbe9e569940>
async def ensure_async(obj: Union[Awaitable, Any]) -> Any:
"""Convert a non-awaitable object to a coroutine if needed,
and await it if it was not already awaited.
"""
if inspect.isawaitable(obj):
try:
> result = await obj
obj = <coroutine object ZMQSocketChannel.get_msg at 0x7fbe9e569940>
../../../.pyenv/versions/pyhf-dev-CPU/lib/python3.9/site-packages/nbclient/util.py:96:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <jupyter_client.channels.ZMQSocketChannel object at 0x7fbe9e580f40>
timeout = None
async def get_msg(self, timeout: t.Optional[float] = None) -> t.Dict[str, t.Any]:
"""Gets a message if there is one that is ready."""
assert self.socket is not None
if timeout is not None:
timeout *= 1000 # seconds to ms
> ready = await self.socket.poll(timeout)
E asyncio.exceptions.CancelledError
self = <jupyter_client.channels.ZMQSocketChannel object at 0x7fbe9e580f40>
timeout = None
../../../.pyenv/versions/pyhf-dev-CPU/lib/python3.9/site-packages/jupyter_client/channels.py:224: CancelledError
During handling of the above exception, another exception occurred:
self = <papermill.clientwrap.PapermillNotebookClient object at 0x7fbeb2135b20>
cell = {'cell_type': 'code', 'execution_count': 4, 'metadata': {'tags': [], 'papermill': {'exception': False, 'start_time': '...e': '!mkdir -p output\n!pyhf json2xml xml_importexport.json --output-dir output\n!ls -lavh output/*', 'id': '36b1477f'}
cell_index = 6, execution_count = None, store_history = True
async def async_execute_cell(
self,
cell: NotebookNode,
cell_index: int,
execution_count: t.Optional[int] = None,
store_history: bool = True,
) -> NotebookNode:
"""
Executes a single code cell.
To execute all cells see :meth:`execute`.
Parameters
----------
cell : nbformat.NotebookNode
The cell which is currently being processed.
cell_index : int
The position of the cell within the notebook object.
execution_count : int
The execution count to be assigned to the cell (default: Use kernel response)
store_history : bool
Determines if history should be stored in the kernel (default: False).
Specific to ipython kernels, which can store command histories.
Returns
-------
output : dict
The execution output payload (or None for no output).
Raises
------
CellExecutionError
If execution failed and should raise an exception, this will be raised
with defaults about the failure.
Returns
-------
cell : NotebookNode
The cell which was just processed.
"""
assert self.kc is not None
await run_hook(self.on_cell_start, cell=cell, cell_index=cell_index)
if cell.cell_type != 'code' or not cell.source.strip():
self.log.debug("Skipping non-executing cell %s", cell_index)
return cell
if self.skip_cells_with_tag in cell.metadata.get("tags", []):
self.log.debug("Skipping tagged cell %s", cell_index)
return cell
if self.record_timing: # clear execution metadata prior to execution
cell['metadata']['execution'] = {}
self.log.debug("Executing cell:\n%s", cell.source)
cell_allows_errors = (not self.force_raise_errors) and (
self.allow_errors or "raises-exception" in cell.metadata.get("tags", [])
)
await run_hook(self.on_cell_execute, cell=cell, cell_index=cell_index)
parent_msg_id = await ensure_async(
self.kc.execute(
cell.source, store_history=store_history, stop_on_error=not cell_allows_errors
)
)
await run_hook(self.on_cell_complete, cell=cell, cell_index=cell_index)
# We launched a code cell to execute
self.code_cells_executed += 1
exec_timeout = self._get_timeout(cell)
cell.outputs = []
self.clear_before_next_output = False
task_poll_kernel_alive = asyncio.ensure_future(self._async_poll_kernel_alive())
task_poll_output_msg = asyncio.ensure_future(
self._async_poll_output_msg(parent_msg_id, cell, cell_index)
)
self.task_poll_for_reply = asyncio.ensure_future(
self._async_poll_for_reply(
parent_msg_id, cell, exec_timeout, task_poll_output_msg, task_poll_kernel_alive
)
)
try:
> exec_reply = await self.task_poll_for_reply
E asyncio.exceptions.CancelledError
cell = {'cell_type': 'code', 'execution_count': 4, 'metadata': {'tags': [], 'papermill': {'exception': False, 'start_time': '...e': '!mkdir -p output\n!pyhf json2xml xml_importexport.json --output-dir output\n!ls -lavh output/*', 'id': '36b1477f'}
cell_allows_errors = False
cell_index = 6
exec_timeout = None
execution_count = None
parent_msg_id = '00b826eb-55989758c7b1b700d57d9c4d_31186_4'
self = <papermill.clientwrap.PapermillNotebookClient object at 0x7fbeb2135b20>
store_history = True
task_poll_kernel_alive = <Task finished name='Task-20' coro=<NotebookClient._async_poll_kernel_alive() done, defined at /home/feickert/.pyenv/versions/pyhf-dev-CPU/lib/python3.9/site-packages/nbclient/client.py:770> result=None>
task_poll_output_msg = <Task cancelled name='Task-21' coro=<NotebookClient._async_poll_output_msg() done, defined at /home/feickert/.pyenv/versions/pyhf-dev-CPU/lib/python3.9/site-packages/nbclient/client.py:756>>
../../../.pyenv/versions/pyhf-dev-CPU/lib/python3.9/site-packages/nbclient/client.py:949: CancelledError
During handling of the above exception, another exception occurred:
common_kwargs = {'kernel_name': 'python3', 'output_path': PosixPath('/tmp/pytest-of-feickert/pytest-38/test_xml_importexport0/output.ipynb'), 'progress_bar': False, 'start_timeout': 120}
def test_xml_importexport(common_kwargs):
# Change directories to make users not have to worry about paths to follow example
execution_dir = Path.cwd() / "docs" / "examples" / "notebooks"
> pm.execute_notebook(
execution_dir / "XML_ImportExport.ipynb", cwd=execution_dir, **common_kwargs
)
common_kwargs = {'kernel_name': 'python3', 'output_path': PosixPath('/tmp/pytest-of-feickert/pytest-38/test_xml_importexport0/output.ipynb'), 'progress_bar': False, 'start_timeout': 120}
execution_dir = PosixPath('/home/feickert/Code/GitHub/pyhf/docs/examples/notebooks')
tests/test_notebooks.py:27:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
../../../.pyenv/versions/pyhf-dev-CPU/lib/python3.9/site-packages/papermill/execute.py:107: in execute_notebook
nb = papermill_engines.execute_notebook_with_engine(
cwd = '/home/feickert/Code/GitHub/pyhf/docs/examples/notebooks'
engine_kwargs = {}
engine_name = None
input_path = '/home/feickert/Code/GitHub/pyhf/docs/examples/notebooks/XML_ImportExport.ipynb'
kernel_name = 'python3'
language = None
log_output = False
nb = {'cells': [{'cell_type': 'markdown', 'metadata': {'tags': [], 'papermill': {}}, 'source': '# XML Import/Export', 'id':...t_path': '/tmp/pytest-of-feickert/pytest-38/test_xml_importexport0/output.ipynb'}}, 'nbformat': 4, 'nbformat_minor': 5}
output_path = '/tmp/pytest-of-feickert/pytest-38/test_xml_importexport0/output.ipynb'
parameters = None
path_parameters = {'pm': {'current_datetime_local': datetime.datetime(2022, 4, 6, 3, 20, 1, 266691), 'current_datetime_utc': datetime.datetime(2022, 4, 6, 8, 20, 1, 266694), 'run_uuid': '9bf111c4-898a-4715-8cb1-4a5cb0899708'}}
prepare_only = False
progress_bar = False
report_mode = False
request_save_on_cell_execute = True
start_timeout = 120
stderr_file = None
stdout_file = None
../../../.pyenv/versions/pyhf-dev-CPU/lib/python3.9/site-packages/papermill/engines.py:49: in execute_notebook_with_engine
return self.get_engine(engine_name).execute_notebook(nb, kernel_name, **kwargs)
engine_name = None
kernel_name = 'python3'
kwargs = {'input_path': '/home/feickert/Code/GitHub/pyhf/docs/examples/notebooks/XML_ImportExport.ipynb', 'log_output': False, 'output_path': '/tmp/pytest-of-feickert/pytest-38/test_xml_importexport0/output.ipynb', 'progress_bar': False, ...}
nb = {'cells': [{'cell_type': 'markdown', 'metadata': {'tags': [], 'papermill': {}}, 'source': '# XML Import/Export', 'id':...t_path': '/tmp/pytest-of-feickert/pytest-38/test_xml_importexport0/output.ipynb'}}, 'nbformat': 4, 'nbformat_minor': 5}
self = <papermill.engines.PapermillEngines object at 0x7fbeb8968f40>
../../../.pyenv/versions/pyhf-dev-CPU/lib/python3.9/site-packages/papermill/engines.py:359: in execute_notebook
cls.execute_managed_notebook(nb_man, kernel_name, log_output=log_output, **kwargs)
autosave_cell_every = 30
cls = <class 'papermill.engines.NBClientEngine'>
kernel_name = 'python3'
kwargs = {'input_path': '/home/feickert/Code/GitHub/pyhf/docs/examples/notebooks/XML_ImportExport.ipynb', 'start_timeout': 120, 'stderr_file': None, 'stdout_file': None}
log_output = False
nb = {'cells': [{'cell_type': 'markdown', 'metadata': {'tags': [], 'papermill': {}}, 'source': '# XML Import/Export', 'id':...t_path': '/tmp/pytest-of-feickert/pytest-38/test_xml_importexport0/output.ipynb'}}, 'nbformat': 4, 'nbformat_minor': 5}
nb_man = <papermill.engines.NotebookExecutionManager object at 0x7fbeb2135970>
output_path = '/tmp/pytest-of-feickert/pytest-38/test_xml_importexport0/output.ipynb'
progress_bar = False
../../../.pyenv/versions/pyhf-dev-CPU/lib/python3.9/site-packages/papermill/engines.py:418: in execute_managed_notebook
return PapermillNotebookClient(nb_man, **final_kwargs).execute()
cls = <class 'papermill.engines.NBClientEngine'>
execution_timeout = None
final_kwargs = {'input_path': '/home/feickert/Code/GitHub/pyhf/docs/examples/notebooks/XML_ImportExport.ipynb', 'kernel_name': 'python3', 'log': <Logger papermill (INFO)>, 'log_output': False, ...}
kernel_name = 'python3'
kwargs = {'input_path': '/home/feickert/Code/GitHub/pyhf/docs/examples/notebooks/XML_ImportExport.ipynb'}
log_output = False
nb_man = <papermill.engines.NotebookExecutionManager object at 0x7fbeb2135970>
safe_kwargs = {'input_path': '/home/feickert/Code/GitHub/pyhf/docs/examples/notebooks/XML_ImportExport.ipynb'}
start_timeout = 120
stderr_file = None
stdout_file = None
../../../.pyenv/versions/pyhf-dev-CPU/lib/python3.9/site-packages/papermill/clientwrap.py:45: in execute
self.papermill_execute_cells()
kwargs = {}
self = <papermill.clientwrap.PapermillNotebookClient object at 0x7fbeb2135b20>
../../../.pyenv/versions/pyhf-dev-CPU/lib/python3.9/site-packages/papermill/clientwrap.py:72: in papermill_execute_cells
self.execute_cell(cell, index)
cell = {'cell_type': 'code', 'execution_count': 4, 'metadata': {'tags': [], 'papermill': {'exception': False, 'start_time': '...e': '!mkdir -p output\n!pyhf json2xml xml_importexport.json --output-dir output\n!ls -lavh output/*', 'id': '36b1477f'}
index = 6
self = <papermill.clientwrap.PapermillNotebookClient object at 0x7fbeb2135b20>
../../../.pyenv/versions/pyhf-dev-CPU/lib/python3.9/site-packages/nbclient/util.py:84: in wrapped
return just_run(coro(*args, **kwargs))
args = (<papermill.clientwrap.PapermillNotebookClient object at 0x7fbeb2135b20>, {'cell_type': 'code', 'execution_count': 4, ...'!mkdir -p output\n!pyhf json2xml xml_importexport.json --output-dir output\n!ls -lavh output/*', 'id': '36b1477f'}, 6)
coro = <function NotebookClient.async_execute_cell at 0x7fbeb8973940>
kwargs = {}
../../../.pyenv/versions/pyhf-dev-CPU/lib/python3.9/site-packages/nbclient/util.py:62: in just_run
return loop.run_until_complete(coro)
coro = <coroutine object NotebookClient.async_execute_cell at 0x7fbeb220b940>
had_running_loop = False
loop = <_UnixSelectorEventLoop running=False closed=False debug=False>
../../../.pyenv/versions/3.9.6/lib/python3.9/asyncio/base_events.py:642: in run_until_complete
return future.result()
future = <Task finished name='Task-19' coro=<NotebookClient.async_execute_cell() done, defined at /home/feickert/.pyenv/versions/pyhf-dev-CPU/lib/python3.9/site-packages/nbclient/client.py:864> exception=DeadKernelError('Kernel died')>
new_task = True
self = <_UnixSelectorEventLoop running=False closed=False debug=False>
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <papermill.clientwrap.PapermillNotebookClient object at 0x7fbeb2135b20>
cell = {'cell_type': 'code', 'execution_count': 4, 'metadata': {'tags': [], 'papermill': {'exception': False, 'start_time': '...e': '!mkdir -p output\n!pyhf json2xml xml_importexport.json --output-dir output\n!ls -lavh output/*', 'id': '36b1477f'}
cell_index = 6, execution_count = None, store_history = True
async def async_execute_cell(
self,
cell: NotebookNode,
cell_index: int,
execution_count: t.Optional[int] = None,
store_history: bool = True,
) -> NotebookNode:
"""
Executes a single code cell.
To execute all cells see :meth:`execute`.
Parameters
----------
cell : nbformat.NotebookNode
The cell which is currently being processed.
cell_index : int
The position of the cell within the notebook object.
execution_count : int
The execution count to be assigned to the cell (default: Use kernel response)
store_history : bool
Determines if history should be stored in the kernel (default: False).
Specific to ipython kernels, which can store command histories.
Returns
-------
output : dict
The execution output payload (or None for no output).
Raises
------
CellExecutionError
If execution failed and should raise an exception, this will be raised
with defaults about the failure.
Returns
-------
cell : NotebookNode
The cell which was just processed.
"""
assert self.kc is not None
await run_hook(self.on_cell_start, cell=cell, cell_index=cell_index)
if cell.cell_type != 'code' or not cell.source.strip():
self.log.debug("Skipping non-executing cell %s", cell_index)
return cell
if self.skip_cells_with_tag in cell.metadata.get("tags", []):
self.log.debug("Skipping tagged cell %s", cell_index)
return cell
if self.record_timing: # clear execution metadata prior to execution
cell['metadata']['execution'] = {}
self.log.debug("Executing cell:\n%s", cell.source)
cell_allows_errors = (not self.force_raise_errors) and (
self.allow_errors or "raises-exception" in cell.metadata.get("tags", [])
)
await run_hook(self.on_cell_execute, cell=cell, cell_index=cell_index)
parent_msg_id = await ensure_async(
self.kc.execute(
cell.source, store_history=store_history, stop_on_error=not cell_allows_errors
)
)
await run_hook(self.on_cell_complete, cell=cell, cell_index=cell_index)
# We launched a code cell to execute
self.code_cells_executed += 1
exec_timeout = self._get_timeout(cell)
cell.outputs = []
self.clear_before_next_output = False
task_poll_kernel_alive = asyncio.ensure_future(self._async_poll_kernel_alive())
task_poll_output_msg = asyncio.ensure_future(
self._async_poll_output_msg(parent_msg_id, cell, cell_index)
)
self.task_poll_for_reply = asyncio.ensure_future(
self._async_poll_for_reply(
parent_msg_id, cell, exec_timeout, task_poll_output_msg, task_poll_kernel_alive
)
)
try:
exec_reply = await self.task_poll_for_reply
except asyncio.CancelledError:
# can only be cancelled by task_poll_kernel_alive when the kernel is dead
task_poll_output_msg.cancel()
> raise DeadKernelError("Kernel died")
E nbclient.exceptions.DeadKernelError: Kernel died
cell = {'cell_type': 'code', 'execution_count': 4, 'metadata': {'tags': [], 'papermill': {'exception': False, 'start_time': '...e': '!mkdir -p output\n!pyhf json2xml xml_importexport.json --output-dir output\n!ls -lavh output/*', 'id': '36b1477f'}
cell_allows_errors = False
cell_index = 6
exec_timeout = None
execution_count = None
parent_msg_id = '00b826eb-55989758c7b1b700d57d9c4d_31186_4'
self = <papermill.clientwrap.PapermillNotebookClient object at 0x7fbeb2135b20>
store_history = True
task_poll_kernel_alive = <Task finished name='Task-20' coro=<NotebookClient._async_poll_kernel_alive() done, defined at /home/feickert/.pyenv/versions/pyhf-dev-CPU/lib/python3.9/site-packages/nbclient/client.py:770> result=None>
task_poll_output_msg = <Task cancelled name='Task-21' coro=<NotebookClient._async_poll_output_msg() done, defined at /home/feickert/.pyenv/versions/pyhf-dev-CPU/lib/python3.9/site-packages/nbclient/client.py:756>>
../../../.pyenv/versions/pyhf-dev-CPU/lib/python3.9/site-packages/nbclient/client.py:953: DeadKernelError
----------------------------- Captured stderr call -----------------------------
/home/feickert/.pyenv/versions/pyhf-dev-CPU/lib/python3.9/site-packages/ipykernel/iostream.py:9: DeprecationWarning: the imp module is deprecated in favour of importlib; see the module's documentation for alternative uses
from imp import lock_held as import_lock_held
Assertion failed: ok (src/mailbox.cpp:99)
------------------------------ Captured log call -------------------------------
INFO papermill:execute.py:84 Input Notebook: /home/feickert/Code/GitHub/pyhf/docs/examples/notebooks/XML_ImportExport.ipynb
INFO papermill:execute.py:85 Output Notebook: /tmp/pytest-of-feickert/pytest-38/test_xml_importexport0/output.ipynb
INFO papermill:execute.py:88 Working directory: /home/feickert/Code/GitHub/pyhf/docs/examples/notebooks
INFO papermill:clientwrap.py:44 Executing notebook with kernel: python3
ERROR papermill:client.py:808 Kernel died while waiting for execute reply.
=============================== warnings summary ===============================
../../../.pyenv/versions/pyhf-dev-CPU/lib/python3.9/site-packages/flatbuffers/compat.py:19
/home/feickert/.pyenv/versions/pyhf-dev-CPU/lib/python3.9/site-packages/flatbuffers/compat.py:19: DeprecationWarning: the imp module is deprecated in favour of importlib; see the module's documentation for alternative uses
import imp
../../../.pyenv/versions/pyhf-dev-CPU/lib/python3.9/site-packages/keras_preprocessing/image/utils.py:23
/home/feickert/.pyenv/versions/pyhf-dev-CPU/lib/python3.9/site-packages/keras_preprocessing/image/utils.py:23: DeprecationWarning: NEAREST is deprecated and will be removed in Pillow 10 (2023-07-01). Use Resampling.NEAREST or Dither.NONE instead.
'nearest': pil_image.NEAREST,
../../../.pyenv/versions/pyhf-dev-CPU/lib/python3.9/site-packages/keras_preprocessing/image/utils.py:24
/home/feickert/.pyenv/versions/pyhf-dev-CPU/lib/python3.9/site-packages/keras_preprocessing/image/utils.py:24: DeprecationWarning: BILINEAR is deprecated and will be removed in Pillow 10 (2023-07-01). Use Resampling.BILINEAR instead.
'bilinear': pil_image.BILINEAR,
../../../.pyenv/versions/pyhf-dev-CPU/lib/python3.9/site-packages/keras_preprocessing/image/utils.py:25
/home/feickert/.pyenv/versions/pyhf-dev-CPU/lib/python3.9/site-packages/keras_preprocessing/image/utils.py:25: DeprecationWarning: BICUBIC is deprecated and will be removed in Pillow 10 (2023-07-01). Use Resampling.BICUBIC instead.
'bicubic': pil_image.BICUBIC,
../../../.pyenv/versions/pyhf-dev-CPU/lib/python3.9/site-packages/keras_preprocessing/image/utils.py:28
/home/feickert/.pyenv/versions/pyhf-dev-CPU/lib/python3.9/site-packages/keras_preprocessing/image/utils.py:28: DeprecationWarning: HAMMING is deprecated and will be removed in Pillow 10 (2023-07-01). Use Resampling.HAMMING instead.
if hasattr(pil_image, 'HAMMING'):
../../../.pyenv/versions/pyhf-dev-CPU/lib/python3.9/site-packages/keras_preprocessing/image/utils.py:29
/home/feickert/.pyenv/versions/pyhf-dev-CPU/lib/python3.9/site-packages/keras_preprocessing/image/utils.py:29: DeprecationWarning: HAMMING is deprecated and will be removed in Pillow 10 (2023-07-01). Use Resampling.HAMMING instead.
_PIL_INTERPOLATION_METHODS['hamming'] = pil_image.HAMMING
../../../.pyenv/versions/pyhf-dev-CPU/lib/python3.9/site-packages/keras_preprocessing/image/utils.py:30
/home/feickert/.pyenv/versions/pyhf-dev-CPU/lib/python3.9/site-packages/keras_preprocessing/image/utils.py:30: DeprecationWarning: BOX is deprecated and will be removed in Pillow 10 (2023-07-01). Use Resampling.BOX instead.
if hasattr(pil_image, 'BOX'):
../../../.pyenv/versions/pyhf-dev-CPU/lib/python3.9/site-packages/keras_preprocessing/image/utils.py:31
/home/feickert/.pyenv/versions/pyhf-dev-CPU/lib/python3.9/site-packages/keras_preprocessing/image/utils.py:31: DeprecationWarning: BOX is deprecated and will be removed in Pillow 10 (2023-07-01). Use Resampling.BOX instead.
_PIL_INTERPOLATION_METHODS['box'] = pil_image.BOX
../../../.pyenv/versions/pyhf-dev-CPU/lib/python3.9/site-packages/keras_preprocessing/image/utils.py:33
/home/feickert/.pyenv/versions/pyhf-dev-CPU/lib/python3.9/site-packages/keras_preprocessing/image/utils.py:33: DeprecationWarning: LANCZOS is deprecated and will be removed in Pillow 10 (2023-07-01). Use Resampling.LANCZOS instead.
if hasattr(pil_image, 'LANCZOS'):
../../../.pyenv/versions/pyhf-dev-CPU/lib/python3.9/site-packages/keras_preprocessing/image/utils.py:34
/home/feickert/.pyenv/versions/pyhf-dev-CPU/lib/python3.9/site-packages/keras_preprocessing/image/utils.py:34: DeprecationWarning: LANCZOS is deprecated and will be removed in Pillow 10 (2023-07-01). Use Resampling.LANCZOS instead.
_PIL_INTERPOLATION_METHODS['lanczos'] = pil_image.LANCZOS
../../../.pyenv/versions/pyhf-dev-CPU/lib/python3.9/site-packages/tensorflow_probability/python/__init__.py:57
/home/feickert/.pyenv/versions/pyhf-dev-CPU/lib/python3.9/site-packages/tensorflow_probability/python/__init__.py:57: DeprecationWarning: distutils Version classes are deprecated. Use packaging.version instead.
if (distutils.version.LooseVersion(tf.__version__) <
../../../.pyenv/versions/pyhf-dev-CPU/lib/python3.9/site-packages/tensorflow_probability/python/__init__.py:58
/home/feickert/.pyenv/versions/pyhf-dev-CPU/lib/python3.9/site-packages/tensorflow_probability/python/__init__.py:58: DeprecationWarning: distutils Version classes are deprecated. Use packaging.version instead.
distutils.version.LooseVersion(required_tensorflow_version)):
../../../.pyenv/versions/pyhf-dev-CPU/lib/python3.9/site-packages/ansiwrap/core.py:11
/home/feickert/.pyenv/versions/pyhf-dev-CPU/lib/python3.9/site-packages/ansiwrap/core.py:11: ResourceWarning: unclosed file <_io.TextIOWrapper name='/home/feickert/.pyenv/versions/pyhf-dev-CPU/lib/python3.9/site-packages/textwrap3.py' mode='r' encoding='utf-8'>
a_textwrap = imp.load_module('a_textwrap', *imp.find_module('textwrap3'))
Enable tracemalloc to get traceback where the object was allocated.
See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info.
tests/test_notebooks.py::test_xml_importexport
/home/feickert/.pyenv/versions/pyhf-dev-CPU/lib/python3.9/site-packages/traitlets/config/configurable.py:85: DeprecationWarning: Passing unrecognized arguments to super(PapermillNotebookClient).__init__(input_path='/home/feickert/Code/GitHub/pyhf/docs/examples/notebooks/XML_ImportExport.ipynb').
object.__init__() takes exactly one argument (the instance to initialize)
This is deprecated in traitlets 4.2.This error will be raised in a future release of traitlets.
super(Configurable, self).__init__(**kwargs)
-- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html
----------- coverage: platform linux, python 3.9.6-final-0 -----------
Name Stmts Miss Branch BrPart Cover Missing
-----------------------------------------------------------------------------------
src/pyhf/__init__.py 23 4 6 3 76% 43, 48, 50, 52
src/pyhf/_version.py 2 0 0 0 100%
src/pyhf/cli/__init__.py 9 1 0 0 89% 13
src/pyhf/cli/cli.py 30 2 2 1 91% 18-19
src/pyhf/cli/complete.py 13 6 0 0 54% 17-25
src/pyhf/cli/infer.py 84 51 34 0 28% 83-130, 193-246
src/pyhf/cli/patchset.py 68 40 8 0 37% 42-59, 82-98, 114-125, 137-144
src/pyhf/cli/rootio.py 51 21 4 1 56% 38-39, 50-52, 64-87
src/pyhf/cli/spec.py 148 100 38 0 26% 63-163, 192-209, 256-272, 301-318, 350-366, 396-407
src/pyhf/compat.py 34 15 20 2 50% 11, 47-53, 97-102, 110
src/pyhf/constraints.py 134 115 42 0 11% 11, 16-83, 86-91, 98, 108-125, 136-145, 150-206, 209-214, 221, 231-249, 260-269
src/pyhf/contrib/__init__.py 0 0 0 0 100%
src/pyhf/contrib/cli.py 26 10 4 0 53% 13, 29, 64-73
src/pyhf/contrib/utils.py 44 44 16 0 0% 3-129
src/pyhf/contrib/viz/__init__.py 0 0 0 0 100%
src/pyhf/contrib/viz/brazil.py 65 65 34 0 0% 2-372
src/pyhf/events.py 66 31 10 0 46% 19, 28, 35-36, 42-49, 58-65, 68-73, 76, 79, 82, 85, 115-119, 185, 193
src/pyhf/exceptions/__init__.py 44 16 4 0 58% 28, 59-72, 173-177
src/pyhf/infer/__init__.py 39 31 20 0 14% 9-15, 153-204, 213
src/pyhf/infer/calculators.py 147 109 22 0 24% 30, 76-82, 110-111, 132-133, 168-173, 198-199, 276-284, 315-328, 363-424, 462-467, 507-508, 546-547, 595-596, 657-658, 704-711, 753-817, 857-862, 902-920, 951-960
src/pyhf/infer/intervals.py 20 13 10 0 23% 10, 14-15, 59-75
src/pyhf/infer/mle.py 27 19 8 0 23% 9, 53, 57-59, 117-131, 191-202
src/pyhf/infer/test_statistics.py 60 46 26 0 16% 13, 26-35, 47-60, 130-139, 225-234, 307-316, 397-406, 476-496
src/pyhf/infer/utils.py 19 9 0 0 53% 15, 32-33, 69, 105-113
src/pyhf/interpolators/__init__.py 30 20 8 0 26% 5-18, 31-42, 49
src/pyhf/interpolators/code0.py 52 37 6 0 26% 29-42, 45-50, 53-58, 62-86, 91-97, 100, 103-104
src/pyhf/interpolators/code1.py 58 42 6 0 25% 30-48, 51-62, 65-77, 81-102, 107-113, 116, 119-120
src/pyhf/interpolators/code2.py 62 47 8 0 21% 33-49, 52-60, 63-68, 72-119, 124-132, 135, 138-139
src/pyhf/interpolators/code4.py 86 70 12 0 16% 36-131, 134-148, 153-168, 172-237, 282-356, 359-360, 363-364
src/pyhf/interpolators/code4p.py 67 52 8 0 20% 22-35, 38-47, 50-55, 59-111, 120-132, 135, 138-139
src/pyhf/mixins.py 27 23 10 0 11% 17-51
src/pyhf/modifiers/__init__.py 11 1 0 0 91% 36
src/pyhf/modifiers/histosys.py 80 61 26 0 18% 13, 29-31, 34-38, 41-56, 62-93, 103-141, 144-150, 159-173
src/pyhf/modifiers/lumi.py 52 36 14 0 24% 10, 27-29, 32-34, 37-48, 54, 62-79, 82-89, 96-106
src/pyhf/modifiers/normfactor.py 54 38 14 0 24% 10, 25-27, 30-32, 35-46, 52, 60-79, 82-91, 98-115
src/pyhf/modifiers/normsys.py 68 51 20 0 19% 11, 27-29, 32-39, 42-58, 64, 75-111, 114-123, 132-146
src/pyhf/modifiers/shapefactor.py 65 47 22 0 21% 12, 27-29, 32-34, 37-48, 54, 129-182, 185-197, 204-219
src/pyhf/modifiers/shapesys.py 92 72 36 0 16% 14-25, 42-44, 47-49, 52-66, 72-95, 103-145, 148-167, 172-181, 188-204
src/pyhf/modifiers/staterror.py 105 84 42 0 14% 14-15, 32-34, 37-39, 42-53, 56-124, 133-172, 175-193, 198-207, 210-223
src/pyhf/optimize/__init__.py 22 4 6 1 75% 29-35
src/pyhf/optimize/common.py 44 39 22 0 8% 21-28, 38-58, 109-157
src/pyhf/optimize/mixins.py 63 49 24 1 17% 28, 43-66, 75-112, 159-199
src/pyhf/optimize/opt_jax.py 24 24 4 0 0% 3-80
src/pyhf/optimize/opt_minuit.py 59 44 20 0 19% 52-75, 105-141
src/pyhf/optimize/opt_numpy.py 11 11 2 0 0% 3-32
src/pyhf/optimize/opt_pytorch.py 18 18 2 0 0% 3-42
src/pyhf/optimize/opt_scipy.py 29 17 12 0 29% 42, 72-93
src/pyhf/optimize/opt_tflow.py 18 18 2 0 0% 2-43
src/pyhf/parameters/__init__.py 6 1 0 0 83% 21
src/pyhf/parameters/paramsets.py 66 44 13 0 28% 15, 20-27, 33-35, 40-44, 50-54, 59-60, 65-66, 71-76, 79-82, 87-91, 94-97
src/pyhf/parameters/paramview.py 41 29 8 0 24% 13, 17-32, 36-52, 62-84, 87-90, 99-103
src/pyhf/parameters/utils.py 31 27 16 0 9% 7, 11-70
src/pyhf/patchset.py 95 54 16 0 37% 17, 43-44, 49, 54, 59, 63-65, 69-71, 163-201, 206, 211, 216, 221, 226, 231, 236, 240-242, 255-260, 271, 280, 295-298, 317-318
src/pyhf/pdf.py 319 256 108 0 15% 26, 31-41, 45-56, 61-62, 65-75, 78-95, 111-187, 207-229, 235-237, 243-245, 262-265, 282-285, 303, 320-330, 348, 378-382, 397-404, 407-419, 426-451, 461, 476-488, 502-503, 510-531, 534-535, 545, 548-549, 563, 566-579, 608-631, 659-699, 714-716, 719, 724, 737-739, 752-756, 770, 784, 797-808, 822-850, 864-865
src/pyhf/probability.py 62 37 10 0 35% 8, 25, 35, 48, 68-70, 87, 109-112, 130, 155-156, 185-188, 224-226, 236, 250, 260-261, 274, 287-289, 293-299
src/pyhf/readxml.py 160 27 83 15 77% 30, 71-74, 84, 85->87, 128, 132-144, 163, 171-197, 209, 210->212, 232, 287->289, 290, 293->284, 297, 326-329, 376
src/pyhf/schema/__init__.py 23 6 0 0 74% 19, 74-75, 78, 87, 94
src/pyhf/schema/loader.py 21 2 4 2 84% 12, 35
src/pyhf/schema/validator.py 14 2 0 0 86% 40-41
src/pyhf/schema/variables.py 8 1 2 1 80% 8
src/pyhf/simplemodels.py 13 6 0 0 54% 9, 51-78, 114-141, 148
src/pyhf/tensor/__init__.py 34 6 8 1 83% 21-22, 34-35, 39->exit, 47-48
src/pyhf/tensor/common.py 52 42 20 0 14% 18-29, 32-38, 41-51, 54-63, 70-76, 90-97
src/pyhf/tensor/jax_backend.py 141 76 2 0 45% 18, 22, 28-29, 34-35, 39, 47-48, 91, 112, 132, 154, 178, 181-186, 189, 192, 195, 198, 222-230, 233, 236, 239, 242-251, 254-263, 266, 269, 272, 275, 278, 317, 320, 323, 337, 359, 362, 365, 385, 405, 408-410, 452-454, 460-464, 495, 519, 540, 564, 591, 616
src/pyhf/tensor/manager.py 69 27 42 14 50% 34, 80-82, 84->101, 86, 90, 96-97, 102->113, 104, 108, 114-116, 121-141, 154->169, 162, 163->166, 170, 171->174
src/pyhf/tensor/numpy_backend.py 135 74 2 0 45% 14, 17, 20-21, 26-27, 30, 33-34, 77, 97, 117, 139, 163, 166-171, 174, 177, 180, 183, 206-214, 217, 220, 223, 226-235, 238-247, 250, 253, 256, 259, 262, 300, 303, 306, 320, 342, 345, 348, 368, 387, 390, 432-434, 440-444, 475, 499, 520, 544, 572, 597
src/pyhf/tensor/pytorch_backend.py 130 77 8 0 38% 30, 52, 72, 92, 116, 119-124, 146, 170, 193-201, 204, 207, 210, 213, 233, 236, 243, 246, 249-258, 261-270, 273, 276, 279, 282, 285, 326, 329, 332, 346, 349, 372-385, 399, 403, 446, 451-456, 484-489, 519-520, 543, 567, 594, 619
src/pyhf/tensor/tensorflow_backend.py 148 97 14 0 31% 50-54, 75, 96, 120-127, 152, 155-160, 163-170, 173, 176, 179, 204-221, 224, 231, 238, 241-250, 253-262, 265, 268, 271, 274, 295, 298, 301, 304, 344, 349, 376, 390, 416-424, 441, 470-471, 514-515, 544-547, 576-579, 604-607, 630-632, 657-660, 688, 716
src/pyhf/utils.py 38 23 6 1 36% 13, 24, 28-31, 38-41, 72-84, 103-109
src/pyhf/workspace.py 217 182 140 0 10% 23, 42-73, 92-96, 117-140, 159-182, 203-214, 233-279, 302-321, 327-329, 333, 337, 360-390, 423-442, 461-473, 523-626, 656-662, 691-696, 736-768, 782-796, 813-839
src/pyhf/writexml.py 144 144 62 0 0% 1-312
-----------------------------------------------------------------------------------
TOTAL 4317 2893 1198 43 28%
Coverage HTML written to dir htmlcov
Coverage XML written to file coverage.xml
=========================== short test summary info ============================
FAILED tests/test_notebooks.py::test_xml_importexport - nbclient.exceptions.D...
================ 1 failed, 11 deselected, 14 warnings in 8.17s ================= |
matthewfeickert
changed the title
nbclient.exceptions.DeadKernelError from papermill on GHA runners
nbclient.exceptions.DeadKernelError from papermill if PYTHONWARNINGS='default'
Apr 6, 2022
matthewfeickert
removed
the
needs-triage
Needs a maintainer to categorize and assign
label
Apr 6, 2022
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Summary
When trying to get the Notebook tests to work again, it seems that any notebook that happens to
OS / Environment
GHA runner for `ubuntu-latest`
Steps to Reproduce
On a GHA runner execute
$ pytest --override-ini filterwarnings= tests/test_notebooks.py -k test_xml_importexport
File Upload (optional)
log.txt
Expected Results
For
to pass on the runner like it does locally
Actual Results
It seems to fail at the
!ls -lavh ../../../validation/xmlimport_input
cell
pyhf Version
dev
Code of Conduct
The text was updated successfully, but these errors were encountered: