DMSC Integration Testing

Last updated: September 25, 2026 08:02:48

Test: codeshelf|beer|run_notebooks|commissioning_BEER-TOF

View job log here


nbclient.exceptions.CellTimeoutError: A cell timed out while it was being executed, after 120 seconds.
The message was: Cell execution timed out.
Here is a preview of the cell contents:
-------------------
['chop_index = 0', "select_chop = widgets.Dropdown(options=list(f'{chop.name}' for chop in beer.modes[index].choppers),", "                               value=f'{beer.modes[index].choppers[chop_index].name}', ", "                               description='Chopper: ')", "save_chop_button = widgets.Button(description='Save to PDF')"]
...
["show_blocked.observe(show_blocked_on_change, names='value')", 'save_chop_button.on_click(save_chop_on_click)', 'dat_chop_button.on_click(dat_chop_on_click)', 'for check in c_pulses:', "    check.observe(c_pulses_on_change, names='value')"]
-------------------

.tox/codeshelf-beer/lib/python3.12/site-packages/nbclient/client.py:856: CellTimeoutError
Full output
self = <nbconvert.preprocessors.execute.ExecutePreprocessor object at 0x7f2922897020>
msg_id = 'a2543fcc-3912d78a58079685f3e659db_1530967_20'
cell = {'cell_type': 'code', 'execution_count': None, 'id': '19', 'metadata': {'execution': {}}, 'outputs': [], 'source': 'ch...op_button.on_click(dat_chop_on_click)\nfor check in c_pulses:\n    check.observe(c_pulses_on_change, names=\'value\')'}
timeout = 120
task_poll_output_msg = <Task pending name='Task-56' coro=<NotebookClient._async_poll_output_msg() running at /home/gitlab-runner/builds/sr_sr.../7/dmsc-nightly/dmsc-nightly/.tox/codeshelf-beer/lib/python3.12/site-packages/zmq/_future.py:416, Task.task_wakeup()]>>
task_poll_kernel_alive = <Task cancelled name='Task-55' coro=<NotebookClient._async_poll_kernel_alive() done, defined at /home/gitlab-runner/builds/sr_srNBdt/7/dmsc-nightly/dmsc-nightly/.tox/codeshelf-beer/lib/python3.12/site-packages/nbclient/client.py:821>>

    async def _async_poll_for_reply(
        self,
        msg_id: str,
        cell: NotebookNode,
        timeout: int | None,
        task_poll_output_msg: asyncio.Future[t.Any],
        task_poll_kernel_alive: asyncio.Future[t.Any],
    ) -> dict[str, t.Any]:
        msg: dict[str, t.Any]
        assert self.kc is not None
        new_timeout: float | None = None
        if timeout is not None:
            deadline = monotonic() + timeout
            new_timeout = float(timeout)
        error_on_timeout_execute_reply = None
        while True:
            try:
                if error_on_timeout_execute_reply:
                    msg = error_on_timeout_execute_reply
                    msg["parent_header"] = {"msg_id": msg_id}
                else:
>                   msg = await ensure_async(self.kc.shell_channel.get_msg(timeout=new_timeout))
                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

.tox/codeshelf-beer/lib/python3.12/site-packages/nbclient/client.py:782: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.tox/codeshelf-beer/lib/python3.12/site-packages/jupyter_core/utils/__init__.py:214: in ensure_async
    result = await obj
             ^^^^^^^^^
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <jupyter_client.channels.AsyncZMQSocketChannel object at 0x7f2922893800>
timeout = 120.0

    async def get_msg(  # type:ignore[override]
        self, timeout: float | None = None
    ) -> t.Dict[str, t.Any]:
        """Gets a message if there is one that is ready."""
        assert self.socket is not None
        timeout_ms = None if timeout is None else int(timeout * 1000)  # seconds to ms
        ready = await self.socket.poll(timeout_ms)
        if ready:
            res = await self._recv()
            return res
        else:
>           raise Empty
E           _queue.Empty

.tox/codeshelf-beer/lib/python3.12/site-packages/jupyter_client/channels.py:330: Empty

