[pypy-issue] [issue1583] segfault in pypy_g__base_do_getfield_i__int and others
Laurence Tratt
tracker at bugs.pypy.org
Wed Aug 14 13:12:17 CEST 2013
New submission from Laurence Tratt <laurie at tratt.net>:
If you checkout and build the Converge RPython VM
<https://github.com/ltratt/converge>
and then run the richards benchmark you get a segfault on larger runs:
$ PYPY_SRC=<location of PyPy> ./configure
...
$ make
...
$ cd examples/benchmarks
$ ../../vm/converge richards.cv 10
Richards benchmark (Converge) starting... [entry_point] finished.
Total time for 10 iterations: 1.210496 secs
Average time per iteration: 121.049644 ms
$ ../../vm/converge richards.cv 100
Richards benchmark (Converge) starting... [entry_point]
zsh: segmentation fault (core dumped) converge richards 100
This happens on Linux and OpenBSD. There is something non-deterministic going on
here as
I get different segfaults on different runs. Here's 1 backtrace:
#0 0x00001503e775f727 in pypy_g__base_do_getfield_i__int ()
from /home/ltratt/src/converge/vm/converge
#1 0x00001503e781bff2 in pypy_g_handler_getfield_raw_i_pure_1 ()
from /home/ltratt/src/converge/vm/converge
#2 0x00001503e78258f9 in pypy_g_dispatch_loop ()
from /home/ltratt/src/converge/vm/converge
#3 0x00001503e78298e0 in pypy_g_BlackholeInterpreter_run ()
from /home/ltratt/src/converge/vm/converge
#4 0x00001503e7829c06 in pypy_g_BlackholeInterpreter__resume_mainloop ()
from /home/ltratt/src/converge/vm/converge
#5 0x00001503e782a046 in pypy_g__run_forever ()
from /home/ltratt/src/converge/vm/converge
#6 0x00001503e782a3e0 in pypy_g_resume_in_blackhole ()
from /home/ltratt/src/converge/vm/converge
#7 0x00001503e783aa0f in pypy_g_ResumeGuardDescr_handle_fail ()
from /home/ltratt/src/converge/vm/converge
#8 0x00001503e792c51c in pypy_g_execute_assembler__star_2 ()
from /home/ltratt/src/converge/vm/converge
#9 0x00001503e792d4a8 in pypy_g_maybe_compile_and_run__star_6 ()
from /home/ltratt/src/converge/vm/converge
#10 0x00001503e772e83e in pypy_g_portal ()
from /home/ltratt/src/converge/vm/converge
#11 0x00001503e792abf0 in
pypy_g_ll_portal_runner__Signed_arrayPtr_Core_PCPtr_VM---Type
<return> to continue, or q <return> to quit---
_ () from /home/ltratt/src/converge/vm/converge
#12 0x00001503e7723c75 in pypy_g_VM__instr_apply ()
from /home/ltratt/src/converge/vm/converge
#13 0x00001503e772da37 in pypy_g_portal ()
from /home/ltratt/src/converge/vm/converge
#14 0x00001503e792abf0 in
pypy_g_ll_portal_runner__Signed_arrayPtr_Core_PCPtr_VM_ ()
from /home/ltratt/src/converge/vm/converge
#15 0x00001503e7723c75 in pypy_g_VM__instr_apply ()
from /home/ltratt/src/converge/vm/converge
#16 0x00001503e772da37 in pypy_g_portal ()
from /home/ltratt/src/converge/vm/converge
#17 0x00001503e792abf0 in
pypy_g_ll_portal_runner__Signed_arrayPtr_Core_PCPtr_VM_ ()
from /home/ltratt/src/converge/vm/converge
#18 0x00001503e7723c75 in pypy_g_VM__instr_apply ()
from /home/ltratt/src/converge/vm/converge
#19 0x00001503e772da37 in pypy_g_portal ()
from /home/ltratt/src/converge/vm/converge
#20 0x00001503e792abf0 in
pypy_g_ll_portal_runner__Signed_arrayPtr_Core_PCPtr_VM_ ()
from /home/ltratt/src/converge/vm/converge
#21 0x00001503e76de1cc in pypy_g_VM_apply_closure ()
from /home/ltratt/src/converge/vm/converge
#22 0x00001503e76f231d in pypy_g_entry_point ()
from /home/ltratt/src/converge/vm/converge
---Type <return> to continue, or q <return> to quit---
#23 0x00001503e7982a78 in pypy_main_function ()
from /home/ltratt/src/converge/vm/converge
#24 0x00001503e769eec1 in ___start ()
from /home/ltratt/src/converge/vm/converge
#25 0x0000000000000003 in ?? ()
#26 0x00007f7ffffd8790 in ?? ()
#27 0x00007f7ffffd87b6 in ?? ()
#28 0x00007f7ffffd87c2 in ?? ()
#29 0x0000000000000000 in ?? ()
and another:
#0 0x000003fadf13567a in pypy_g_MiniMarkGC_major_collection ()
from /home/ltratt/src/converge/vm/converge
#1 0x000003fadf136332 in pypy_g_MiniMarkGC_collect_and_reserve ()
from /home/ltratt/src/converge/vm/converge
#2 0x000003fadf13677b in pypy_g_MiniMarkGC_malloc_fixedsize_clear ()
from /home/ltratt/src/converge/vm/converge
#3 0x000003fcee6b4ba6 in ?? ()
#4 0x000003fce7bece30 in ?? ()
#5 0x000003fcee6ebfbe in ?? ()
#6 0x000003fcee6eb710 in ?? ()
#7 0x000003fadf3e24c8 in pypy_g_typeinfo ()
from /home/ltratt/src/converge/vm/converge
#8 0x000003fadf3cf2a0 in pypy_g_rpython_memory_support_FreeList ()
from /home/ltratt/src/converge/vm/converge
#9 0x000003fadf3d5b00 in
pypy_g_rpython_memory_gctransform_shadowstack_ShadowSta ()
from /home/ltratt/src/converge/vm/converge
#10 0x000003fce0dafda0 in ?? ()
#11 0x000003fadf3d5b00 in
pypy_g_rpython_memory_gctransform_shadowstack_ShadowSta ()
from /home/ltratt/src/converge/vm/converge
#12 0x000003fadf3ce6a0 in pypy_g_rpy_string_3299 ()
from /home/ltratt/src/converge/vm/converge
#13 0x000003fce0db13b0 in ?? ()
#14 0x000003fce7c0b790 in ?? ()
---Type <return> to continue, or q <return> to quit---
#15 0x000003fadef61029 in pypy_g_execute_token__star_2 ()
from /home/ltratt/src/converge/vm/converge
#16 0x000003fadf12c3c8 in pypy_g_execute_assembler__star_2 ()
from /home/ltratt/src/converge/vm/converge
#17 0x000003fadf12d4a8 in pypy_g_maybe_compile_and_run__star_6 ()
from /home/ltratt/src/converge/vm/converge
#18 0x000003fadef2e83e in pypy_g_portal ()
from /home/ltratt/src/converge/vm/converge
#19 0x000003fadf12abf0 in
pypy_g_ll_portal_runner__Signed_arrayPtr_Core_PCPtr_VM_ ()
from /home/ltratt/src/converge/vm/converge
#20 0x000003fadef23c75 in pypy_g_VM__instr_apply ()
from /home/ltratt/src/converge/vm/converge
#21 0x000003fadef2da37 in pypy_g_portal ()
from /home/ltratt/src/converge/vm/converge
#22 0x000003fadf12abf0 in
pypy_g_ll_portal_runner__Signed_arrayPtr_Core_PCPtr_VM_ ()
from /home/ltratt/src/converge/vm/converge
#23 0x000003fadef23c75 in pypy_g_VM__instr_apply ()
from /home/ltratt/src/converge/vm/converge
#24 0x000003fadef2da37 in pypy_g_portal ()
from /home/ltratt/src/converge/vm/converge
#25 0x000003fadf12abf0 in
pypy_g_ll_portal_runner__Signed_arrayPtr_Core_PCPtr_VM_ ()
from /home/ltratt/src/converge/vm/converge
#26 0x000003fadef23c75 in pypy_g_VM__instr_apply ()
---Type <return> to continue, or q <return> to quit---
from /home/ltratt/src/converge/vm/converge
#27 0x000003fadef2da37 in pypy_g_portal ()
from /home/ltratt/src/converge/vm/converge
#28 0x000003fadf12abf0 in
pypy_g_ll_portal_runner__Signed_arrayPtr_Core_PCPtr_VM_ ()
from /home/ltratt/src/converge/vm/converge
#29 0x000003fadeede1cc in pypy_g_VM_apply_closure ()
from /home/ltratt/src/converge/vm/converge
#30 0x000003fadeef231d in pypy_g_entry_point ()
from /home/ltratt/src/converge/vm/converge
#31 0x000003fadf182a78 in pypy_main_function ()
from /home/ltratt/src/converge/vm/converge
#32 0x000003fadee9eec1 in ___start ()
from /home/ltratt/src/converge/vm/converge
#33 0x0000000000000003 in ?? ()
#34 0x00007f7ffffe4490 in ?? ()
#35 0x00007f7ffffe44b6 in ?? ()
#36 0x00007f7ffffe44c2 in ?? ()
#37 0x0000000000000000 in ?? ()
This used to work correctly, and I'm a bit mystified as to a) why it crashes now
b) why
it only crashes on certain run lengths. It might be a bug in the Converge VM or
in
RPython.
----------
messages: 6063
nosy: ltratt, pypy-issue
priority: critical
status: unread
title: segfault in pypy_g__base_do_getfield_i__int and others
________________________________________
PyPy bug tracker <tracker at bugs.pypy.org>
<https://bugs.pypy.org/issue1583>
________________________________________
More information about the pypy-issue
mailing list