[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