mitsuba2 icon indicating copy to clipboard operation
mitsuba2 copied to clipboard

Test failure and crash in test_xml.py [🐛 bug report]

Open alhirzel opened this issue 3 years ago • 0 comments

Summary

When running the tests on a fresh build of master, I get a segfault.

System configuration

  • Platform: Arch Linux (Linux WHALE 5.11.10-arch1-1 #1 SMP PREEMPT Fri, 26 Mar 2021 00:11:29 +0000 x86_64 GNU/Linux)
  • Compiler: clang 11.1.0
  • Python version: Python 3.9
  • Mitsuba 2 version: e1c09283a54848e74fe8d84802b72857ab25007f
  • Compiled variants:
    • scalar_rgb

Description

When running pytest against the current master branch, I am seeing test failures. The first failure is as follows. It appears as an "illegal instruction" segfault on an older machine, and the crash moves around when I @pytest.mark.skip tests strategically. I can provide a little more info on this process if desired.

$ pytest
============================================================================================================= test session starts ==============================================================================================================
platform linux -- Python 3.9.2, pytest-6.2.2, py-1.10.0, pluggy-0.13.1
rootdir: /tmp/mitsuba2, configfile: setup.cfg
plugins: forked-1.3.0, xdist-2.2.1, anyio-2.2.0
collecting ... Running the full test suite. To skip slow tests, please run 'pytest -m "not slow"' 
collecting 229 items                                                                                                                                                                                                                           collected 1164 items                                                                                                                                                                                                                           

src/bsdfs/tests/test_blendbsdf.py .....                                                                                                                                                                                                  [  0%]
src/bsdfs/tests/test_conductor.py sss                                                                                                                                                                                                    [  0%]
src/bsdfs/tests/test_dielectric.py .....                                                                                                                                                                                                 [  1%]
src/bsdfs/tests/test_diffuse.py ..s                                                                                                                                                                                                      [  1%]
src/bsdfs/tests/test_polarizer.py sssss                                                                                                                                                                                                  [  1%]
src/bsdfs/tests/test_retarder.py sssssss                                                                                                                                                                                                 [  2%]
src/bsdfs/tests/test_rough_conductor.py sssss                                                                                                                                                                                            [  2%]
src/bsdfs/tests/test_rough_dielectric.py sssssssssss                                                                                                                                                                                     [  3%]
src/bsdfs/tests/test_rough_plastic.py ss                                                                                                                                                                                                 [  3%]
src/bsdfs/tests/test_twosided.py ...                                                                                                                                                                                                     [  4%]
src/emitters/tests/test_area.py .ssssss                                                                                                                                                                                                  [  4%]
src/emitters/tests/test_constant.py sssss                                                                                                                                                                                                [  5%]
src/emitters/tests/test_directional.py .ssssssssssssss                                                                                                                                                                                   [  6%]
src/emitters/tests/test_point.py ssssss                                                                                                                                                                                                  [  7%]
src/emitters/tests/test_spot.py ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss                                                                                                                                 [ 13%]
src/films/tests/test_hdrfilm.py .....                                                                                                                                                                                                    [ 13%]
src/libcore/tests/test_argparser.py .....                                                                                                                                                                                                [ 14%]
src/libcore/tests/test_atomic.py .                                                                                                                                                                                                       [ 14%]
src/libcore/tests/test_bbox.py ...                                                                                                                                                                                                       [ 14%]
src/libcore/tests/test_bitmap.py .............                                                                                                                                                                                           [ 15%]
src/libcore/tests/test_bsphere.py .                                                                                                                                                                                                      [ 15%]
src/libcore/tests/test_dict.py .ss.ss.ss.ss.ss.sss.sss..ss..                                                                                                                                                                             [ 18%]
src/libcore/tests/test_distr_1d.py ssssssssssssssssss                                                                                                                                                                                    [ 19%]
src/libcore/tests/test_distr_2d.py ..............................ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss.                                               [ 32%]
src/libcore/tests/test_filesystem.py .............                                                                                                                                                                                       [ 33%]
src/libcore/tests/test_frame.py ...                                                                                                                                                                                                      [ 34%]
src/libcore/tests/test_logger.py .                                                                                                                                                                                                       [ 34%]
src/libcore/tests/test_math.py ..s.....                                                                                                                                                                                                  [ 34%]
src/libcore/tests/test_mmap.py ....                                                                                                                                                                                                      [ 35%]
src/libcore/tests/test_properties.py .......s                                                                                                                                                                                            [ 35%]
src/libcore/tests/test_python.py .                                                                                                                                                                                                       [ 35%]
src/libcore/tests/test_qmc.py ...s                                                                                                                                                                                                       [ 36%]
src/libcore/tests/test_quad.py ....                                                                                                                                                                                                      [ 36%]
src/libcore/tests/test_random.py ..s..s.                                                                                                                                                                                                 [ 37%]
src/libcore/tests/test_spline.py ....s.s......                                                                                                                                                                                           [ 38%]
src/libcore/tests/test_stream.py ............................                                                                                                                                                                            [ 40%]
src/libcore/tests/test_struct.py ....................................................................................................................................................................................................... [ 57%]
.                                                                                                                                                                                                                                        [ 57%]
src/libcore/tests/test_transform.py ......                                                                                                                                                                                               [ 58%]
src/libcore/tests/test_util.py ..                                                                                                                                                                                                        [ 58%]
src/libcore/tests/test_vector.py .                                                                                                                                                                                                       [ 58%]
src/libcore/tests/test_warp.py sss..sssssss....                                                                                                                                                                                          [ 60%]
src/libcore/tests/test_write_xml.py ..........sss.sssFsss.                                                                                                                                                                               [ 61%]
src/libcore/tests/test_xml.py ...........FFatal Python error: Aborted

Current thread 0x00007fd5ecf6d740 (most recent call first):
  File "/tmp/mitsuba2/src/libcore/tests/test_xml.py", line 139 in test11_unknown_attribute
  File "/usr/lib/python3.9/site-packages/_pytest/python.py", line 183 in pytest_pyfunc_call
  File "/usr/lib/python3.9/site-packages/pluggy/callers.py", line 187 in _multicall
  File "/usr/lib/python3.9/site-packages/pluggy/manager.py", line 84 in <lambda>
  File "/usr/lib/python3.9/site-packages/pluggy/manager.py", line 93 in _hookexec
  File "/usr/lib/python3.9/site-packages/pluggy/hooks.py", line 286 in __call__
  File "/usr/lib/python3.9/site-packages/_pytest/python.py", line 1641 in runtest
  File "/usr/lib/python3.9/site-packages/_pytest/runner.py", line 162 in pytest_runtest_call
  File "/usr/lib/python3.9/site-packages/pluggy/callers.py", line 187 in _multicall
  File "/usr/lib/python3.9/site-packages/pluggy/manager.py", line 84 in <lambda>
  File "/usr/lib/python3.9/site-packages/pluggy/manager.py", line 93 in _hookexec
  File "/usr/lib/python3.9/site-packages/pluggy/hooks.py", line 286 in __call__
  File "/usr/lib/python3.9/site-packages/_pytest/runner.py", line 255 in <lambda>
  File "/usr/lib/python3.9/site-packages/_pytest/runner.py", line 311 in from_call
  File "/usr/lib/python3.9/site-packages/_pytest/runner.py", line 254 in call_runtest_hook
  File "/usr/lib/python3.9/site-packages/_pytest/runner.py", line 215 in call_and_report
  File "/usr/lib/python3.9/site-packages/_pytest/runner.py", line 126 in runtestprotocol
  File "/usr/lib/python3.9/site-packages/_pytest/runner.py", line 109 in pytest_runtest_protocol
  File "/usr/lib/python3.9/site-packages/pluggy/callers.py", line 187 in _multicall
  File "/usr/lib/python3.9/site-packages/pluggy/manager.py", line 84 in <lambda>
  File "/usr/lib/python3.9/site-packages/pluggy/manager.py", line 93 in _hookexec
  File "/usr/lib/python3.9/site-packages/pluggy/hooks.py", line 286 in __call__
  File "/usr/lib/python3.9/site-packages/_pytest/main.py", line 348 in pytest_runtestloop
  File "/usr/lib/python3.9/site-packages/pluggy/callers.py", line 187 in _multicall
  File "/usr/lib/python3.9/site-packages/pluggy/manager.py", line 84 in <lambda>
  File "/usr/lib/python3.9/site-packages/pluggy/manager.py", line 93 in _hookexec
  File "/usr/lib/python3.9/site-packages/pluggy/hooks.py", line 286 in __call__
  File "/usr/lib/python3.9/site-packages/_pytest/main.py", line 323 in _main
  File "/usr/lib/python3.9/site-packages/_pytest/main.py", line 269 in wrap_session
  File "/usr/lib/python3.9/site-packages/_pytest/main.py", line 316 in pytest_cmdline_main
  File "/usr/lib/python3.9/site-packages/pluggy/callers.py", line 187 in _multicall
  File "/usr/lib/python3.9/site-packages/pluggy/manager.py", line 84 in <lambda>
  File "/usr/lib/python3.9/site-packages/pluggy/manager.py", line 93 in _hookexec
  File "/usr/lib/python3.9/site-packages/pluggy/hooks.py", line 286 in __call__
  File "/usr/lib/python3.9/site-packages/_pytest/config/__init__.py", line 162 in main
  File "/usr/lib/python3.9/site-packages/_pytest/config/__init__.py", line 185 in console_main
  File "/usr/bin/pytest", line 33 in <module>
zsh: abort (core dumped)  pytest

Steps to reproduce

git clone --recursive https://github.com/mitsuba-renderer/mitsuba2
cd mitsuba2
mkdir -p build
CC=clang-11 CXX=clang++ cmake -S . -B build -G Ninja
cd build
ninja -j8
cd ..
pytest

alhirzel avatar Apr 01 '21 13:04 alhirzel