New valgrind error in latest LuaJIT v2.1 on i386

  • From: "Yichun Zhang (agentzh)" <agentzh@xxxxxxxxx>
  • To: luajit@xxxxxxxxxxxxx
  • Date: Wed, 5 Mar 2014 15:24:20 -0800

Hello Mike!

My test cluster running on Amazon EC2 caught the following valgrind
error in the latest LuaJIT v2.1 while running my tests on Amazon Linux
i686:

    ==13746== Invalid read of size 1
    ==13746== at 0x40A0707: lj_asm_trace (lj_asm.c:1481)
    ==13746== by 0x40A1EAD: trace_state (lj_trace.c:626)
    ==13746== by 0x4055EF5: lj_vm_cpcall (in
/opt/luajit-sysm/lib/libluajit-5.1.so.2.1.0)
    ==13746== by 0x40A2D5C: lj_trace_ins (lj_trace.c:658)
    ==13746== by 0x4062BC6: lj_dispatch_ins (lj_dispatch.c:424)
    ==13746== by 0x4057562: lj_vm_inshook (in
/opt/luajit-sysm/lib/libluajit-5.1.so.2.1.0)
    ==13746== by 0x406A615: lua_resume (lj_api.c:1123)
    ==13746== by 0x47DD34F: ???
    ==13746== Address 0x47fd78c is 1,292 bytes inside a block of size
2,048 free'd
    ==13746== at 0x4026FD6: realloc (vg_replace_malloc.c:662)
    ==13746== by 0x40B1D36: mem_alloc (lib_aux.c:317)
    ==13746== by 0x4059DC3: lj_mem_realloc (lj_gc.c:808)
    ==13746== by 0x4074755: lj_ir_growtop (lj_ir.c:77)
    ==13746== by 0x40747E3: lj_ir_emit (lj_iropt.h:34)
    ==13746== by 0x40A06E4: lj_asm_trace (lj_asm.c:1478)
    ==13746== by 0x40A1EAD: trace_state (lj_trace.c:626)
    ==13746== by 0x4055EF5: lj_vm_cpcall (in
/opt/luajit-sysm/lib/libluajit-5.1.so.2.1.0)
    ==13746== by 0x40A2D5C: lj_trace_ins (lj_trace.c:658)
    ==13746== by 0x4062BC6: lj_dispatch_ins (lj_dispatch.c:424)
    ==13746== by 0x4057562: lj_vm_inshook (in
/opt/luajit-sysm/lib/libluajit-5.1.so.2.1.0)
    ==13746== by 0x406A615: lua_resume (lj_api.c:1123)
    ==13746== by 0x47DD34F: ???
    ==13746==

It is Amazon Linux i686, gcc 4.7.3. I enabled the system allocator as
well as api checks and assertions in my luajit build for the test.

Sadly I can no longer reproduce it on the same system by hand.

Hopefully this valgrind report is helpful.

Thanks!
-agentzh

Other related posts: