Thanks to visit codestin.com
Credit goes to github.com

Skip to content

BUG: Fix memory leak in array-coercion error paths #17421

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

Merged
merged 1 commit into from
Oct 3, 2020

Conversation

seberg
Copy link
Member

@seberg seberg commented Oct 2, 2020

Simple enough fix, PyMem_* is the right thing to begin with, I think. Repeating was necessary for me to see this with valgrind due to the cache, I am not sure why I didn't see it with pytest-leaks (I thought the PyMem_ allocated memory blocks should be noticed lost, but...

The second path may not be covered by a test, but I expect it is somewhere, lets see what codecov thinks.

Also uses PyMem_*, since those seem the more approriate functions.
@charris
Copy link
Member

charris commented Oct 2, 2020

Hmm, unexpected core dump.

@seberg
Copy link
Member Author

seberg commented Oct 2, 2020

Yeah, in the FFT tests? Pasting it here, and restarting the test since it seems a bit confusing (albeit, maybe not impossible).


JOB: NPY_RELAXED_STRIDES_CHECKING=0 DOWNLOAD_OPENBLAS=1 CHECK_BLAS=1 NPY_USE_BLAS_ILP64=1

../../builds/venv/lib/python3.7/site-packages/numpy/fft/tests/test_pocketfft.py . [ 47%]
6177Fatal Python error: Segmentation fault
6178
6179Current thread 0x00007f9896f62740 (most recent call first):
6180  File "/home/travis/build/numpy/numpy/builds/venv/lib/python3.7/site-packages/numpy/core/numeric.py", line 2346 in within_tol
6181  File "/home/travis/build/numpy/numpy/builds/venv/lib/python3.7/site-packages/numpy/core/numeric.py", line 2360 in isclose
6182  File "<__array_function__ internals>", line 6 in isclose
6183  File "/home/travis/build/numpy/numpy/builds/venv/lib/python3.7/site-packages/numpy/testing/_private/utils.py", line 1525 in compare
6184  File "/home/travis/build/numpy/numpy/builds/venv/lib/python3.7/site-packages/numpy/testing/_private/utils.py", line 790 in assert_array_compare
6185  File "/home/travis/build/numpy/numpy/builds/venv/lib/python3.7/site-packages/numpy/testing/_private/utils.py", line 1530 in assert_allclose
6186  File "/home/travis/build/numpy/numpy/builds/venv/lib/python3.7/site-packages/numpy/fft/tests/test_pocketfft.py", line 32 in test_identity
6187  File "/home/travis/build/numpy/numpy/builds/venv/lib/python3.7/site-packages/_pytest/python.py", line 180 in pytest_pyfunc_call
6188  File "/home/travis/build/numpy/numpy/builds/venv/lib/python3.7/site-packages/pluggy/callers.py", line 187 in _multicall
6189  File "/home/travis/build/numpy/numpy/builds/venv/lib/python3.7/site-packages/pluggy/manager.py", line 87 in <lambda>
6190  File "/home/travis/build/numpy/numpy/builds/venv/lib/python3.7/site-packages/pluggy/manager.py", line 93 in _hookexec
6191  File "/home/travis/build/numpy/numpy/builds/venv/lib/python3.7/site-packages/pluggy/hooks.py", line 286 in __call__
6192  File "/home/travis/build/numpy/numpy/builds/venv/lib/python3.7/site-packages/_pytest/python.py", line 1570 in runtest
6193  File "/home/travis/build/numpy/numpy/builds/venv/lib/python3.7/site-packages/_pytest/runner.py", line 153 in pytest_runtest_call
6194  File "/home/travis/build/numpy/numpy/builds/venv/lib/python3.7/site-packages/pluggy/callers.py", line 187 in _multicall
6195  File "/home/travis/build/numpy/numpy/builds/venv/lib/python3.7/site-packages/pluggy/manager.py", line 87 in <lambda>
6196  File "/home/travis/build/numpy/numpy/builds/venv/lib/python3.7/site-packages/pluggy/manager.py", line 93 in _hookexec
6197  File "/home/travis/build/numpy/numpy/builds/venv/lib/python3.7/site-packages/pluggy/hooks.py", line 286 in __call__
6198  File "/home/travis/build/numpy/numpy/builds/venv/lib/python3.7/site-packages/_pytest/runner.py", line 247 in <lambda>
6199  File "/home/travis/build/numpy/numpy/builds/venv/lib/python3.7/site-packages/_pytest/runner.py", line 294 in from_call
6200  File "/home/travis/build/numpy/numpy/builds/venv/lib/python3.7/site-packages/_pytest/runner.py", line 247 in call_runtest_hook
6201  File "/home/travis/build/numpy/numpy/builds/venv/lib/python3.7/site-packages/_pytest/runner.py", line 207 in call_and_report
6202  File "/home/travis/build/numpy/numpy/builds/venv/lib/python3.7/site-packages/_pytest/runner.py", line 117 in runtestprotocol
6203  File "/home/travis/build/numpy/numpy/builds/venv/lib/python3.7/site-packages/_pytest/runner.py", line 100 in pytest_runtest_protocol
6204  File "/home/travis/build/numpy/numpy/builds/venv/lib/python3.7/site-packages/pluggy/callers.py", line 187 in _multicall
6205  File "/home/travis/build/numpy/numpy/builds/venv/lib/python3.7/site-packages/pluggy/manager.py", line 87 in <lambda>
6206  File "/home/travis/build/numpy/numpy/builds/venv/lib/python3.7/site-packages/pluggy/manager.py", line 93 in _hookexec
6207  File "/home/travis/build/numpy/numpy/builds/venv/lib/python3.7/site-packages/pluggy/hooks.py", line 286 in __call__
6208  File "/home/travis/build/numpy/numpy/builds/venv/lib/python3.7/site-packages/_pytest/main.py", line 321 in pytest_runtestloop
6209  File "/home/travis/build/numpy/numpy/builds/venv/lib/python3.7/site-packages/pluggy/callers.py", line 187 in _multicall
6210  File "/home/travis/build/numpy/numpy/builds/venv/lib/python3.7/site-packages/pluggy/manager.py", line 87 in <lambda>
6211  File "/home/travis/build/numpy/numpy/builds/venv/lib/python3.7/site-packages/pluggy/manager.py", line 93 in _hookexec
6212  File "/home/travis/build/numpy/numpy/builds/venv/lib/python3.7/site-packages/pluggy/hooks.py", line 286 in __call__
6213  File "/home/travis/build/numpy/numpy/builds/venv/lib/python3.7/site-packages/_pytest/main.py", line 296 in _main
6214  File "/home/travis/build/numpy/numpy/builds/venv/lib/python3.7/site-packages/_pytest/main.py", line 240 in wrap_session
6215  File "/home/travis/build/numpy/numpy/builds/venv/lib/python3.7/site-packages/_pytest/main.py", line 289 in pytest_cmdline_main
6216  File "/home/travis/build/numpy/numpy/builds/venv/lib/python3.7/site-packages/pluggy/callers.py", line 187 in _multicall
6217  File "/home/travis/build/numpy/numpy/builds/venv/lib/python3.7/site-packages/pluggy/manager.py", line 87 in <lambda>
6218  File "/home/travis/build/numpy/numpy/builds/venv/lib/python3.7/site-packages/pluggy/manager.py", line 93 in _hookexec
6219  File "/home/travis/build/numpy/numpy/builds/venv/lib/python3.7/site-packages/pluggy/hooks.py", line 286 in __call__
6220  File "/home/travis/build/numpy/numpy/builds/venv/lib/python3.7/site-packages/_pytest/config/__init__.py", line 158 in main
6221  File "/home/travis/build/numpy/numpy/builds/venv/lib/python3.7/site-packages/numpy/_pytesttester.py", line 221 in __call__
6222  File "../runtests.py", line 353 in main
6223  File "../runtests.py", line 537 in <module>
6224./tools/travis-test.sh: line 67:  8127 Segmentation fault      (core dumped) $PYTHON ../runtests.py -n -v $DURATIONS_FLAG
6225The command "./tools/travis-test.sh" exited with 139.
cache.2
6226store build cache

@seberg
Copy link
Member Author

seberg commented Oct 2, 2020

Eh, travis CI isn't showing me the rerun button on this PR? Just going for close+reopen...

@seberg seberg closed this Oct 2, 2020
@seberg seberg reopened this Oct 2, 2020
@charris charris merged commit e6b8b19 into numpy:master Oct 3, 2020
@charris
Copy link
Member

charris commented Oct 3, 2020

Thanks Sebastian.

@seberg seberg deleted the coercion-cache-leak-large-arrays branch October 3, 2020 15:16
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants