[pypy-issue] Issue #2015: Mysterious integer overflow bug when performing lots of float operations (pypy/pypy)

David MacIver issues-reply at bitbucket.org
Wed Apr 1 13:44:07 CEST 2015


New issue 2015: Mysterious integer overflow bug when performing lots of float operations
https://bitbucket.org/pypy/pypy/issue/2015/mysterious-integer-overflow-bug-when

David MacIver:

I unfortunately don't have a reproducible case for this bug. I have seen it precisely once and not been able to get it to happen again, let alone produce a minimal example.

On pypy3-2.4.0 I've seen the following crash:


```
RPython traceback:
File "pypy_module_pypyjit_interp_jit.c", line 105, in jump_absolute__AccessDirect_None
File "rpython_jit_metainterp_warmstate.c", line 6552, in maybe_compile_and_run__star_5_1
File "rpython_jit_metainterp_warmstate.c", line 14027, in execute_assembler__star_2_2
File "rpython_rlib_rbigint.c", line 43665, in fromfloat_1
~~~ Crash in JIT! <OverflowError object at 0x1ce1ae0> 
```

This happened when running the following command:


```
#!bash

PYTHONPATH=src python -m pytest tests/test_example_quality.py --capture=no -klist_of_floats_on

```

against git at github.com:DRMacIver/hypothesis.git checked out to the branch repro_for_pypy_1

This command should result in something that looks like the following:

```
============================================ test session starts =============================================
platform linux2 -- Python 3.2.5[pypy-2.4.0-final] -- py-1.4.26 -- pytest-2.7.0 -- /home/david/.pyenv/versions/pypy3-2.4.0/bin/python
rootdir: /home/david/projects/hypothesis, inifile: pytest.ini
collected 28 items 

tests/test_example_quality.py::test_minimize_list_of_floats_on_large_structure Falsifying example: everything_is_terrible(x=[0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0])
PASSED

```

It is highly likely that this is a case where an OverflowError really should be occuring - there are quite a few of them that will be hit when running this, with the code handling it appropriately.

I've tried a bunch of things I thought might trigger this and nothing seems to have, so it's either quite subtle or I'm missing something. This is why you're getting this slightly useless bug report, sorry.




More information about the pypy-issue mailing list