Skip to content
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

Nightly feedstock build failed #167

Closed
github-actions bot opened this issue Feb 8, 2025 · 18 comments
Closed

Nightly feedstock build failed #167

github-actions bot opened this issue Feb 8, 2025 · 18 comments

Comments

@github-actions
Copy link

github-actions bot commented Feb 8, 2025

Nightly feedstock build failure for TileDB-Py%20Feedstock%20Testing at https://dev.azure.com/TileDB-Inc/CI/_build?definitionId=5&_a=summary

Copy link
Author

Nightly feedstock build failure for TileDB-Py%20Feedstock%20Testing at https://dev.azure.com/TileDB-Inc/CI/_build?definitionId=5&_a=summary

@jdblischak
Copy link
Collaborator

The exact same test failed with a core dump on Friday and Sunday nights, only for the linux-64 py312 np2 build (Friday, Sunday).

@kounelisagis any insights into why this particular test is so flaky only on linux-64 with python 3.12 and numpy2?

tiledb/tests/test_libtiledb.py::TestPath::test_no_output XFAIL (This...) [ 42%]
tiledb/tests/test_libtiledb.py::TestAsBuilt::test_as_built PASSED        [ 42%]
Fatal Python error: Aborted

Current thread 0x00007fcfd7233740 (most recent call first):
  File "$TEST_ENV/lib/python3.12/site-packages/hypothesis/internal/conjecture/data.py", line 791 in __init__
  File "$TEST_ENV/lib/python3.12/site-packages/hypothesis/internal/conjecture/data.py", line 1369 in draw_choice
  File "$TEST_ENV/lib/python3.12/site-packages/hypothesis/internal/conjecture/datatree.py", line 848 in _draw
  File "$TEST_ENV/lib/python3.12/site-packages/hypothesis/internal/conjecture/datatree.py", line 749 in generate_novel_prefix
  File "$TEST_ENV/lib/python3.12/site-packages/hypothesis/internal/conjecture/engine.py", line 662 in generate_novel_prefix
  File "$TEST_ENV/lib/python3.12/site-packages/hypothesis/internal/conjecture/engine.py", line 1049 in generate_new_examples
  File "$TEST_ENV/lib/python3.12/site-packages/hypothesis/internal/conjecture/engine.py", line 1286 in _run
  File "$TEST_ENV/lib/python3.12/site-packages/hypothesis/internal/conjecture/engine.py", line 789 in run
  File "$TEST_ENV/lib/python3.12/site-packages/hypothesis/core.py", line 1251 in run_engine
  File "$TEST_ENV/lib/python3.12/site-packages/hypothesis/core.py", line 1795 in wrapped_test
  File "/home/conda/feedstock_root/build_artifacts/tiledb-py_1739157872130/test_tmp/tiledb/tests/test_multi_index-hp.py", line 91 in test_multi_index_two_way_query
  File "$TEST_ENV/lib/python3.12/site-packages/_pytest/python.py", line 159 in pytest_pyfunc_call
  File "$TEST_ENV/lib/python3.12/site-packages/pluggy/_callers.py", line 103 in _multicall
  File "$TEST_ENV/lib/python3.12/site-packages/pluggy/_manager.py", line 120 in _hookexec
  File "$TEST_ENV/lib/python3.12/site-packages/pluggy/_hooks.py", line 513 in __call__
  File "$TEST_ENV/lib/python3.12/site-packages/_pytest/python.py", line 1627 in runtest
  File "$TEST_ENV/lib/python3.12/site-packages/_pytest/runner.py", line 174 in pytest_runtest_call
  File "$TEST_ENV/lib/python3.12/site-packages/pluggy/_callers.py", line 103 in _multicall
  File "$TEST_ENV/lib/python3.12/site-packages/pluggy/_manager.py", line 120 in _hookexec
  File "$TEST_ENV/lib/python3.12/site-packages/pluggy/_hooks.py", line 513 in __call__
  File "$TEST_ENV/lib/python3.12/site-packages/_pytest/runner.py", line 242 in <lambda>
  File "$TEST_ENV/lib/python3.12/site-packages/_pytest/runner.py", line 341 in from_call
  File "$TEST_ENV/lib/python3.12/site-packages/_pytest/runner.py", line 241 in call_and_report
  File "$TEST_ENV/lib/python3.12/site-packages/_pytest/runner.py", line 132 in runtestprotocol
  File "$TEST_ENV/lib/python3.12/site-packages/_pytest/runner.py", line 113 in pytest_runtest_protocol
  File "$TEST_ENV/lib/python3.12/site-packages/pluggy/_callers.py", line 103 in _multicall
  File "$TEST_ENV/lib/python3.12/site-packages/pluggy/_manager.py", line 120 in _hookexec
  File "$TEST_ENV/lib/python3.12/site-packages/pluggy/_hooks.py", line 513 in __call__
  File "$TEST_ENV/lib/python3.12/site-packages/_pytest/main.py", line 362 in pytest_runtestloop
  File "$TEST_ENV/lib/python3.12/site-packages/pluggy/_callers.py", line 103 in _multicall
  File "$TEST_ENV/lib/python3.12/site-packages/pluggy/_manager.py", line 120 in _hookexec
  File "$TEST_ENV/lib/python3.12/site-packages/pluggy/_hooks.py", line 513 in __call__
  File "$TEST_ENV/lib/python3.12/site-packages/_pytest/main.py", line 337 in _main
  File "$TEST_ENV/lib/python3.12/site-packages/_pytest/main.py", line 283 in wrap_session
  File "$TEST_ENV/lib/python3.12/site-packages/_pytest/main.py", line 330 in pytest_cmdline_main
  File "$TEST_ENV/lib/python3.12/site-packages/pluggy/_callers.py", line 103 in _multicall
  File "$TEST_ENV/lib/python3.12/site-packages/pluggy/_manager.py", line 120 in _hookexec
  File "$TEST_ENV/lib/python3.12/site-packages/pluggy/_hooks.py", line 513 in __call__
  File "$TEST_ENV/lib/python3.12/site-packages/_pytest/config/__init__.py", line 175 in main
  File "$TEST_ENV/lib/python3.12/site-packages/_pytest/config/__init__.py", line 201 in console_main
  File "$TEST_ENV/bin/pytest", line 11 in <module>

