biolab / orange3

🍊 :bar_chart: :bulb: Orange: Interactive data analysis
https://orangedatamining.com
Other
4.85k stars 1.01k forks source link

Test segfaults #4553

Closed markotoplak closed 4 years ago

markotoplak commented 4 years ago

Describe the bug

Test sometimes segfault on Travis and github actions.

I am abusing this PR for a collection of segfault reports so that we (maybe) see what is happening.

markotoplak commented 4 years ago

OSX 10.14, Orange master. tox -e py For the first three times everything was fine. On the fourth time I got this:

test_minimum_size (Orange.widgets.evaluate.tests.test_owtestlearners.TestOWTestLearners) ... ok
test_more_learners (Orange.widgets.evaluate.tests.test_owtestlearners.TestOWTestLearners) ... ok
test_msg_base_class (Orange.widgets.evaluate.tests.test_owtestlearners.TestOWTestLearners) ... ok
test_nan_class (Orange.widgets.evaluate.tests.test_owtestlearners.TestOWTestLearners) ... ok
test_nan_on_comparison (Orange.widgets.evaluate.tests.test_owtestlearners.TestOWTestLearners) ... ERROR: InvocationError for command /Users/marko/dev/orange3/.tox/py/bin/python -m unittest --verbose Orange.tests Orange.widgets.tests (exited with code -11 (SIGSEGV)) (exited with code -11)

If I remember correctly, travis tests also sometimes segfault for some Test Learner test, but not always for the same one.

janezd commented 4 years ago

MacOS 10.15, Python 3.7, Github actions, #4558.

test_comparison_bad_slots (Orange.widgets.evaluate.tests.test_owtestlearners.TestOWTestLearners) ... ERROR: InvocationError for command /Users/runner/runners/2.165.2/work/orange3/orange3/.tox/py/bin/python -m unittest --verbose Orange.tests Orange.widgets.tests (exited with code -11 (SIGSEGV)) (exited with code -11)
markotoplak commented 4 years ago

OSX 10.14, Orange master.

test_comparison_requires_cv (Orange.widgets.evaluate.tests.test_owtestlearners.TestOWTestLearners) ... ok
test_comparison_requires_multiple_models (Orange.widgets.evaluate.tests.test_owtestlearners.TestOWTestLearners) ... Unable to set '<orangewidget.utils.combobox.ComboBox object at 0x144fbd050>' to 1; largest index is -1
ERROR: InvocationError for command /Users/marko/dev/orange3/.tox/py/bin/python -m unittest --verbose Orange.widgets.tests (exited with code -11 (SIGSEGV)) (exited with code -11)
markotoplak commented 4 years ago

OSX 10.14, Orange master. 2x. This happened with orange-widget-base 4.4.0. The offending lines have been changed in 4.5.0.

test_memory_error (Orange.widgets.data.tests.test_owoutliers.TestOWOutliers) ... ok
test_methods (Orange.widgets.data.tests.test_owoutliers.TestOWOutliers) ... Traceback (most recent call last):
  File "/Users/marko/dev/orange3/.tox/py/lib/python3.7/site-packages/orangewidget/utils/messagewidget.py", line 649, in setOpacity
    self.update()
RuntimeError: wrapped C/C++ object of type IconWidget has been deleted
ERROR: InvocationError for command /Users/marko/dev/orange3/.tox/py/bin/python -m unittest --verbose Orange.widgets.tests (exited with code -11 (SIGSEGV)) (exited with code -11)
JakaKokosar commented 4 years ago

If I remember correctly, travis tests also sometimes segfault for some Test Learner test, but not always for the same one.

Most recent commit (afdb6d7bcf9ef48e1735e9bc3d78d9e7ace4780f) on master: https://travis-ci.org/github/biolab/orange3/jobs/665431344#L9903

markotoplak commented 4 years ago

And then, Mac 10.14, a related one to failing OWOutliers that did not segfault:

EDIT 20200326, another one on travis

