Skip to content

jl_critical_error deadlocks on malloc/realloc error #28908

Open

Description

While debugging a GC error, Kiran and I encountered the scenario that realloc throws internal error which triggers jl_critical_error, which does another malloc, which then deadlocks internally.

The error we saw from realloc was malloc_consolidate(): invalid chunk size.

Example backtrace:

#0  0x00007f385643d04b in __lll_lock_wait_private () from /usr/lib/libc.so.6
#1  0x00007f38563ba960 in calloc () from /usr/lib/libc.so.6
#2  0x00007f38566a872b in jl_getFunctionInfo (
    frames_out=frames_out@entry=0x55d4d8518be0, 
    pointer=pointer@entry=139879941324158, skipC=skipC@entry=0, 
    noInline=noInline@entry=0)
    at /home/vchuravy/src/julia/src/debuginfo.cpp:1183
#3  0x00007f385660eafc in jl_gdblookup (ip=139879941324158)
    at /home/vchuravy/src/julia/src/stackwalk.c:450
#4  0x00007f38566200a0 in jl_critical_error (bt_size=<optimized out>, 
    bt_data=<optimized out>, context=0x55d4d8518d00, sig=6)
    at /home/vchuravy/src/julia/src/signal-handling.c:236
#5  sigdie_handler (sig=6, info=<optimized out>, context=0x55d4d8518d00)
    at /home/vchuravy/src/julia/src/signals-unix.c:201
#6  <signal handler called>
#7  0x00007f385636bd7f in raise () from /usr/lib/libc.so.6
#8  0x00007f3856356672 in abort () from /usr/lib/libc.so.6
#9  0x00007f38563ae878 in __libc_message () from /usr/lib/libc.so.6
#10 0x00007f38563b518a in malloc_printerr () from /usr/lib/libc.so.6
#11 0x00007f38563b548a in malloc_consolidate () from /usr/lib/libc.so.6
#12 0x00007f38563b7f58 in _int_malloc () from /usr/lib/libc.so.6
#13 0x00007f38563b9135 in _int_realloc () from /usr/lib/libc.so.6
#14 0x00007f38563ba4cb in realloc () from /usr/lib/libc.so.6
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Assignees

No one assigned

    Labels

    won't changeIndicates that work won't continue on an issue or pull request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions