Bug 1574015

Summary: Assertion `SYMBOL_LANGUAGE (sym) == DICT_LANGUAGE (dict)->la_language' failed when debugging any WebKitGTK+ crash
Product: [Fedora] Fedora Reporter: Michael Catanzaro <mcatanzaro+wrong-account-do-not-cc>
Component: gdbAssignee: Sergio Durigan Junior <sergiodj>
Status: CLOSED DUPLICATE QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: medium Docs Contact:
Priority: unspecified    
Version: rawhideCC: jan.kratochvil, keiths, kevinb, pmuldoon, sergiodj
Target Milestone: ---   
Target Release: ---   
Hardware: x86_64   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2018-05-02 17:38:33 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Michael Catanzaro 2018-05-02 17:05:49 UTC
Description of problem: gdb crashes when generating backtrace for WebKitGTK+ applications. The error is:

../../gdb/dictionary.c:690: internal-error: void insert_symbol_hashed(dictionary*, symbol*): Assertion `SYMBOL_LANGUAGE (sym) == DICT_LANGUAGE (dict)->la_language' failed.


Version-Release number of selected component (if applicable): gdb-8.1-11.fc28


How reproducible: Always


Steps to Reproduce:
1. Save this as crash.html:

<script>
win = window.open("blah", "WIN");
</script>

2. Run 'epiphany -p crash.html' and watch epiphany crash
3. Run 'coredumpctl gdb' to get the backtrace
4. Run 'thread apply all bt full' and press enter for a while. gdb will crash before the end.

Actual results:

../../gdb/dictionary.c:690: internal-error: void insert_symbol_hashed(dictionary*, symbol*): Assertion `SYMBOL_LANGUAGE (sym) == DICT_LANGUAGE (dict)->la_language' failed.
A problem internal to GDB has been detected,
further debugging may prove unreliable.
Quit this debugging session? (y or n)

Expected results:

No gdb assertion.

Additional info: Sorry I can't attach any files due to some xdg-desktop-portal bug, so I will paste the backtrace inline in my next comment.

Comment 1 Michael Catanzaro 2018-05-02 17:07:30 UTC
Seems Bugzilla has a comment length limit, so I've pasted the backtrace into Debian pastebin, available for 90 days:

https://paste.debian.net/1022964/

First 10 frames are:

#0  __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:50
        set = {__val = {0, 93926875961688, 1, 93926875957165, 140720996928720, 
            140720996998092, 140720996928768, 4837258912, 1, 93926879724970, 
            1, 93926879729851, 140720996928768, 139735236906758, 
            93927266350496, 16874861467632036608}}
        pid = <optimized out>
        tid = <optimized out>
        ret = <optimized out>
#1  0x00007f16a51a2591 in __GI_abort () at abort.c:79
        save_stage = 1
        act = {__sigaction_handler = {sa_handler = 0x3000000010, 
            sa_sigaction = 0x3000000010}, sa_mask = {__val = {140720996929264, 
              140720996929072, 16874861467632036608, 21474836480, 
              93927113323248, 1, 0, 93926879733592, 0, 93926888842864, 5, 
              93926888842416, 139735236333342, 0, 139735239734912, 
              93926879564544}}, sa_flags = 239937368, 
          sa_restorer = 0x7f16a55372a0 <__GI__IO_file_jumps>}
        sigs = {__val = {32, 0 <repeats 15 times>}}
#2  0x0000556d0e26282c in dump_core () at ../../gdb/utils.c:291
        rlim = {rlim_cur = 18446744073709551615, 
          rlim_max = 18446744073709551615}
#3  0x0000556d0e266f6d in internal_vproblem(internal_problem*, char const*, int, char const*, __va_list_tag*) () at ../../gdb/utils.c:500
        dejavu = 1
        quit_p = 1
        dump_core_p = <optimized out>
        reason = "../../gdb/dictionary.c:690: internal-error: void insert_symbol_hashed(dictionary*, symbol*): Assertion `SYMBOL_LANGUAGE (sym) == DICT_LANGUAGE (dict)->la_language' failed.\nA problem internal to GDB ha"...
        term_state = {{m_dummy = {<No data fields>}, m_item = {
              m_state = target_terminal::terminal_is_inferior}}, 
          m_instantiated = false}
#4  0x0000556d0e2670d1 in internal_verror (file=<optimized out>, 
    line=<optimized out>, fmt=<optimized out>, ap=ap@entry=0x7ffc2908cfd0)
    at ../../gdb/utils.c:525
No locals.
#5  0x0000556d0e0610a5 in internal_error (
    file=file@entry=0x556d0e46ff33 "../../gdb/dictionary.c", 
    line=line@entry=690, fmt=<optimized out>) at ../../gdb/common/errors.c:55
        ap = {{gp_offset = 40, fp_offset = 48, 
            overflow_arg_area = 0x7ffc2908d0b0, 
            reg_save_area = 0x7ffc2908cff0}}
#6  0x0000556d0e0ea4dc in insert_symbol_hashed (dict=<optimized out>, 
    sym=<optimized out>) at ../../gdb/dictionary.c:695
        hash_index = <optimized out>
        hash = <optimized out>
        buckets = <optimized out>
        dict = <optimized out>
        sym = <optimized out>
        hash = <optimized out>
        buckets = <optimized out>
        __PRETTY_FUNCTION__ = "void insert_symbol_hashed(dictionary*, symbol*)"
        hash_index = <optimized out>
        hash_index = 0
        hash = 0
        buckets = 0x556d2322bf90
        __PRETTY_FUNCTION__ = "void insert_symbol_hashed(dictionary*, symbol*)"
#7  0x0000556d0e0ea939 in dict_create_hashed (
    obstack=obstack@entry=0x556d0faf4f40, language=<optimized out>, 
    symbol_list=<optimized out>) at ../../gdb/dictionary.c:382
        retval = 0x556d2322bf60
        nsyms = <optimized out>
        nbuckets = <optimized out>
        i = <optimized out>
        buckets = 0x0
        list_counter = 0x556d11c51d40
#8  0x0000556d0e0bcc8e in finish_block_internal (symbol=symbol@entry=0x0, 
    listhead=0x556d0ea21930 <local_symbols>, old_blocks=0x556d231ca540, 
    static_link=static_link@entry=0x0, start=140228122499063, 
    end=140228122499227, is_global=0, expandable=0) at ../../gdb/buildsym.c:366
        objfile = 0x556d0faf4ee0
        gdbarch = 0x556d0f69d4e0
        next = <optimized out>
        next1 = <optimized out>
        block = 0x556d2322bf30
        pblock = <optimized out>
        opblock = <optimized out>
#9  0x0000556d0e0bdf11 in finish_block (symbol=symbol@entry=0x0, 
    listhead=<optimized out>, old_blocks=<optimized out>, 
    static_link=static_link@entry=0x0, start=<optimized out>, 
    end=<optimized out>) at ../../gdb/buildsym.c:534
No locals.
#10 0x0000556d0e12a1e0 in read_lexical_block_scope (
    die=die@entry=0x556d2755b630, cu=cu@entry=0x556d133c06c0)
    at ../../gdb/dwarf2read.c:13920
        block = 0x0
        objfile = <optimized out>
        gdbarch = 0x556d0f69d4e0
        newobj = 0x556d258b4310
        lowpc = 140228122499063
        highpc = 140228122499227
        child_die = <optimized out>
        baseaddr = 140228112834560

Comment 2 Jan Kratochvil 2018-05-02 17:38:33 UTC

*** This bug has been marked as a duplicate of bug 1560010 ***