During handling of the above exception, another exception occurred:

notebook = PosixPath('/tmp/pytest-of-gitlab-runner/pytest-476/codeshelf/src/beer/notebooks/commissioning/BEER-TOF.ipynb')
run_codeshelf_notebook = <function _run_codeshelf_notebook at 0x7f29228e40e0>
tmp_path = PosixPath('/tmp/pytest-of-gitlab-runner/pytest-476/test_run_notebooks_commissioni0')

    def test_run_notebooks(
        notebook: Path, run_codeshelf_notebook: Callable, tmp_path: Path
    ):
>       run_codeshelf_notebook(notebook_path=notebook, run_path=tmp_path)

tests/codeshelf/codeshelf_test.py:10: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/codeshelf/conftest.py:131: in _run_codeshelf_notebook
    ep.preprocess(nb, {"metadata": {"path": run_path}})
.tox/codeshelf-beer/lib/python3.12/site-packages/nbconvert/preprocessors/execute.py:103: in preprocess
    self.preprocess_cell(cell, resources, index)
.tox/codeshelf-beer/lib/python3.12/site-packages/nbconvert/preprocessors/execute.py:124: in preprocess_cell
    cell = self.execute_cell(cell, index, store_history=True)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/codeshelf-beer/lib/python3.12/site-packages/jupyter_core/utils/__init__.py:165: in wrapped
    return loop.run_until_complete(inner)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/opt/miniforge/lib/python3.12/asyncio/base_events.py:687: in run_until_complete
    return future.result()
           ^^^^^^^^^^^^^^^
.tox/codeshelf-beer/lib/python3.12/site-packages/nbclient/client.py:1005: in async_execute_cell
    exec_reply = await self.task_poll_for_reply
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/codeshelf-beer/lib/python3.12/site-packages/nbclient/client.py:806: in _async_poll_for_reply
    error_on_timeout_execute_reply = await self._async_handle_timeout(timeout, cell)
                                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <nbconvert.preprocessors.execute.ExecutePreprocessor object at 0x7f2922897020>
timeout = 120
cell = {'cell_type': 'code', 'execution_count': None, 'id': '19', 'metadata': {'execution': {}}, 'outputs': [], 'source': 'ch...op_button.on_click(dat_chop_on_click)\nfor check in c_pulses:\n    check.observe(c_pulses_on_change, names=\'value\')'}

    async def _async_handle_timeout(
        self, timeout: int, cell: NotebookNode | None = None
    ) -> None | dict[str, t.Any]:
        self.log.error("Timeout waiting for execute reply (%is)." % timeout)
        if self.interrupt_on_timeout:
            self.log.error("Interrupting kernel")
            assert self.km is not None
            await ensure_async(self.km.interrupt_kernel())
            if self.error_on_timeout:
                execute_reply = {"content": {**self.error_on_timeout, "status": "error"}}
                return execute_reply
            return None
        else:
            assert cell is not None
>           raise CellTimeoutError.error_from_timeout_and_cell(
                "Cell execution timed out", timeout, cell
            )
E           nbclient.exceptions.CellTimeoutError: A cell timed out while it was being executed, after 120 seconds.
E           The message was: Cell execution timed out.
E           Here is a preview of the cell contents:
E           -------------------
E           ['chop_index = 0', "select_chop = widgets.Dropdown(options=list(f'{chop.name}' for chop in beer.modes[index].choppers),", "                               value=f'{beer.modes[index].choppers[chop_index].name}', ", "                               description='Chopper: ')", "save_chop_button = widgets.Button(description='Save to PDF')"]
E           ...
E           ["show_blocked.observe(show_blocked_on_change, names='value')", 'save_chop_button.on_click(save_chop_on_click)', 'dat_chop_button.on_click(dat_chop_on_click)', 'for check in c_pulses:', "    check.observe(c_pulses_on_change, names='value')"]
E           -------------------

.tox/codeshelf-beer/lib/python3.12/site-packages/nbclient/client.py:856: CellTimeoutError

View job log here


Test passed, nothing to report