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

Intermittent "Fatal Python error: Cannot recover from stack overflow." from wester tests on Travis #11274

Closed
asmeurer opened this issue Jun 22, 2016 · 12 comments
Milestone

Comments

@asmeurer
Copy link
Member

sympy/core/tests/test_wester.py[397] ........ffffffffffffffffffffffffffffffffffX
wffwXffffffffffffffffffffffffffffffffffffffffffffffffffffffffffXffffffffffffffff
fXXfXfXfffFatal Python error: Cannot recover from stack overflow.
Current thread 0x00007fd7f1d55700:
  File "/home/travis/virtualenv/python3.3.5/lib/python3.3/site-packages/sympy-1.0.1.dev0-py3.3.egg/sympy/core/expr.py", line 360 in is_number
  File "/home/travis/virtualenv/python3.3.5/lib/python3.3/site-packages/sympy-1.0.1.dev0-py3.3.egg/sympy/core/expr.py", line 360 in <genexpr>
  File "/home/travis/virtualenv/python3.3.5/lib/python3.3/site-packages/sympy-1.0.1.dev0-py3.3.egg/sympy/core/expr.py", line 360 in is_number
  File "/home/travis/virtualenv/python3.3.5/lib/python3.3/site-packages/sympy-1.0.1.dev0-py3.3.egg/sympy/core/expr.py", line 360 in <genexpr>
  File "/home/travis/virtualenv/python3.3.5/lib/python3.3/site-packages/sympy-1.0.1.dev0-py3.3.egg/sympy/core/expr.py", line 360 in is_number
  File "/home/travis/virtualenv/python3.3.5/lib/python3.3/site-packages/sympy-1.0.1.dev0-py3.3.egg/sympy/core/expr.py", line 360 in <genexpr>
  File "/home/travis/virtualenv/python3.3.5/lib/python3.3/site-packages/sympy-1.0.1.dev0-py3.3.egg/sympy/core/expr.py", line 360 in is_number
  File "/home/travis/virtualenv/python3.3.5/lib/python3.3/site-packages/sympy-1.0.1.dev0-py3.3.egg/sympy/core/expr.py", line 360 in <genexpr>
  File "/home/travis/virtualenv/python3.3.5/lib/python3.3/site-packages/sympy-1.0.1.dev0-py3.3.egg/sympy/core/expr.py", line 360 in is_number
  File "/home/travis/virtualenv/python3.3.5/lib/python3.3/site-packages/sympy-1.0.1.dev0-py3.3.egg/sympy/core/mul.py", line 1259 in _eval_is_prime
  File "/home/travis/virtualenv/python3.3.5/lib/python3.3/site-packages/sympy-1.0.1.dev0-py3.3.egg/sympy/core/assumptions.py", line 290 in _ask
  File "/home/travis/virtualenv/python3.3.5/lib/python3.3/site-packages/sympy-1.0.1.dev0-py3.3.egg/sympy/core/assumptions.py", line 302 in _ask
  File "/home/travis/virtualenv/python3.3.5/lib/python3.3/site-packages/sympy-1.0.1.dev0-py3.3.egg/sympy/core/assumptions.py", line 247 in getit
  File "/home/travis/virtualenv/python3.3.5/lib/python3.3/site-packages/sympy-1.0.1.dev0-py3.3.egg/sympy/core/mul.py", line 1107 in _eval_is_imaginary
  File "/home/travis/virtualenv/python3.3.5/lib/python3.3/site-packages/sympy-1.0.1.dev0-py3.3.egg/sympy/core/assumptions.py", line 290 in _ask
  File "/home/travis/virtualenv/python3.3.5/lib/python3.3/site-packages/sympy-1.0.1.dev0-py3.3.egg/sympy/core/assumptions.py", line 302 in _ask
  File "/home/travis/virtualenv/python3.3.5/lib/python3.3/site-packages/sympy-1.0.1.dev0-py3.3.egg/sympy/core/assumptions.py", line 302 in _ask
  File "/home/travis/virtualenv/python3.3.5/lib/python3.3/site-packages/sympy-1.0.1.dev0-py3.3.egg/sympy/core/assumptions.py", line 302 in _ask
  File "/home/travis/virtualenv/python3.3.5/lib/python3.3/site-packages/sympy-1.0.1.dev0-py3.3.egg/sympy/core/assumptions.py", line 302 in _ask
  File "/home/travis/virtualenv/python3.3.5/lib/python3.3/site-packages/sympy-1.0.1.dev0-py3.3.egg/sympy/core/assumptions.py", line 247 in getit
  File "/home/travis/virtualenv/python3.3.5/lib/python3.3/site-packages/sympy-1.0.1.dev0-py3.3.egg/sympy/core/add.py", line 530 in _eval_is_irrational
  File "/home/travis/virtualenv/python3.3.5/lib/python3.3/site-packages/sympy-1.0.1.dev0-py3.3.egg/sympy/core/assumptions.py", line 290 in _ask
  File "/home/travis/virtualenv/python3.3.5/lib/python3.3/site-packages/sympy-1.0.1.dev0-py3.3.egg/sympy/core/assumptions.py", line 302 in _ask
  File "/home/travis/virtualenv/python3.3.5/lib/python3.3/site-packages/sympy-1.0.1.dev0-py3.3.egg/sympy/core/assumptions.py", line 247 in getit
  File "/home/travis/virtualenv/python3.3.5/lib/python3.3/site-packages/sympy-1.0.1.dev0-py3.3.egg/sympy/core/mul.py", line 1082 in _eval_real_imag
  File "/home/travis/virtualenv/python3.3.5/lib/python3.3/site-packages/sympy-1.0.1.dev0-py3.3.egg/sympy/core/mul.py", line 1072 in _eval_is_real
  File "/home/travis/virtualenv/python3.3.5/lib/python3.3/site-packages/sympy-1.0.1.dev0-py3.3.egg/sympy/core/assumptions.py", line 290 in _ask
  File "/home/travis/virtualenv/python3.3.5/lib/python3.3/site-packages/sympy-1.0.1.dev0-py3.3.egg/sympy/core/assumptions.py", line 247 in getit
  File "/home/travis/virtualenv/python3.3.5/lib/python3.3/site-packages/sympy-1.0.1.dev0-py3.3.egg/sympy/functions/elementary/integers.py", line 25 in eval
  File "/home/travis/virtualenv/python3.3.5/lib/python3.3/site-packages/sympy-1.0.1.dev0-py3.3.egg/sympy/core/function.py", line 225 in __new__
  File "/home/travis/virtualenv/python3.3.5/lib/python3.3/site-packages/sympy-1.0.1.dev0-py3.3.egg/sympy/core/function.py", line 401 in __new__
  File "/home/travis/virtualenv/python3.3.5/lib/python3.3/site-packages/sympy-1.0.1.dev0-py3.3.egg/sympy/core/power.py", line 314 in _eval_power
  File "/home/travis/virtualenv/python3.3.5/lib/python3.3/site-packages/sympy-1.0.1.dev0-py3.3.egg/sympy/core/power.py", line 227 in __new__
  File "/home/travis/virtualenv/python3.3.5/lib/python3.3/site-packages/sympy-1.0.1.dev0-py3.3.egg/sympy/core/mul.py", line 430 in flatten
  File "/home/travis/virtualenv/python3.3.5/lib/python3.3/site-packages/sympy-1.0.1.dev0-py3.3.egg/sympy/core/operations.py", line 41 in __new__
  File "/home/travis/virtualenv/python3.3.5/lib/python3.3/site-packages/sympy-1.0.1.dev0-py3.3.egg/sympy/core/expr.py", line 141 in __mul__
  File "/home/travis/virtualenv/python3.3.5/lib/python3.3/site-packages/sympy-1.0.1.dev0-py3.3.egg/sympy/core/decorators.py", line 118 in binary_op_wrapper
  File "/home/travis/virtualenv/python3.3.5/lib/python3.3/site-packages/sympy-1.0.1.dev0-py3.3.egg/sympy/core/decorators.py", line 77 in __sympifyit_wrapper
  File "/home/travis/virtualenv/python3.3.5/lib/python3.3/site-packages/sympy-1.0.1.dev0-py3.3.egg/sympy/core/power.py", line 818 in _eval_expand_power_base
  File "/home/travis/virtualenv/python3.3.5/lib/python3.3/site-packages/sympy-1.0.1.dev0-py3.3.egg/sympy/core/mul.py", line 632 in _eval_power
  File "/home/travis/virtualenv/python3.3.5/lib/python3.3/site-packages/sympy-1.0.1.dev0-py3.3.egg/sympy/core/power.py", line 227 in __new__
  File "/home/travis/virtualenv/python3.3.5/lib/python3.3/site-packages/sympy-1.0.1.dev0-py3.3.egg/sympy/core/exprtools.py", line 1160 in do
  File "/home/travis/virtualenv/python3.3.5/lib/python3.3/site-packages/sympy-1.0.1.dev0-py3.3.egg/sympy/core/exprtools.py", line 1184 in <listcomp>
  File "/home/travis/virtualenv/python3.3.5/lib/python3.3/site-packages/sympy-1.0.1.dev0-py3.3.egg/sympy/core/exprtools.py", line 1184 in do
  File "/home/travis/virtualenv/python3.3.5/lib/python3.3/site-packages/sympy-1.0.1.dev0-py3.3.egg/sympy/core/exprtools.py", line 1164 in <listcomp>
  File "/home/travis/virtualenv/python3.3.5/lib/python3.3/site-packages/sympy-1.0.1.dev0-py3.3.egg/sympy/core/exprtools.py", line 1164 in do
  File "/home/travis/virtualenv/python3.3.5/lib/python3.3/site-packages/sympy-1.0.1.dev0-py3.3.egg/sympy/core/exprtools.py", line 1188 in factor_terms
  File "/home/travis/virtualenv/python3.3.5/lib/python3.3/site-packages/sympy-1.0.1.dev0-py3.3.egg/sympy/functions/elementary/complexes.py", line 601 in eval
  File "/home/travis/virtualenv/python3.3.5/lib/python3.3/site-packages/sympy-1.0.1.dev0-py3.3.egg/sympy/core/function.py", line 225 in __new__
  File "/home/travis/virtualenv/python3.3.5/lib/python3.3/site-packages/sympy-1.0.1.dev0-py3.3.egg/sympy/core/function.py", line 401 in __new__
  File "/home/travis/virtualenv/python3.3.5/lib/python3.3/site-packages/sympy-1.0.1.dev0-py3.3.egg/sympy/functions/elementary/exponential.py", line 666 in as_real_imag
  File "/home/travis/virtualenv/python3.3.5/lib/python3.3/site-packages/sympy-1.0.1.dev0-py3.3.egg/sympy/functions/elementary/complexes.py", line 78 in eval
  File "/home/travis/virtualenv/python3.3.5/lib/python3.3/site-packages/sympy-1.0.1.dev0-py3.3.egg/sympy/core/function.py", line 225 in __new__
  File "/home/travis/virtualenv/python3.3.5/lib/python3.3/site-packages/sympy-1.0.1.dev0-py3.3.egg/sympy/core/function.py", line 401 in __new__
  File "/home/travis/virtualenv/python3.3.5/lib/python3.3/site-packages/sympy-1.0.1.dev0-py3.3.egg/sympy/core/mul.py", line 753 in as_real_imag
  File "/home/travis/virtualenv/python3.3.5/lib/python3.3/site-packages/sympy-1.0.1.dev0-py3.3.egg/sympy/core/evalf.py", line 1447 in _to_mpmath
  File "/home/travis/virtualenv/python3.3.5/lib/python3.3/site-packages/sympy-1.0.1.dev0-py3.3.egg/sympy/core/function.py", line 494 in <listcomp>
  File "/home/travis/virtualenv/python3.3.5/lib/python3.3/site-packages/sympy-1.0.1.dev0-py3.3.egg/sympy/core/function.py", line 494 in _eval_evalf
  File "/home/travis/virtualenv/python3.3.5/lib/python3.3/site-packages/sympy-1.0.1.dev0-py3.3.egg/sympy/core/evalf.py", line 1415 in _evalf
  File "/home/travis/virtualenv/python3.3.5/lib/python3.3/site-packages/sympy-1.0.1.dev0-py3.3.egg/sympy/core/power.py", line 1022 in _eval_evalf
  File "/home/travis/virtualenv/python3.3.5/lib/python3.3/site-packages/sympy-1.0.1.dev0-py3.3.egg/sympy/core/operations.py", line 342 in _eval_evalf
  File "/home/travis/virtualenv/python3.3.5/lib/python3.3/site-packages/sympy-1.0.1.dev0-py3.3.egg/sympy/core/mul.py", line 651 in _eval_evalf
  File "/home/travis/virtualenv/python3.3.5/lib/python3.3/site-packages/sympy-1.0.1.dev0-py3.3.egg/sympy/core/operations.py", line 342 in _eval_evalf
  File "/home/travis/virtualenv/python3.3.5/lib/python3.3/site-packages/sympy-1.0.1.dev0-py3.3.egg/sympy/core/evalf.py", line 1415 in _evalf
  File "/home/travis/virtualenv/python3.3.5/lib/python3.3/site-packages/sympy-1.0.1.dev0-py3.3.egg/sympy/core/power.py", line 1022 in _eval_evalf
  File "/home/travis/virtualenv/python3.3.5/lib/python3.3/site-packages/sympy-1.0.1.dev0-py3.3.egg/sympy/core/operations.py", line 342 in _eval_evalf
  File "/home/travis/virtualenv/python3.3.5/lib/python3.3/site-packages/sympy-1.0.1.dev0-py3.3.egg/sympy/core/mul.py", line 651 in _eval_evalf
  File "/home/travis/virtualenv/python3.3.5/lib/python3.3/site-packages/sympy-1.0.1.dev0-py3.3.egg/sympy/core/evalf.py", line 1441 in _to_mpmath
  File "/home/travis/virtualenv/python3.3.5/lib/python3.3/site-packages/sympy-1.0.1.dev0-py3.3.egg/sympy/core/function.py", line 494 in <listcomp>
  File "/home/travis/virtualenv/python3.3.5/lib/python3.3/site-packages/sympy-1.0.1.dev0-py3.3.egg/sympy/core/function.py", line 494 in _eval_evalf
  File "/home/travis/virtualenv/python3.3.5/lib/python3.3/site-packages/sympy-1.0.1.dev0-py3.3.egg/sympy/core/expr.py", line 741 in _eval_is_negative
  File "/home/travis/virtualenv/python3.3.5/lib/python3.3/site-packages/sympy-1.0.1.dev0-py3.3.egg/sympy/core/assumptions.py", line 290 in _ask
  File "/home/travis/virtualenv/python3.3.5/lib/python3.3/site-packages/sympy-1.0.1.dev0-py3.3.egg/sympy/core/assumptions.py", line 302 in _ask
  File "/home/travis/virtualenv/python3.3.5/lib/python3.3/site-packages/sympy-1.0.1.dev0-py3.3.egg/sympy/core/assumptions.py", line 302 in _ask
  File "/home/travis/virtualenv/python3.3.5/lib/python3.3/site-packages/sympy-1.0.1.dev0-py3.3.egg/sympy/core/assumptions.py", line 247 in getit
  File "/home/travis/virtualenv/python3.3.5/lib/python3.3/site-packages/sympy-1.0.1.dev0-py3.3.egg/sympy/core/mul.py", line 1080 in _eval_real_imag
  File "/home/travis/virtualenv/python3.3.5/lib/python3.3/site-packages/sympy-1.0.1.dev0-py3.3.egg/sympy/core/mul.py", line 1072 in _eval_is_real
  File "/home/travis/virtualenv/python3.3.5/lib/python3.3/site-packages/sympy-1.0.1.dev0-py3.3.egg/sympy/core/assumptions.py", line 290 in _ask
  File "/home/travis/virtualenv/python3.3.5/lib/python3.3/site-packages/sympy-1.0.1.dev0-py3.3.egg/sympy/core/assumptions.py", line 247 in getit
  File "/home/travis/virtualenv/python3.3.5/lib/python3.3/site-packages/sympy-1.0.1.dev0-py3.3.egg/sympy/core/add.py", line 470 in _eval_is_imaginary
  File "/home/travis/virtualenv/python3.3.5/lib/python3.3/site-packages/sympy-1.0.1.dev0-py3.3.egg/sympy/core/assumptions.py", line 290 in _ask
  File "/home/travis/virtualenv/python3.3.5/lib/python3.3/site-packages/sympy-1.0.1.dev0-py3.3.egg/sympy/core/assumptions.py", line 247 in getit
  File "/home/travis/virtualenv/python3.3.5/lib/python3.3/site-packages/sympy-1.0.1.dev0-py3.3.egg/sympy/functions/elementary/integers.py", line 25 in eval
  File "/home/travis/virtualenv/python3.3.5/lib/python3.3/site-packages/sympy-1.0.1.dev0-py3.3.egg/sympy/core/function.py", line 225 in __new__
  File "/home/travis/virtualenv/python3.3.5/lib/python3.3/site-packages/sympy-1.0.1.dev0-py3.3.egg/sympy/core/function.py", line 401 in __new__
  File "/home/travis/virtualenv/python3.3.5/lib/python3.3/site-packages/sympy-1.0.1.dev0-py3.3.egg/sympy/core/power.py", line 314 in _eval_power
  File "/home/travis/virtualenv/python3.3.5/lib/python3.3/site-packages/sympy-1.0.1.dev0-py3.3.egg/sympy/core/power.py", line 227 in __new__
  File "/home/travis/virtualenv/python3.3.5/lib/python3.3/site-packages/sympy-1.0.1.dev0-py3.3.egg/sympy/core/mul.py", line 430 in flatten
  File "/home/travis/virtualenv/python3.3.5/lib/python3.3/site-packages/sympy-1.0.1.dev0-py3.3.egg/sympy/core/operations.py", line 41 in __new__
  File "/home/travis/virtualenv/python3.3.5/lib/python3.3/site-packages/sympy-1.0.1.dev0-py3.3.egg/sympy/core/expr.py", line 141 in __mul__
  File "/home/travis/virtualenv/python3.3.5/lib/python3.3/site-packages/sympy-1.0.1.dev0-py3.3.egg/sympy/core/decorators.py", line 118 in binary_op_wrapper
  File "/home/travis/virtualenv/python3.3.5/lib/python3.3/site-packages/sympy-1.0.1.dev0-py3.3.egg/sympy/core/decorators.py", line 77 in __sympifyit_wrapper
  File "/home/travis/virtualenv/python3.3.5/lib/python3.3/site-packages/sympy-1.0.1.dev0-py3.3.egg/sympy/core/power.py", line 818 in _eval_expand_power_base
  File "/home/travis/virtualenv/python3.3.5/lib/python3.3/site-packages/sympy-1.0.1.dev0-py3.3.egg/sympy/core/mul.py", line 632 in _eval_power
  File "/home/travis/virtualenv/python3.3.5/lib/python3.3/site-packages/sympy-1.0.1.dev0-py3.3.egg/sympy/core/power.py", line 227 in __new__
  File "/home/travis/virtualenv/python3.3.5/lib/python3.3/site-packages/sympy-1.0.1.dev0-py3.3.egg/sympy/core/exprtools.py", line 1160 in do
  File "/home/travis/virtualenv/python3.3.5/lib/python3.3/site-packages/sympy-1.0.1.dev0-py3.3.egg/sympy/core/exprtools.py", line 1184 in <listcomp>
  File "/home/travis/virtualenv/python3.3.5/lib/python3.3/site-packages/sympy-1.0.1.dev0-py3.3.egg/sympy/core/exprtools.py", line 1184 in do
  File "/home/travis/virtualenv/python3.3.5/lib/python3.3/site-packages/sympy-1.0.1.dev0-py3.3.egg/sympy/core/exprtools.py", line 1164 in <listcomp>
  File "/home/travis/virtualenv/python3.3.5/lib/python3.3/site-packages/sympy-1.0.1.dev0-py3.3.egg/sympy/core/exprtools.py", line 1164 in do
  ...
Traceback (most recent call last):
  File "<stdin>", line 4, in <module>
Exception: Tests failed

For example, at https://travis-ci.org/sympy/sympy/jobs/136763509. I've also seen it in Python 3.5.

@asmeurer asmeurer added this to the 1.1 milestone Jun 22, 2016
@asmeurer
Copy link
Member Author

I haven't been able to reproduce this locally, even with the same PYTHONHASHSEED and so on. It may be Linux only (I only tested on OS X).

@jksuom
Copy link
Member

jksuom commented Jun 22, 2016

Is is possible to find out how much memory is allocated for the virtual machines running the Travis jobs?

@asmeurer
Copy link
Member Author

I don't see any information about that in the logs. If there is a Linux command that shows the total memory, you can create .travis.yml that runs that command and look at the output.

@jksuom
Copy link
Member

jksuom commented Jun 22, 2016

This would probably suffice:

free (1)             - Display amount of free and used memory in the system

@asmeurer
Copy link
Member Author

Would also be useful to run the tests with -v to see exactly what test this is that's crashing Python.

By the way, this error has happened before, which ended up being a bug in Python.

@jksuom
Copy link
Member

jksuom commented Jun 23, 2016

I'm beginning to suspect that this is caused by a bug in SymPy. The failing test is (most probably) test_W26 in wester.py. The integral is handled by meijerint. It wants to evaluate polar_lift(cos(pi*exp_polar(I*pi)/2)), and therefore it needs to compute sqrt(cos(pi*exp_polar(I*pi)/2)**2). Though this appears trivial on the surface, it does easily lead to RuntimeError: maximum recursion depth exceeded when run manually.

