This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug other/50041] New: Unreliable crash_signal leads to deadlock
- From: "hjl.tools at gmail dot com" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Wed, 10 Aug 2011 20:48:13 +0000
- Subject: [Bug other/50041] New: Unreliable crash_signal leads to deadlock
- Auto-submitted: auto-generated
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)