Extension modules: numpy._core._multiarray_umath, numpy.linalg._umath_linalg, pyarrow.lib, numpy.random._common, numpy.random.bit_generator, numpy.random._bounded_integers, numpy.random._mt19937, numpy.random.mtrand, numpy.random._philox, numpy.random._pcg64, numpy.random._sfc64, numpy.random._generator, pandas._libs.tslibs.ccalendar, pandas._libs.tslibs.np_datetime, pandas._libs.tslibs.dtypes, pandas._libs.tslibs.base, pandas._libs.tslibs.nattype, pandas._libs.tslibs.timezones, pandas._libs.tslibs.fields, pandas._libs.tslibs.timedeltas, pandas._libs.tslibs.tzconversion, pandas._libs.tslibs.timestamps, pandas._libs.properties, pandas._libs.tslibs.offsets, pandas._libs.tslibs.strptime, pandas._libs.tslibs.parsing, pandas._libs.tslibs.conversion, pandas._libs.tslibs.period, pandas._libs.tslibs.vectorized, pandas._libs.ops_dispatch, pandas._libs.missing, pandas._libs.hashtable, pandas._libs.algos, pandas._libs.interval, pandas._libs.lib, pyarrow._compute, pandas._libs.ops, pandas._libs.hashing, pandas._libs.arrays, pandas._libs.tslib, pandas._libs.sparse, pandas._libs.internals, pandas._libs.indexing, pandas._libs.index, pandas._libs.writers, pandas._libs.join, pandas._libs.window.aggregations, pandas._libs.window.indexers, pandas._libs.reshape, pandas._libs.groupby, pandas._libs.json, pandas._libs.parsers, pandas._libs.testing, psutil._psutil_linux, psutil._psutil_posix (total: 55)
/home/conda/feedstock_root/build_artifacts/tiledb-py_1739157872130/test_tmp/run_test.sh: line 9:  1391 Aborted                 (core dumped) pytest -v --ignore-glob='*_examples.py' --ignore-glob='*_dask.py'

Copy link
Author

Nightly feedstock build failure for TileDB-Py%20Feedstock%20Testing at https://dev.azure.com/TileDB-Inc/CI/_build?definitionId=5&_a=summary

@kounelisagis
Copy link
Member

I have never seen this test fail locally or on CI.

@jdblischak
Copy link
Collaborator

jdblischak commented Feb 11, 2025

Last night the same test test_libtiledb.py::TestAsBuilt::test_as_built core dumped, but this time for the linux-64 py39 numpy2 build. So it is still limited to linux-64, but we've observed it with both py39 and py312.

@jdblischak
Copy link
Collaborator

I have never seen this test fail locally or on CI.

Looking at the test itself, it looks pretty innocuous. It obtains some metadata about libtiledb and queries it.

The test is flaky. It passed on restart.

Copy link
Author

Nightly feedstock build failure for TileDB-Py%20Feedstock%20Testing at https://dev.azure.com/TileDB-Inc/CI/_build?definitionId=5&_a=summary

@jdblischak
Copy link
Collaborator

jdblischak commented Feb 12, 2025

Last night both the py39 and py312 linux-64 tiledb-py-feedstock builds failed (py313 passed though). I restarted them

@jdblischak
Copy link
Collaborator