@asmeurer
Copy link
Member Author

There is indeed a RecursionError in SymPy, but the issue is that this shouldn't crash Python. It should be caught by the interpreter. Likely the test that is causing this is an XFAIL test.

@asmeurer
Copy link
Member Author

This is the same thing that happened with the aforementioned CPython bug 14537. A recursion error in an XFAIL test triggered a "Python error: Cannot recover from stack overflow."

@jksuom
Copy link
Member

jksuom commented Jun 23, 2016

There is RuntimeError in Python 2.7 and RecursionError in Python 3.5. That might explain why only 3.5 is affected. Could it be a regression in Python?

@asmeurer
Copy link
Member Author

The example above is in 3.3.5. But I also saw it in a 3.5 build (I'm not able to find it, though. People have a tendency to just restart builds when they fail, so intermittent failures like this one go unfixed for a long time.)

@jksuom
Copy link
Member

jksuom commented Jun 24, 2016

I have modified the meijerint lookup table in #11283 so that the polar_lift call would be avoided. This should (hopefully) enable test_W26 to finish with no exception (though not necessarily with the expected result). The bug in sqrt(cos(pi*exp_polar(I*pi)/2)**2) should be fixed independently of this.

@asmeurer
Copy link
Member Author

Haven't seen this in a while. I'm assuming it was fixed.

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

No branches or pull requests

2 participants