-
Notifications
You must be signed in to change notification settings - Fork 5
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
Try to build with ASAN and document how to get useful output #32
Comments
I tried to build with ASan and meson and run the complete test suite. There were few test failures(not sure presently that were due to ASan or any other build problem). Failure 1
scipy/cluster/tests/test_hierarchy.py .................................. [ 0%]
..............................................Fatal Python error: Aborted
Current thread 0x00007faa364ac740 (most recent call first):
File "/home/smit/anaconda3/envs/scipy-dev/lib/python3.9/site-packages/matplotlib/_layoutgrid.py", line 80 in <listcomp>
File "/home/smit/anaconda3/envs/scipy-dev/lib/python3.9/site-packages/matplotlib/_layoutgrid.py", line 80 in __init__
File "/home/smit/anaconda3/envs/scipy-dev/lib/python3.9/site-packages/matplotlib/figure.py", line 3082 in init_layoutgrid
File "/home/smit/anaconda3/envs/scipy-dev/lib/python3.9/site-packages/matplotlib/figure.py", line 2434 in set_constrained_layout
File "/home/smit/anaconda3/envs/scipy-dev/lib/python3.9/site-packages/matplotlib/figure.py", line 2279 in __init__
File "/home/smit/anaconda3/envs/scipy-dev/lib/python3.9/site-packages/matplotlib/backend_bases.py", line 3544 in new_figure_manager
File "/home/smit/anaconda3/envs/scipy-dev/lib/python3.9/site-packages/matplotlib/pyplot.py", line 316 in new_figure_manager
File "/home/smit/anaconda3/envs/scipy-dev/lib/python3.9/site-packages/matplotlib/pyplot.py", line 797 in figure
File "/home/smit/Smitlunagariya/scipy/installdir/lib/python3.9/site-packages/scipy/cluster/tests/test_hierarchy.py", line 830 in test_valid_label_size
File "/home/smit/anaconda3/envs/scipy-dev/lib/python3.9/site-packages/_pytest/python.py", line 183 in pytest_pyfunc_call
File "/home/smit/anaconda3/envs/scipy-dev/lib/python3.9/site-packages/pluggy/callers.py", line 187 in _multicall
File "/home/smit/anaconda3/envs/scipy-dev/lib/python3.9/site-packages/pluggy/manager.py", line 84 in <lambda>
File "/home/smit/anaconda3/envs/scipy-dev/lib/python3.9/site-packages/pluggy/manager.py", line 93 in _hookexec
File "/home/smit/anaconda3/envs/scipy-dev/lib/python3.9/site-packages/pluggy/hooks.py", line 286 in __call__
File "/home/smit/anaconda3/envs/scipy-dev/lib/python3.9/site-packages/_pytest/python.py", line 1641 in runtest
File "/home/smit/anaconda3/envs/scipy-dev/lib/python3.9/site-packages/_pytest/runner.py", line 162 in pytest_runtest_call
File "/home/smit/anaconda3/envs/scipy-dev/lib/python3.9/site-packages/pluggy/callers.py", line 187 in _multicall
File "/home/smit/anaconda3/envs/scipy-dev/lib/python3.9/site-packages/pluggy/manager.py", line 84 in <lambda>
File "/home/smit/anaconda3/envs/scipy-dev/lib/python3.9/site-packages/pluggy/manager.py", line 93 in _hookexec
File "/home/smit/anaconda3/envs/scipy-dev/lib/python3.9/site-packages/pluggy/hooks.py", line 286 in __call__
File "/home/smit/anaconda3/envs/scipy-dev/lib/python3.9/site-packages/_pytest/runner.py", line 255 in <lambda>
File "/home/smit/anaconda3/envs/scipy-dev/lib/python3.9/site-packages/_pytest/runner.py", line 311 in from_call
File "/home/smit/anaconda3/envs/scipy-dev/lib/python3.9/site-packages/_pytest/runner.py", line 254 in call_runtest_hook
File "/home/smit/anaconda3/envs/scipy-dev/lib/python3.9/site-packages/_pytest/runner.py", line 215 in call_and_report
File "/home/smit/anaconda3/envs/scipy-dev/lib/python3.9/site-packages/_pytest/runner.py", line 126 in runtestprotocol
File "/home/smit/anaconda3/envs/scipy-dev/lib/python3.9/site-packages/_pytest/runner.py", line 109 in pytest_runtest_protocol
File "/home/smit/anaconda3/envs/scipy-dev/lib/python3.9/site-packages/pluggy/callers.py", line 187 in _multicall
File "/home/smit/anaconda3/envs/scipy-dev/lib/python3.9/site-packages/pluggy/manager.py", line 84 in <lambda>
File "/home/smit/anaconda3/envs/scipy-dev/lib/python3.9/site-packages/pluggy/manager.py", line 93 in _hookexec
File "/home/smit/anaconda3/envs/scipy-dev/lib/python3.9/site-packages/pluggy/hooks.py", line 286 in __call__
File "/home/smit/anaconda3/envs/scipy-dev/lib/python3.9/site-packages/_pytest/main.py", line 348 in pytest_runtestloop
File "/home/smit/anaconda3/envs/scipy-dev/lib/python3.9/site-packages/pluggy/callers.py", line 187 in _multicall
File "/home/smit/anaconda3/envs/scipy-dev/lib/python3.9/site-packages/pluggy/manager.py", line 84 in <lambda>
File "/home/smit/anaconda3/envs/scipy-dev/lib/python3.9/site-packages/pluggy/manager.py", line 93 in _hookexec
File "/home/smit/anaconda3/envs/scipy-dev/lib/python3.9/site-packages/pluggy/hooks.py", line 286 in __call__
File "/home/smit/anaconda3/envs/scipy-dev/lib/python3.9/site-packages/_pytest/main.py", line 323 in _main
File "/home/smit/anaconda3/envs/scipy-dev/lib/python3.9/site-packages/_pytest/main.py", line 269 in wrap_session
File "/home/smit/anaconda3/envs/scipy-dev/lib/python3.9/site-packages/_pytest/main.py", line 316 in pytest_cmdline_main
File "/home/smit/anaconda3/envs/scipy-dev/lib/python3.9/site-packages/pluggy/callers.py", line 187 in _multicall
File "/home/smit/anaconda3/envs/scipy-dev/lib/python3.9/site-packages/pluggy/manager.py", line 84 in <lambda>
File "/home/smit/anaconda3/envs/scipy-dev/lib/python3.9/site-packages/pluggy/manager.py", line 93 in _hookexec
File "/home/smit/anaconda3/envs/scipy-dev/lib/python3.9/site-packages/pluggy/hooks.py", line 286 in __call__
File "/home/smit/anaconda3/envs/scipy-dev/lib/python3.9/site-packages/_pytest/config/__init__.py", line 162 in main
File "/home/smit/anaconda3/envs/scipy-dev/lib/python3.9/site-packages/_pytest/config/__init__.py", line 185 in console_main
File "/home/smit/anaconda3/envs/scipy-dev/bin/pytest", line 11 in <module>
Aborted (core dumped) Failure 2
scipy/spatial/tests/test__plotutils.py Fatal Python error: Aborted
Current thread 0x00007f0755dac740 (most recent call first):
File "/home/smit/anaconda3/envs/scipy-dev/lib/python3.9/site-packages/matplotlib/_layoutgrid.py", line 80 in <listcomp>
File "/home/smit/anaconda3/envs/scipy-dev/lib/python3.9/site-packages/matplotlib/_layoutgrid.py", line 80 in __init__
File "/home/smit/anaconda3/envs/scipy-dev/lib/python3.9/site-packages/matplotlib/figure.py", line 3082 in init_layoutgrid
File "/home/smit/anaconda3/envs/scipy-dev/lib/python3.9/site-packages/matplotlib/figure.py", line 2434 in set_constrained_layout
File "/home/smit/anaconda3/envs/scipy-dev/lib/python3.9/site-packages/matplotlib/figure.py", line 2279 in __init__
File "/home/smit/anaconda3/envs/scipy-dev/lib/python3.9/site-packages/matplotlib/backend_bases.py", line 3544 in new_figure_manager
File "/home/smit/anaconda3/envs/scipy-dev/lib/python3.9/site-packages/matplotlib/pyplot.py", line 316 in new_figure_manager
File "/home/smit/anaconda3/envs/scipy-dev/lib/python3.9/site-packages/matplotlib/pyplot.py", line 797 in figure
File "/home/smit/Smitlunagariya/scipy/installdir/lib/python3.9/site-packages/scipy/spatial/tests/test__plotutils.py", line 22 in test_delaunay
File "/home/smit/anaconda3/envs/scipy-dev/lib/python3.9/site-packages/_pytest/python.py", line 183 in pytest_pyfunc_call
File "/home/smit/anaconda3/envs/scipy-dev/lib/python3.9/site-packages/pluggy/callers.py", line 187 in _multicall
File "/home/smit/anaconda3/envs/scipy-dev/lib/python3.9/site-packages/pluggy/manager.py", line 84 in <lambda>
File "/home/smit/anaconda3/envs/scipy-dev/lib/python3.9/site-packages/pluggy/manager.py", line 93 in _hookexec
File "/home/smit/anaconda3/envs/scipy-dev/lib/python3.9/site-packages/pluggy/hooks.py", line 286 in __call__
File "/home/smit/anaconda3/envs/scipy-dev/lib/python3.9/site-packages/_pytest/python.py", line 1641 in runtest
File "/home/smit/anaconda3/envs/scipy-dev/lib/python3.9/site-packages/_pytest/runner.py", line 162 in pytest_runtest_call
File "/home/smit/anaconda3/envs/scipy-dev/lib/python3.9/site-packages/pluggy/callers.py", line 187 in _multicall
File "/home/smit/anaconda3/envs/scipy-dev/lib/python3.9/site-packages/pluggy/manager.py", line 84 in <lambda>
File "/home/smit/anaconda3/envs/scipy-dev/lib/python3.9/site-packages/pluggy/manager.py", line 93 in _hookexec
File "/home/smit/anaconda3/envs/scipy-dev/lib/python3.9/site-packages/pluggy/hooks.py", line 286 in __call__
File "/home/smit/anaconda3/envs/scipy-dev/lib/python3.9/site-packages/_pytest/runner.py", line 255 in <lambda>
File "/home/smit/anaconda3/envs/scipy-dev/lib/python3.9/site-packages/_pytest/runner.py", line 311 in from_call
File "/home/smit/anaconda3/envs/scipy-dev/lib/python3.9/site-packages/_pytest/runner.py", line 254 in call_runtest_hook
File "/home/smit/anaconda3/envs/scipy-dev/lib/python3.9/site-packages/_pytest/runner.py", line 215 in call_and_report
File "/home/smit/anaconda3/envs/scipy-dev/lib/python3.9/site-packages/_pytest/runner.py", line 126 in runtestprotocol
File "/home/smit/anaconda3/envs/scipy-dev/lib/python3.9/site-packages/_pytest/runner.py", line 109 in pytest_runtest_protocol
File "/home/smit/anaconda3/envs/scipy-dev/lib/python3.9/site-packages/pluggy/callers.py", line 187 in _multicall
File "/home/smit/anaconda3/envs/scipy-dev/lib/python3.9/site-packages/pluggy/manager.py", line 84 in <lambda>
File "/home/smit/anaconda3/envs/scipy-dev/lib/python3.9/site-packages/pluggy/manager.py", line 93 in _hookexec
File "/home/smit/anaconda3/envs/scipy-dev/lib/python3.9/site-packages/pluggy/hooks.py", line 286 in __call__
File "/home/smit/anaconda3/envs/scipy-dev/lib/python3.9/site-packages/_pytest/main.py", line 348 in pytest_runtestloop
File "/home/smit/anaconda3/envs/scipy-dev/lib/python3.9/site-packages/pluggy/callers.py", line 187 in _multicall
File "/home/smit/anaconda3/envs/scipy-dev/lib/python3.9/site-packages/pluggy/manager.py", line 84 in <lambda>
File "/home/smit/anaconda3/envs/scipy-dev/lib/python3.9/site-packages/pluggy/manager.py", line 93 in _hookexec
File "/home/smit/anaconda3/envs/scipy-dev/lib/python3.9/site-packages/pluggy/hooks.py", line 286 in __call__
File "/home/smit/anaconda3/envs/scipy-dev/lib/python3.9/site-packages/_pytest/main.py", line 323 in _main
File "/home/smit/anaconda3/envs/scipy-dev/lib/python3.9/site-packages/_pytest/main.py", line 269 in wrap_session
File "/home/smit/anaconda3/envs/scipy-dev/lib/python3.9/site-packages/_pytest/main.py", line 316 in pytest_cmdline_main
File "/home/smit/anaconda3/envs/scipy-dev/lib/python3.9/site-packages/pluggy/callers.py", line 187 in _multicall
File "/home/smit/anaconda3/envs/scipy-dev/lib/python3.9/site-packages/pluggy/manager.py", line 84 in <lambda>
File "/home/smit/anaconda3/envs/scipy-dev/lib/python3.9/site-packages/pluggy/manager.py", line 93 in _hookexec
File "/home/smit/anaconda3/envs/scipy-dev/lib/python3.9/site-packages/pluggy/hooks.py", line 286 in __call__
File "/home/smit/anaconda3/envs/scipy-dev/lib/python3.9/site-packages/_pytest/config/__init__.py", line 162 in main
File "/home/smit/anaconda3/envs/scipy-dev/lib/python3.9/site-packages/_pytest/config/__init__.py", line 185 in console_main
File "/home/smit/anaconda3/envs/scipy-dev/bin/pytest", line 11 in <module>
Aborted (core dumped)
Failure 3
scipy/stats/tests/test_morestats.py .................................... [ 77%]
........................................................................ [ 79%]
...................xxx...Fatal Python error: Aborted
Current thread 0x00007fd763d6d740 (most recent call first):
File "/home/smit/anaconda3/envs/scipy-dev/lib/python3.9/site-packages/matplotlib/_layoutgrid.py", line 80 in <listcomp>
File "/home/smit/anaconda3/envs/scipy-dev/lib/python3.9/site-packages/matplotlib/_layoutgrid.py", line 80 in __init__
File "/home/smit/anaconda3/envs/scipy-dev/lib/python3.9/site-packages/matplotlib/figure.py", line 3082 in init_layoutgrid
File "/home/smit/anaconda3/envs/scipy-dev/lib/python3.9/site-packages/matplotlib/figure.py", line 2434 in set_constrained_layout
File "/home/smit/anaconda3/envs/scipy-dev/lib/python3.9/site-packages/matplotlib/figure.py", line 2279 in __init__
File "/home/smit/anaconda3/envs/scipy-dev/lib/python3.9/site-packages/matplotlib/backend_bases.py", line 3544 in new_figure_manager
File "/home/smit/anaconda3/envs/scipy-dev/lib/python3.9/site-packages/matplotlib/pyplot.py", line 316 in new_figure_manager
File "/home/smit/anaconda3/envs/scipy-dev/lib/python3.9/site-packages/matplotlib/pyplot.py", line 797 in figure
File "/home/smit/Smitlunagariya/scipy/installdir/lib/python3.9/site-packages/scipy/stats/tests/test_morestats.py", line 1248 in test_plot_kwarg
File "/home/smit/anaconda3/envs/scipy-dev/lib/python3.9/site-packages/_pytest/python.py", line 183 in pytest_pyfunc_call
File "/home/smit/anaconda3/envs/scipy-dev/lib/python3.9/site-packages/pluggy/callers.py", line 187 in _multicall
File "/home/smit/anaconda3/envs/scipy-dev/lib/python3.9/site-packages/pluggy/manager.py", line 84 in <lambda>
File "/home/smit/anaconda3/envs/scipy-dev/lib/python3.9/site-packages/pluggy/manager.py", line 93 in _hookexec
File "/home/smit/anaconda3/envs/scipy-dev/lib/python3.9/site-packages/pluggy/hooks.py", line 286 in __call__
File "/home/smit/anaconda3/envs/scipy-dev/lib/python3.9/site-packages/_pytest/python.py", line 1641 in runtest
File "/home/smit/anaconda3/envs/scipy-dev/lib/python3.9/site-packages/_pytest/runner.py", line 162 in pytest_runtest_call
File "/home/smit/anaconda3/envs/scipy-dev/lib/python3.9/site-packages/pluggy/callers.py", line 187 in _multicall
File "/home/smit/anaconda3/envs/scipy-dev/lib/python3.9/site-packages/pluggy/manager.py", line 84 in <lambda>
File "/home/smit/anaconda3/envs/scipy-dev/lib/python3.9/site-packages/pluggy/manager.py", line 93 in _hookexec
File "/home/smit/anaconda3/envs/scipy-dev/lib/python3.9/site-packages/pluggy/hooks.py", line 286 in __call__
File "/home/smit/anaconda3/envs/scipy-dev/lib/python3.9/site-packages/_pytest/runner.py", line 255 in <lambda>
File "/home/smit/anaconda3/envs/scipy-dev/lib/python3.9/site-packages/_pytest/runner.py", line 311 in from_call
File "/home/smit/anaconda3/envs/scipy-dev/lib/python3.9/site-packages/_pytest/runner.py", line 254 in call_runtest_hook
File "/home/smit/anaconda3/envs/scipy-dev/lib/python3.9/site-packages/_pytest/runner.py", line 215 in call_and_report
File "/home/smit/anaconda3/envs/scipy-dev/lib/python3.9/site-packages/_pytest/runner.py", line 126 in runtestprotocol
File "/home/smit/anaconda3/envs/scipy-dev/lib/python3.9/site-packages/_pytest/runner.py", line 109 in pytest_runtest_protocol
File "/home/smit/anaconda3/envs/scipy-dev/lib/python3.9/site-packages/pluggy/callers.py", line 187 in _multicall
File "/home/smit/anaconda3/envs/scipy-dev/lib/python3.9/site-packages/pluggy/manager.py", line 84 in <lambda>
File "/home/smit/anaconda3/envs/scipy-dev/lib/python3.9/site-packages/pluggy/manager.py", line 93 in _hookexec
File "/home/smit/anaconda3/envs/scipy-dev/lib/python3.9/site-packages/pluggy/hooks.py", line 286 in __call__
File "/home/smit/anaconda3/envs/scipy-dev/lib/python3.9/site-packages/_pytest/main.py", line 348 in pytest_runtestloop
File "/home/smit/anaconda3/envs/scipy-dev/lib/python3.9/site-packages/pluggy/callers.py", line 187 in _multicall
File "/home/smit/anaconda3/envs/scipy-dev/lib/python3.9/site-packages/pluggy/manager.py", line 84 in <lambda>
File "/home/smit/anaconda3/envs/scipy-dev/lib/python3.9/site-packages/pluggy/manager.py", line 93 in _hookexec
File "/home/smit/anaconda3/envs/scipy-dev/lib/python3.9/site-packages/pluggy/hooks.py", line 286 in __call__
File "/home/smit/anaconda3/envs/scipy-dev/lib/python3.9/site-packages/_pytest/main.py", line 323 in _main
File "/home/smit/anaconda3/envs/scipy-dev/lib/python3.9/site-packages/_pytest/main.py", line 269 in wrap_session
File "/home/smit/anaconda3/envs/scipy-dev/lib/python3.9/site-packages/_pytest/main.py", line 316 in pytest_cmdline_main
File "/home/smit/anaconda3/envs/scipy-dev/lib/python3.9/site-packages/pluggy/callers.py", line 187 in _multicall
File "/home/smit/anaconda3/envs/scipy-dev/lib/python3.9/site-packages/pluggy/manager.py", line 84 in <lambda>
File "/home/smit/anaconda3/envs/scipy-dev/lib/python3.9/site-packages/pluggy/manager.py", line 93 in _hookexec
File "/home/smit/anaconda3/envs/scipy-dev/lib/python3.9/site-packages/pluggy/hooks.py", line 286 in __call__
File "/home/smit/anaconda3/envs/scipy-dev/lib/python3.9/site-packages/_pytest/config/__init__.py", line 162 in main
File "/home/smit/anaconda3/envs/scipy-dev/lib/python3.9/site-packages/_pytest/config/__init__.py", line 185 in console_main
File "/home/smit/anaconda3/envs/scipy-dev/bin/pytest", line 11 in <module>
Aborted (core dumped)
|
I introduced the memory leaks in one of the files, and asan was able to detect them. I see that the above 3 failures are raised by asan. Can you also please confirm that you get the same errors? |
Hi @Smit-create, sorry for the delay in replying. Since I'm on holiday I have no access to my development machine, so I cannot reproduce it right now (at the earliest on Sunday night). When I tried it before it worked without crashes though. These ones are in Matplotlib, and it's possible I used a different version. Can you skip those tests? There should only be a couple of tests in the whole test suite that use Matplotlib.
Great! It would be useful to document this (change made and resulting ASan output). |
I am using: matplotlib 3.4.2 py39hf3d152e_0 conda-forge
matplotlib-base 3.4.2 py39h2fa2bec_0 conda-forge
matplotlib-inline 0.1.2 pyhd8ed1ab_2 conda-forge
Yes, then it works fine |
In order to check if this works fine, I used the following diff: diff --git a/scipy/signal/D_bspline_util.c b/scipy/signal/D_bspline_util.c
index 0bdd49df0..12bf02a85 100644
--- a/scipy/signal/D_bspline_util.c
+++ b/scipy/signal/D_bspline_util.c
@@ -563,7 +563,9 @@ D_quadratic_spline2D(double *image, double *coeffs, int M, int N, double lambda,
double *tmpmem;
double *tptr;
int m,n, retval=0;
-
+ char *s = (char *)malloc(100);
+ free(s);
+ strcpy(s, "Hello world!");
if (lambda > 0) return -2;
tmpmem = malloc(N*M*sizeof(double)); And, then used the following commands to build and test on the current meson branch:
Error traceback
signal/tests/test_cont2discrete.py ..........Fatal Python error: Segmentation fault
Current thread 0x00007fad74ee5740 (most recent call first):
File "/home/smit/Smitlunagariya/scipy/installdir/lib/python3.9/site-packages/scipy/interpolate/interpolate.py", line 718 in _check_bounds
File "/home/smit/Smitlunagariya/scipy/installdir/lib/python3.9/site-packages/scipy/interpolate/interpolate.py", line 693 in _evaluate
File "/home/smit/Smitlunagariya/scipy/installdir/lib/python3.9/site-packages/scipy/interpolate/polyint.py", line 78 in __call__
File "/home/smit/Smitlunagariya/scipy/installdir/lib/python3.9/site-packages/scipy/signal/ltisys.py", line 3501 in dlsim
File "/home/smit/Smitlunagariya/scipy/installdir/lib/python3.9/site-packages/scipy/signal/tests/test_cont2discrete.py", line 308 in test_discrete_approx
File "/home/smit/anaconda3/envs/scipy-dev/lib/python3.9/site-packages/_pytest/python.py", line 183 in pytest_pyfunc_call
File "/home/smit/anaconda3/envs/scipy-dev/lib/python3.9/site-packages/pluggy/callers.py", line 187 in _multicall
File "/home/smit/anaconda3/envs/scipy-dev/lib/python3.9/site-packages/pluggy/manager.py", line 84 in <lambda>
File "/home/smit/anaconda3/envs/scipy-dev/lib/python3.9/site-packages/pluggy/manager.py", line 93 in _hookexec
File "/home/smit/anaconda3/envs/scipy-dev/lib/python3.9/site-packages/pluggy/hooks.py", line 286 in __call__
File "/home/smit/anaconda3/envs/scipy-dev/lib/python3.9/site-packages/_pytest/python.py", line 1641 in runtest
File "/home/smit/anaconda3/envs/scipy-dev/lib/python3.9/site-packages/_pytest/runner.py", line 162 in pytest_runtest_call
File "/home/smit/anaconda3/envs/scipy-dev/lib/python3.9/site-packages/pluggy/callers.py", line 187 in _multicall
File "/home/smit/anaconda3/envs/scipy-dev/lib/python3.9/site-packages/pluggy/manager.py", line 84 in <lambda>
File "/home/smit/anaconda3/envs/scipy-dev/lib/python3.9/site-packages/pluggy/manager.py", line 93 in _hookexec
File "/home/smit/anaconda3/envs/scipy-dev/lib/python3.9/site-packages/pluggy/hooks.py", line 286 in __call__
File "/home/smit/anaconda3/envs/scipy-dev/lib/python3.9/site-packages/_pytest/runner.py", line 255 in <lambda>
File "/home/smit/anaconda3/envs/scipy-dev/lib/python3.9/site-packages/_pytest/runner.py", line 311 in from_call
File "/home/smit/anaconda3/envs/scipy-dev/lib/python3.9/site-packages/_pytest/runner.py", line 254 in call_runtest_hook
File "/home/smit/anaconda3/envs/scipy-dev/lib/python3.9/site-packages/_pytest/runner.py", line 215 in call_and_report
File "/home/smit/anaconda3/envs/scipy-dev/lib/python3.9/site-packages/_pytest/runner.py", line 126 in runtestprotocol
File "/home/smit/anaconda3/envs/scipy-dev/lib/python3.9/site-packages/_pytest/runner.py", line 109 in pytest_runtest_protocol
File "/home/smit/anaconda3/envs/scipy-dev/lib/python3.9/site-packages/pluggy/callers.py", line 187 in _multicall
File "/home/smit/anaconda3/envs/scipy-dev/lib/python3.9/site-packages/pluggy/manager.py", line 84 in <lambda>
File "/home/smit/anaconda3/envs/scipy-dev/lib/python3.9/site-packages/pluggy/manager.py", line 93 in _hookexec
File "/home/smit/anaconda3/envs/scipy-dev/lib/python3.9/site-packages/pluggy/hooks.py", line 286 in __call__
File "/home/smit/anaconda3/envs/scipy-dev/lib/python3.9/site-packages/_pytest/main.py", line 348 in pytest_runtestloop
File "/home/smit/anaconda3/envs/scipy-dev/lib/python3.9/site-packages/pluggy/callers.py", line 187 in _multicall
File "/home/smit/anaconda3/envs/scipy-dev/lib/python3.9/site-packages/pluggy/manager.py", line 84 in <lambda>
File "/home/smit/anaconda3/envs/scipy-dev/lib/python3.9/site-packages/pluggy/manager.py", line 93 in _hookexec
File "/home/smit/anaconda3/envs/scipy-dev/lib/python3.9/site-packages/pluggy/hooks.py", line 286 in __call__
File "/home/smit/anaconda3/envs/scipy-dev/lib/python3.9/site-packages/_pytest/main.py", line 323 in _main
File "/home/smit/anaconda3/envs/scipy-dev/lib/python3.9/site-packages/_pytest/main.py", line 269 in wrap_session
File "/home/smit/anaconda3/envs/scipy-dev/lib/python3.9/site-packages/_pytest/main.py", line 316 in pytest_cmdline_main
File "/home/smit/anaconda3/envs/scipy-dev/lib/python3.9/site-packages/pluggy/callers.py", line 187 in _multicall
File "/home/smit/anaconda3/envs/scipy-dev/lib/python3.9/site-packages/pluggy/manager.py", line 84 in <lambda>
File "/home/smit/anaconda3/envs/scipy-dev/lib/python3.9/site-packages/pluggy/manager.py", line 93 in _hookexec
File "/home/smit/anaconda3/envs/scipy-dev/lib/python3.9/site-packages/pluggy/hooks.py", line 286 in __call__
File "/home/smit/anaconda3/envs/scipy-dev/lib/python3.9/site-packages/_pytest/config/__init__.py", line 162 in main
File "/home/smit/anaconda3/envs/scipy-dev/lib/python3.9/site-packages/_pytest/config/__init__.py", line 185 in console_main
File "/home/smit/anaconda3/envs/scipy-dev/bin/pytest", line 11 in <module> |
Hmm a little surprising, I had to spend more effort getting it to work, and it definitely needed a suppressions file because Python itself was a mess. That said, I do remember getting a more useful traceback. Anyway, let's leave it at this for now. |
Hi @rgommers I was trying to build with ASAN and hopefully, now, I am getting something useful. I used the following commands:
I get a long trace as below: Log
My ubuntu kernel version: |
so i've spent like an hour+ on this as well now. didn't get it work, but writing down my experience just in case.
https://github.com/pytorch/pytorch/blob/master/.jenkins/pytorch/build-asan.sh for this, i removed the instead, i source the following script in the export LLVM_ROOT=$HOME/llvm/clang+llvm-13.0.0-x86_64-linux-gnu-ubuntu-20.04
export LIBASAN_RT=$LLVM_ROOT/lib/clang/13.0.0/lib/linux/libclang_rt.asan-x86_64.so
export ASAN_SYMBOLIZER_PATH=$LLVM_ROOT/bin/llvm-symbolizer
export ASAN_OPTIONS=detect_leaks=0:symbolize=1:strict_init_order=true
export UBSAN_OPTIONS=print_stacktrace=1
build_with_asan()
{
LD_PRELOAD=${LIBASAN_RT} \
CC="$LLVM_ROOT/bin/clang" \
CXX="$LLVM_ROOT/bin/clang++" \
LDSHARED="$LLVM_ROOT/bin/clang --shared" \
CFLAGS="-fsanitize=address -fno-sanitize-recover=all -shared-libasan -pthread" \
CXX_FLAGS="-pthread" \
$@
} (note that i'm disabling leak detection here to avoid aborting on the very first leak from python) then do the usual build/run command with some crash repro:
then, i would expect to see a stack trace and some summary about which memory is allocated where. but i only see a stack trace. moreover, this only seems to work with things that are outright wrong, like inserting some more thoughts on why it might not be working properly:
|
Hmm, I don't have much experience with this. @eli-schwartz is there anything that comes to mind here? I assume ASAN support in Meson is in good shape? |
sanitizer support in Meson mostly means being context-aware for e.g. things like gnome gobject-introspection, and handling the correct per-compiler flag to define options via. (e.g. -fsanitize= vs /fsanitize=). It also detects when you mix that with b_lundef and triggers a warning. The other thing it does is detect asan and set -fno-omit-frame-pointer. |
I'm not sure that that will work, Flang isn't reliable yet AFAIK. It's possible that it'll work on Linux (no luck on Windows for sure), I can't remember anyone trying though.
I think you want to always use the default per OS, which is Either way, you should be able to use
to configure the build to only pass that linker arg to C/C++. |
okay, i will give it another try sometime later and will report here |
@rgommers woo, i think i'm now able to build scipy with asan! here's what i did:
|
I have now verified this, introduced an issue in
|
This is included in scipygh-16447
This may be useful later. Most people use GCC, but on macOS Clang will be needed. But let's leave it as is for now. Closing, thanks @nkaretnikov! |
This isn't important now, I was just curious so documenting for later when we want to look into it more.
Building with ASAN is easy with Meson, in principle: https://mesonbuild.com/howtox.html#use-address-sanitizer
Python itself leaks badly, so you need a suppression file. Following what this blog does works: https://tobywf.com/2021/02/python-ext-asan/
Then you may see
<unknown module>
in the output, which makes it hard to tell where a memory leak is coming from. This workaround, pre-loading a fakedlclose
, helps: google/sanitizers#89 (comment).I spent about an hour and got it to work. The results seem to say that SciPy is not leaking any memory. But of course the whole test suite doesn't run yet, so this should be repeated later. Also, to verify the results are correct, we should
The text was updated successfully, but these errors were encountered: