Open douglas-raillard-arm opened 7 months ago
If possible please provide a minimum, reproducible example. Thx.
I unfortunately have no reproducible example, let alone minimal. It was working "perfectly well" locally and only tripped with the backtrace in our CI when building the Sphinx documentation for our project. AFAICT that is probably due to timings on the CI being different than locally and not even necessarily fully reproducible there either. The fig
variable in that call:
https://gitlab.arm.com/tooling/lisa/-/blob/main/lisa/analysis/base.py?ref_type=heads#L693
File "/home/ubuntu/builds/XNd7eey6/1/tooling/lisa/lisa/analysis/base.py", line 693, in set_options
return fig.options(
is an object like hv.Curve()
. The function dispatched on the concurrent.futures.ThreadPoolExecutor
is creating such objects, then renders it to HTML+JS (using bokeh), and the value returned by the worker function is a big string ready to be appended in a docstring for Sphinx to render: https://tooling.sites.arm.com/lisa/latest/trace_analysis.html#lisa.analysis.frequency.FrequencyAnalysis.plot_cpu_frequencies
Is your feature request related to a problem? Please describe.
I'm trying to build a bunch of plots rendered HTML/JS as quickly as possible as part of building a Sphinx documentation.
Describe the solution you'd like
Be able to call e.g.
hv.Curve()
and do the bokeh rendering in aconcurrent.futures.ThreadPoolExecutor
Describe alternatives you've considered
Serial execution is possible, just slower
Additional context
Trying it seemed to work, until it failed (randomly it seems):