ipyparallel icon indicating copy to clipboard operation
ipyparallel copied to clipboard

`ipywidgets` breaks `ipyparallel` since October 14, 2025

Open francesco-ballarin opened this issue 2 months ago • 1 comments

Hi, I am seeing failures on the nightly runs of a few downstream projects since a couple of days ago:

  • https://github.com/multiphenics/multiphenicsx/actions/runs/18549413534/job/52873933737 (today, failure)
  • https://github.com/multiphenics/multiphenicsx/actions/runs/18454396041/job/52573268733 (3 days ago, success)

The failures are all of the type

TimeoutError: 3 engines not ready in 60 seconds. Currently ready: 1

I am puzzled by the failure, since none of the python packages I am installing on my CI has had any version change since 3 days ago (except for coverage, which is surely unrelated). I tried to track down the issue, and it seems to me that it boils down to an incompatibility between ipywidgets, ipyparallel and nbval.

A sample test notebook test.ipynb is

{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "cluster_start",
   "metadata": {},
   "outputs": [],
   "source": [
    "import ipyparallel as ipp\n",
    "\n",
    "cluster = ipp.Cluster(engines=\"MPI\", profile=\"mpi\", n=3, engine_timeout=10)\n",
    "cluster.start_and_connect_sync()\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "cluster_stop",
   "metadata": {},
   "outputs": [],
   "source": [
    "cluster.stop_cluster_sync()"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython"
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}

If I run it on a clean debian:13 docker image on my amd64 laptop with

apt update
apt install mpich python3-pip
pip install --break-system-packages nbval mpi4py ipyparallel
pytest --nbval test.ipynb

then pytest runs ok. However, if I add the two next lines

pip install --break-system-packages ipywidgets
pytest --nbval test.ipynb

then execution hangs and I have to interrupt pytest after a while (more than the engine timeout), and get zmq/backend/cython/_zmq.py:179: KeyboardInterrupt

Similarly, on the actual downstream image dolfinx/dolfinx:nightly (that is used on the downstream CI) a first run with

pip install --break-system-packages nbval mpi4py ipyparallel
pytest --nbval test.ipynb

works ok, but then a further

pip install --break-system-packages ipywidgets
pytest --nbval test.ipynb

fails with

TimeoutError: 3 engines not ready in 10 seconds. Currently ready: 1

francesco-ballarin avatar Oct 16 '25 07:10 francesco-ballarin

Potential duplicate of: https://github.com/ipython/ipykernel/issues/1450

jorgensd avatar Oct 17 '25 08:10 jorgensd