Both jobs failed again on their second attempt 🤷

Copy link
Author

Nightly feedstock build failure for TileDB-Py%20Feedstock%20Testing at https://dev.azure.com/TileDB-Inc/CI/_build?definitionId=5&_a=summary

@kounelisagis
Copy link
Member

As discussed with @jdblischak, test_as_built appears to have PASSED. The log indicates that TestMultiIndexPropertySparse.test_multi_index_two_way_query is failing. I’ve seen it fail before, but not that consistently.

Copy link
Author

Nightly feedstock build failure for TileDB-Py%20Feedstock%20Testing at https://dev.azure.com/TileDB-Inc/CI/_build?definitionId=5&_a=summary

@jdblischak
Copy link
Collaborator

Likely source of the flaky test failure is this upstream PR to TileDB TileDB-Inc/TileDB#5417 which was merged late on Feb 6th (TileDB-Inc/TileDB@3c617e3)

Copy link
Author

Nightly feedstock build failure for TileDB-Py%20Feedstock%20Testing at https://dev.azure.com/TileDB-Inc/CI/_build?definitionId=5&_a=summary

@kounelisagis
Copy link
Member

All linux64 jobs failed last night. I'm still trying to repro.

Copy link
Author

Nightly feedstock build failure for TileDB-Py%20Feedstock%20Testing at https://dev.azure.com/TileDB-Inc/CI/_build?definitionId=5&_a=summary

@jdblischak
Copy link
Collaborator

Both @kounelisagis and I are unable to reproduce the error locally using build-locally.py. Below is the code I ran. I also ran pytest a few extra times to try and trigger the spurious error, but no luck.

# Use the latest nightly-build branch
basename $(pwd)
## tiledb-py-feedstock
git fetch tiledb
git checkout -t tiledb/nightly-build
git branch --show-current
## nightly-build
git log -n 1 --pretty=reference
## 710e7d5 (MNT: Re-rendered with conda-build 24.9.0, conda-smithy 3.45.4, and conda-forge-pinning 2025.02.17.08.22.26, 2025-02-17)

python ./build-locally.py --debug linux_64_numpy2.0python3.9.____cpython

# Setup debugging environment
cd /home/conda/feedstock_root/build_artifacts/debug_1739894496071/work
source /home/conda/feedstock_root/build_artifacts/debug_1739894496071/work/build_env_setup.sh
conda install --yes git

# Install TileDB-Py
bash $RECIPE_DIR/build.sh
## Successfully built tiledb
## Installing collected packages: tiledb
## Successfully installed tiledb-0.33.4.dev14+g3bafb00b

# Setup test environment
# Remove build env to be able to use the host env directly (which is where Python is installed)
conda deactivate
# Install test requirements
conda install --yes hypothesis pyarrow pytest pandas psutil
# To avoid import error due to local directory named tiledb/, move the tests
# to another directory
mkdir ../test
mv tiledb/tests/ ../test/
cd ../test/

# Run tests
pytest -v tests/test_multi_index*
## ============================================ test session starts =============================================
## platform linux -- Python 3.9.21, pytest-8.3.4, pluggy-1.5.0 -- /home/conda/feedstock_root/build_artifacts/debug_1739894496071/_h_env/bin/python3.9
## cachedir: .pytest_cache
## hypothesis profile 'default' -> database=DirectoryBasedExampleDatabase(PosixPath('/home/conda/feedstock_root/build_artifacts/debug_1739894496071/test/.hypothesis/examples'))
## rootdir: /home/conda/feedstock_root/build_artifacts/debug_1739894496071/test
## plugins: hypothesis-6.126.0
## collected 54 items
##
## tests/test_multi_index-hp.py::TestMultiIndexPropertySparse::test_multi_index_two_way_query PASSED      [  1%]
## tests/test_multi_index-hp.py::TestMultiIndexPropertySparse::test_multi_index_inputs PASSED             [  3%]
##
## ============================================= 54 passed in 7.41s =============================================

@jdblischak
Copy link
Collaborator

The last failing tiledb-py-feedstock build was the night of Monday, Feb 17th. It used TileDB-Inc/TileDB@d0348dc and TileDB-Inc/TileDB-Py@3bafb00.

However, it has subsequently passed the previous 3 nights. The first passing tiledb-py-feedstock build on the night of Tuesday, Feb 18th used TileDB-Inc/TileDB@022af98 and TileDB-Inc/TileDB-Py@3bafb00.

Thus the only difference was a single commit to TileDB, TileDB-Inc/TileDB@022af98, from TileDB-Inc/TileDB#5461

TileDB-Inc/TileDB@d0348dc...022af98

As this PR was a fix for a problem introduced in TileDB-Inc/TileDB#5417, which was suspected to be the cause of this nightly test failure, this result makes sense.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

4 participants