This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug other/50041] New: Unreliable crash_signal leads to deadlock


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50041

             Bug #: 50041
           Summary: Unreliable crash_signal leads to deadlock
    Classification: Unclassified
           Product: gcc
           Version: 4.7.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: other
        AssignedTo: unassigned@gcc.gnu.org
        ReportedBy: hjl.tools@gmail.com


On Linux/x86, when a segfault happens in _int_malloc, crash_signal
leads to deadlock:

(gdb) bt
#0  0x0000003881af935c in __lll_lock_wait_private () from /lib64/libc.so.6
#1  0x0000003881a7ed31 in _L_lock_10347 () from /lib64/libc.so.6
#2  0x0000003881a7caf7 in malloc () from /lib64/libc.so.6
#3  0x0000003881a33568 in _nl_make_l10nflist () from /lib64/libc.so.6
#4  0x0000003881a311e5 in _nl_find_domain () from /lib64/libc.so.6
#5  0x0000003881a30a66 in __dcigettext () from /lib64/libc.so.6
#6  0x000000000089f131 in crash_signal (signo=11)
    at ../../src-trunk/gcc/toplev.c:337
#7  <signal handler called>
#8  0x0000003881a7a6a9 in _int_malloc () from /lib64/libc.so.6
#9  0x0000003881a7de55 in calloc () from /lib64/libc.so.6
#10 0x0000000000dd6459 in xcalloc (nelem=13, elsize=8)
    at ../../src-trunk/libiberty/xmalloc.c:162
#11 0x0000000000dd44d6 in htab_create_typed_alloc (size=13, hash_f=
    0xcdc220 <invariant_group_base_hash(void const*)>, 
    eq_f=0xcdc200 <invariant_group_base_eq(void const*, void const*)>, 
    del_f=0, alloc_tab_f=<optimized out>, alloc_f=0xdd6430 <xcalloc>, 
    free_f=0x4a6500 <free@plt>) at ../../src-trunk/libiberty/hashtab.c:369
#12 0x0000000000dd4570 in htab_create_alloc (size=<optimized out>, 
    hash_f=<optimized out>, eq_f=<optimized out>, del_f=<optimized out>, 
    alloc_f=<optimized out>, free_f=<optimized out>)
    at ../../src-trunk/libiberty/hashtab.c:294
#13 0x0000000000cdf9b7 in dse_step0 () at ../../src-trunk/gcc/dse.c:782
---Type <return> to continue, or q <return> to quit---
#14 rest_of_handle_dse () at ../../src-trunk/gcc/dse.c:3864
#15 0x00000000007ffc98 in execute_one_pass (pass=0x1348320)
    at ../../src-trunk/gcc/passes.c:2063
#16 0x0000000000800005 in execute_pass_list (pass=0x1348320)
    at ../../src-trunk/gcc/passes.c:2118
#17 0x0000000000800017 in execute_pass_list (pass=0x1343680)
    at ../../src-trunk/gcc/passes.c:2119
#18 0x00000000009034ce in tree_rest_of_compilation (fndecl=0x7ffff0ab0100)
    at ../../src-trunk/gcc/tree-optimize.c:420
#19 0x00000000005f3446 in cgraph_expand_function (node=0x7ffff0ac9900)
    at ../../src-trunk/gcc/cgraphunit.c:1803
#20 0x00000000005f51cc in cgraph_expand_all_functions ()
    at ../../src-trunk/gcc/cgraphunit.c:1862
#21 cgraph_optimize () at ../../src-trunk/gcc/cgraphunit.c:2132
#22 0x00000000005f585a in cgraph_finalize_compilation_unit ()
    at ../../src-trunk/gcc/cgraphunit.c:1310
#23 0x00000000004e92c8 in c_write_global_declarations ()
    at ../../src-trunk/gcc/c-decl.c:9852
#24 0x00000000008a11d2 in compile_file () at ../../src-trunk/gcc/toplev.c:564
#25 do_compile () at ../../src-trunk/gcc/toplev.c:1886
#26 toplev_main (argc=43, argv=0x7fffffffdce8)
    at ../../src-trunk/gcc/toplev.c:1962
#27 0x0000003881a2154d in __libc_start_main () from /lib64/libc.so.6
---Type <return> to continue, or q <return> to quit---
#28 0x00000000004ccee9 in _start ()
(gdb)


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]