root-project / root

The official repository for ROOT: analyzing, storing and visualizing big data, scientifically
https://root.cern
Other
2.71k stars 1.28k forks source link

Simple notebook test times out when root7=on, webgui=Off #16689

Open hageboeck opened 1 month ago

hageboeck commented 1 month ago

Check duplicate issues.

Description

In the GPU-PR #16580, @dpiparo suggested to disable a few components to speed up the non-GPU-related parts. After disabling the webgui, the following test started to hang and time out:

TEST FAILURES:
1521:roottest-python-JupyROOT-Cpp_IMT_Canvas_notebook

Reproducer

This is the full config:

cmake -S '/github/home/ROOT-CI/src' -B '/github/home/ROOT-CI/build' -DCMAKE_BUILD_TYPE=RelWithDebInfo "-DCMAKE_BUILD_TYPE=RelWithDebInfo" "-Dalien=off" "-Dall=off" "-Darrow=off" "-Dasan=off" "-Dasimage=on" "-Dasserts=off" "-Dbuiltin_cfitsio=off" "-Dbuiltin_clang=on" "-Dbuiltin_cling=on" "-Dbuiltin_cppzmq=on" "-Dbuiltin_davix=off" "-Dbuiltin_fftw3=off" "-Dbuiltin_freetype=off" "-Dbuiltin_ftgl=off" "-Dbuiltin_gl2ps=off" "-Dbuiltin_glew=off" "-Dbuiltin_gsl=off" "-Dbuiltin_llvm=on" "-Dbuiltin_lz4=off" "-Dbuiltin_lzma=off" "-Dbuiltin_nlohmannjson=off" "-Dbuiltin_openssl=off" "-Dbuiltin_openui5=on" "-Dbuiltin_pcre=off" "-Dbuiltin_tbb=off" "-Dbuiltin_unuran=on" "-Dbuiltin_vc=off" "-Dbuiltin_vdt=off" "-Dbuiltin_veccore=off" "-Dbuiltin_xrootd=off" "-Dbuiltin_xxhash=off" "-Dbuiltin_zeromq=on" "-Dbuiltin_zlib=off" "-Dbuiltin_zstd=off" "-Dccache=on" "-Dcefweb=off" "-Dclad=on" "-Dclingtest=off" "-Dcocoa=off" "-Dcoverage=off" "-Dcuda=on" "-Dcudnn=off" "-Dcxxmodules=off" "-Ddaos=off" "-Ddataframe=on" "-Ddavix=on" "-Ddcache=off" "-Ddev=off" "-Ddistcc=off" "-Dfail-on-missing=on" "-Dfcgi=off" "-Dfftw3=on" "-Dfitsio=on" "-Dfortran=off" "-Dgdml=off" "-Dgminimal=off" "-Dgnuinstall=off" "-Dgsl_shared=off" "-Dgviz=off" "-Dhttp=on" "-Dimt=on" "-Djemalloc=off" "-Dlibcxx=off" "-Dmacos_native=off" "-Dmathmore=on" "-Dmemory_termination=off" "-Dminimal=off" "-Dmpi=off" "-Dmysql=off" "-Dodbc=off" "-Dopengl=on" "-Dpgsql=on" "-Dpyroot=on" "-Dpythia8=off" "-Dqt5web=off" "-Dqt6web=off" "-Dr=off" "-Droofit=on" "-Droofit_multiprocess=on" "-Droot7=on" "-Drootbench=off" "-Droottest=on" "-Droottest_force_checkout=off" "-Drpath=on" "-Druntime_cxxmodules=on" "-Dshadowpw=off" "-Dshared=on" "-Dsoversion=off" "-Dspectrum=off" "-Dsqlite=off" "-Dssl=on" "-Dtcmalloc=off" "-Dtest_distrdf_dask=off" "-Dtest_distrdf_pyspark=off" "-Dtesting=on" "-Dtmva-cpu=on" "-Dtmva-gpu=off" "-Dtmva-pymva=on" "-Dtmva-rmva=off" "-Dtmva-sofie=off" "-Dtmva=on" "-Dunfold=off" "-Dunuran=on" "-During=off" "-Dvc=off" "-Dvdt=on" "-Dveccore=off" "-Dvecgeom=off" "-Dwebgui=off" "-Dwin_broken_tests=off" "-Dwinrtdebug=off" "-Dx11=on" "-Dxml=on" "-Dxrootd=on"

This is the notebook it tries to run: https://github.com/root-project/roottest/blob/master/python/JupyROOT/Cpp_IMT_Canvas.ipynb

And this is a minimal reproducer if you reverse engineer what the test does:

root@bbb56c35bcff:~/build# jupyter nbconvert --debug --to notebook --ExecutePreprocessor.enabled=True ../roottest/python/JupyROOT/Cpp_IMT_Canvas.ipynb
[...]
[NbConvertApp] Executing cell:
ROOT::EnableImplicitMT();
TCanvas c("c", "c");
c.Draw();
[NbConvertApp] msg_type: status
[NbConvertApp] content: {'execution_state': 'busy'}
[NbConvertApp] msg_type: execute_input
[NbConvertApp] content: {'code': 'ROOT::EnableImplicitMT();\nTCanvas c("c", "c");\nc.Draw();', 'execution_count': 1}

You can make it pass by:

ROOT version

Master

Installation method

From source

Operating system

registry.cern.ch/root-ci/ubuntu2404-cuda

Additional context

No response

linev commented 1 month ago

Disabling webgui means disabling TWebCanvas, which is required to produce drawings in jupyter notebook now.

One need to disable all graphics-related tests in jupyter after disabling webgui.

dpiparo commented 3 weeks ago

Are you sure? In the jupyter notebooks we use plain jsroot, no twebcanvas.

linev commented 3 weeks ago

TWebCanvas used to create JSON, which then showed with JSROOT