======================================================================
ERROR: test_methods (Orange.widgets.data.tests.test_owoutliers.TestOWOutliers)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/Users/marko/dev/orange3/.tox/py/lib/python3.7/site-packages/Orange/widgets/data/tests/test_owoutliers.py", line 100, in test_methods
    callback=callback)
  File "/Users/marko/dev/orange3/.tox/py/lib/python3.7/site-packages/Orange/widgets/tests/utils.py", line 209, in combobox_run_through_all
    callback()
  File "/usr/local/opt/python/Frameworks/Python.framework/Versions/3.7/lib/python3.7/contextlib.py", line 119, in __exit__
    next(self.gen)
  File "/Users/marko/dev/orange3/.tox/py/lib/python3.7/site-packages/Orange/widgets/tests/utils.py", line 171, in excepthook_catch
    raise seen[0][1]
  File "/Users/marko/dev/orange3/.tox/py/lib/python3.7/site-packages/orangewidget/utils/messagewidget.py", line 649, in setOpacity
    self.update()
RuntimeError: wrapped C/C++ object of type IconWidget has been deleted

This happened with orange-widget-base 4.4.0. The offending lines have been changed in 4.5.0.

markotoplak commented 4 years ago

A new one, Github actions, Linux:

test_dataset (Orange.widgets.data.tests.test_owrank.TestOWRank) ... ERROR: InvocationError for command /home/runner/work/orange3/orange3/.tox/canvas-core-dev/bin/python -m unittest --verbose Orange.tests Orange.widgets.tests (exited with code -11 (SIGSEGV)) (exited with code -11)
markotoplak commented 4 years ago

Again on my Mac... I needed to rerun tests ~10 times to get an error again. My command is this: rm -rf "/Users/marko/Library/Application Support/Orange/0.0.0" && time tox --develop -e py.

test_nan_on_comparison (Orange.widgets.evaluate.tests.test_owtestlearners.TestOWTestLearners) ... ERROR: InvocationError for command /Users/marko/dev/orange3/.tox/py/bin/python -m unittest --verbose -f Orange.widgets.tests (exited with code -11 (SIGSEGV)) (exited with code -11)
markotoplak commented 4 years ago

On my Mac, after about 5 runs.

test_feature_combinations (Orange.widgets.data.tests.test_owpivot.TestOWPivot) ... ERROR: InvocationError for command /Users/marko/dev/orange3/.tox/py/bin/python -m unittest --verbose -f Orange.widgets.tests (exited with code -11 (SIGSEGV)) (exited with code -11)
markotoplak commented 4 years ago

setOpacity problem still happens with widget-base 4.5.0. Github actions on linux:

=====================================================================
ERROR: test_methods (Orange.widgets.data.tests.test_owoutliers.TestOWOutliers)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/home/runner/work/orange3/orange3/.tox/canvas-core-dev/lib/python3.7/site-packages/Orange/widgets/data/tests/test_owoutliers.py", line 100, in test_methods
    callback=callback)
  File "/home/runner/work/orange3/orange3/.tox/canvas-core-dev/lib/python3.7/site-packages/Orange/widgets/tests/utils.py", line 209, in combobox_run_through_all
    callback()
  File "/opt/hostedtoolcache/Python/3.7.6/x64/lib/python3.7/contextlib.py", line 119, in __exit__
    next(self.gen)
  File "/home/runner/work/orange3/orange3/.tox/canvas-core-dev/lib/python3.7/site-packages/Orange/widgets/tests/utils.py", line 171, in excepthook_catch
    raise seen[0][1]
  File "/home/runner/work/orange3/orange3/.tox/canvas-core-dev/lib/python3.7/site-packages/orangewidget/utils/messagewidget.py", line 691, in setOpacity
    self.update()
RuntimeError: wrapped C/C++ object of type IconWidget has been deleted
markotoplak commented 4 years ago

Also on appveyor.

test_comparison_bad_slots (Orange.widgets.evaluate.tests.test_owtestlearners.TestOWTestLearners) ... ok
test_comparison_binary_score (Orange.widgets.evaluate.tests.test_owtestlearners.TestOWTestLearners) ... ok
test_comparison_requires_cv (Orange.widgets.evaluate.tests.test_owtestlearners.TestOWTestLearners) ... Command exited with code -1073741819