I'm testing our software on PyPy 4.0.0, and things generally work well, but occasionally I encounter the following RPython traceback and subsequent core dump:
File "rpython_jit_metainterp_optimizeopt_unroll.c", line 9591, in UnrollOptimizer_optimize_bridge
File "rpython_jit_metainterp_optimizeopt_unroll.c", line 17372, in UnrollOptimizer_jump_to_existing_trace
File "rpython_jit_metainterp_optimizeopt_unroll.c", line 23101, in UnrollOptimizer_inline_short_preamble
File "rpython_jit_metainterp_optimizeopt_intbounds.c", line 162, in OptIntBounds__optimize_guard_true_false_value
File "rpython_jit_metainterp_optimizeopt_optimizer.c", line 18252, in Optimizer_make_constant
File "rpython_jit_metainterp_optimizeopt_info.c", line 21500, in AbstractStructPtrInfo_copy_fields_to_const
File "rpython_jit_metainterp_optimizeopt_info.c", line 12522, in ConstPtrInfo__get_info
File "rpython_rtyper_lltypesystem_rordereddict_4.c", line 36646, in ll_dict_get__dicttablePtr_GCREFPtr_rpython_jit_m
Fatal RPython error: AssertionError
I don't want to waste anyone's time diagnosing the issue if it's a) known or b) probably not anything the pypy devs care about. However, if it's something that seems worth investigating, I'm happy to provide whatever information is useful or debug as needed. I'm not really familiar with the pypy architecture, but I know my way around debuggers and the various languages in use here.
This is a flask based web application wrapper around sql alchemy access to a mysql database. The operation that triggers this is a retrieval of about 20,000 database rows with a total of maybe 5MB of data - so nothing too huge.
I also have cProfiler active and recording data. At the moment I'm not sure if the problem happens with profiling enabled; I haven't tested.
The same section of python code with the same data set (perhaps with differences of timestamps) runs successfully most of the time. It seems to fail about 1 in 4 passes through this section of code.
This is run on an Ubuntu 14.04 VM with the x64 binaries of pypy 4.0.0 retrieved from the public pypy web site downloads.
Does this seem worth investigating further?