Subject: Re: bug#76705: 31.0.50; igc: crash

From: Óscar Fuentes <[email-masked]>
Date: Mon, 03 Mar 2025 16:12:07 +0100

Pip Cet <[email-masked]> writes:

> Óscar Fuentes via "Bug reports for GNU Emacs, the Swiss army knife of text editors" <[email-masked]> writes:
>
>> Emacs just crashed on a session started more than a week ago, IIRC.
>>
>> The following backtrace is from the core dump. Sorry for not being more
>> helpful.
>
> Can you try generating a full backtrace ("bt full" should work on the
> core dump, too)?

#0  __pthread_kill_implementation (threadid=<optimized out>, signo=signo@entry=6, no_tid=no_tid@entry=0)
    at ./nptl/pthread_kill.c:44
        tid = <optimized out>
        ret = 0
        pd = <optimized out>
        old_mask = {__val = {0}}
        ret = <optimized out>
#1  0x00007f487751de2f in __pthread_kill_internal (threadid=<optimized out>, signo=6)
    at ./nptl/pthread_kill.c:78
#2  0x00007f48774c9d02 in __GI_raise (sig=sig@entry=6) at ../sysdeps/posix/raise.c:26
        ret = <optimized out>
#3  0x0000556e0ead9d68 in terminate_due_to_signal
    (sig=sig@entry=6, backtrace_limit=backtrace_limit@entry=2147483647) at ../../emacs/src/emacs.c:463
#4  0x0000556e0ed16d73 in set_state (state=IGC_STATE_DEAD) at ../../emacs/src/igc.c:1023
        old_state = <optimized out>
        old_state = <optimized out>
#5  set_state (state=IGC_STATE_DEAD) at ../../emacs/src/igc.c:1002
        old_state = <optimized out>
#6  igc_assert_fail (file=<optimized out>, line=<optimized out>, msg=<optimized out>)
    at ../../emacs/src/igc.c:306
#7  0x0000556e0edd0c10 in shieldFlushEntries ()
#8  0x0000556e0edd1b89 in ShieldLeave ()
#9  0x0000556e0edd1d9e in ArenaLeave ()
#10 0x0000556e0eddbd31 in mps_ap_fill ()
#11 0x0000556e0ed164d6 in alloc_impl
    (size=size@entry=88, type=type@entry=IGC_OBJ_VECTOR, ap=0x7f4868001900) at ../../emacs/src/igc.c:4095
        res = <optimized out>
--Type <RET> for more, q to quit, c to continue without paging--
        p = 0x0
#12 0x0000556e0ed1afa8 in alloc (size=88, type=IGC_OBJ_VECTOR) at ../../emacs/src/igc.c:4008
#13 igc_alloc_pseudovector
    (nwords_mem=nwords_mem@entry=9, nwords_lisp=nwords_lisp@entry=0, nwords_zero=nwords_zero@entry=0, tag=tag@entry=PVEC_HASH_TABLE) at ../../emacs/src/igc.c:4277
        client_size = 88
        v = <optimized out>
#14 0x0000556e0ec65bae in allocate_pseudovector
    (memlen=memlen@entry=9, lisplen=lisplen@entry=0, zerolen=zerolen@entry=0, tag=tag@entry=PVEC_HASH_TABLE) at ../../emacs/src/alloc.c:3687
#15 0x0000556e0ec938d4 in allocate_hash_table () at ../../emacs/src/fns.c:4842
#16 make_hash_table (test=0x556e0ee7bf80 <hashtest_equal>, size=2, weak=<optimized out>)
    at ../../emacs/src/fns.c:4897
        h = <optimized out>
#17 0x0000556e0ed2a96a in json_parse_object (parser=0x7ffd3b15cdd0) at ../../emacs/src/json.c:1608
        value = <optimized out>
        h = <optimized out>
        c = <optimized out>
        first = 4019
        result = 0x0
        c = <optimized out>
        first = <optimized out>
        result = <optimized out>
        cdr = <optimized out>
        key = <optimized out>
        value = <optimized out>
        key = <optimized out>
--Type <RET> for more, q to quit, c to continue without paging--
        value = <optimized out>
        nc = <optimized out>
        key = <optimized out>
        value = <optimized out>
        nc = <optimized out>
        value = <optimized out>
        h = <optimized out>
        i = <optimized out>
        hash = <optimized out>
        key = <optimized out>
        value = <optimized out>
        i = <optimized out>
#18 json_parse_value (parser=0x7ffd3b15cdd0, c=<optimized out>) at ../../emacs/src/json.c:1655
        c2 = <optimized out>
        c3 = <optimized out>
        c4 = <optimized out>
        c5 = <optimized out>
        c6 = <optimized out>
#19 0x0000556e0ed2a61a in json_parse_object_member_value (parser=0x7ffd3b15cdd0)
    at ../../emacs/src/json.c:1522
        c = <optimized out>
        c = <optimized out>
#20 json_parse_object (parser=0x7ffd3b15cdd0) at ../../emacs/src/json.c:1554
        key = 0x7f476c1a7d74
        value = <optimized out>
        cdr = 0x7ffd3b15cab0
        c = 34
--Type <RET> for more, q to quit, c to continue without paging--
        first = 4011
        result = 0x0
        c = <optimized out>
        first = <optimized out>
        result = <optimized out>
        cdr = <optimized out>
        key = <optimized out>
        value = <optimized out>
        key = <optimized out>
        value = <optimized out>
        nc = <optimized out>
        key = <optimized out>
        value = <optimized out>
        nc = <optimized out>
        value = <optimized out>
        h = <optimized out>
        i = <optimized out>
        hash = <optimized out>
        key = <optimized out>
        value = <optimized out>
        i = <optimized out>
#21 json_parse_value (parser=0x7ffd3b15cdd0, c=<optimized out>) at ../../emacs/src/json.c:1655
        c2 = <optimized out>
        c3 = <optimized out>
        c4 = <optimized out>
        c5 = <optimized out>
        c6 = <optimized out>
--Type <RET> for more, q to quit, c to continue without paging--
#22 0x0000556e0ed2a7fa in json_parse_array (parser=0x7ffd3b15cdd0) at ../../emacs/src/json.c:1454
        element = <optimized out>
        cdr = 0x7ffd3b15cb28
        c = <optimized out>
        first = 4010
        result = 0x0
        c = <optimized out>
        first = <optimized out>
        result = <optimized out>
        cdr = <optimized out>
        element = <optimized out>
        nc = <optimized out>
        number_of_elements = <optimized out>
        i = <optimized out>
#23 json_parse_value (parser=0x7ffd3b15cdd0, c=91) at ../../emacs/src/json.c:1657
        c2 = <optimized out>
        c3 = <optimized out>
        c4 = <optimized out>
        c5 = <optimized out>
        c6 = <optimized out>
#24 0x0000556e0ed2a61a in json_parse_object_member_value (parser=0x7ffd3b15cdd0)
    at ../../emacs/src/json.c:1522
        c = <optimized out>
        c = <optimized out>
#25 json_parse_object (parser=0x7ffd3b15cdd0) at ../../emacs/src/json.c:1554
        key = 0x7f476c1a7254
        value = <optimized out>
--Type <RET> for more, q to quit, c to continue without paging--
        cdr = 0x7ffd3b15cb90
        c = 34
        first = 4010
        result = 0x0
        c = <optimized out>
        first = <optimized out>
        result = <optimized out>
        cdr = <optimized out>
        key = <optimized out>
        value = <optimized out>
        key = <optimized out>
        value = <optimized out>
        nc = <optimized out>
        key = <optimized out>
        value = <optimized out>
        nc = <optimized out>
        value = <optimized out>
        h = <optimized out>
        i = <optimized out>
        hash = <optimized out>
        key = <optimized out>
        value = <optimized out>
        i = <optimized out>
#26 json_parse_value (parser=0x7ffd3b15cdd0, c=<optimized out>) at ../../emacs/src/json.c:1655
        c2 = <optimized out>
        c3 = <optimized out>
        c4 = <optimized out>
--Type <RET> for more, q to quit, c to continue without paging--
        c5 = <optimized out>
        c6 = <optimized out>
#27 0x0000556e0ed2a7fa in json_parse_array (parser=0x7ffd3b15cdd0) at ../../emacs/src/json.c:1454
        element = <optimized out>
        cdr = 0x7ffd3b15cc08
        c = <optimized out>
        first = 4009
        result = 0x0
        c = <optimized out>
        first = <optimized out>
        result = <optimized out>
        cdr = <optimized out>
        element = <optimized out>
        nc = <optimized out>
        number_of_elements = <optimized out>
        i = <optimized out>
#28 json_parse_value (parser=0x7ffd3b15cdd0, c=91) at ../../emacs/src/json.c:1657
        c2 = <optimized out>
        c3 = <optimized out>
        c4 = <optimized out>
        c5 = <optimized out>
        c6 = <optimized out>
#29 0x0000556e0ed2a61a in json_parse_object_member_value (parser=0x7ffd3b15cdd0)
    at ../../emacs/src/json.c:1522
        c = <optimized out>
        c = <optimized out>
#30 json_parse_object (parser=0x7ffd3b15cdd0) at ../../emacs/src/json.c:1554
--Type <RET> for more, q to quit, c to continue without paging--
        key = 0x7f476c1a5bcc
        value = <optimized out>
        cdr = 0x7ffd3b15cc70
        c = 34
        first = 4009
        result = 0x0
        c = <optimized out>
        first = <optimized out>
        result = <optimized out>
        cdr = <optimized out>
        key = <optimized out>
        value = <optimized out>
        key = <optimized out>
        value = <optimized out>
        nc = <optimized out>
        key = <optimized out>
        value = <optimized out>
        nc = <optimized out>
        value = <optimized out>
        h = <optimized out>
        i = <optimized out>
        hash = <optimized out>
        key = <optimized out>
        value = <optimized out>
        i = <optimized out>
#31 json_parse_value (parser=0x7ffd3b15cdd0, c=<optimized out>) at ../../emacs/src/json.c:1655
        c2 = <optimized out>
--Type <RET> for more, q to quit, c to continue without paging--
        c3 = <optimized out>
        c4 = <optimized out>
        c5 = <optimized out>
        c6 = <optimized out>
#32 0x0000556e0ed2a7fa in json_parse_array (parser=0x7ffd3b15cdd0) at ../../emacs/src/json.c:1454
        element = <optimized out>
        cdr = 0x7ffd3b15cce8
        c = <optimized out>
        first = 4
        result = 0x0
        c = <optimized out>
        first = <optimized out>
        result = <optimized out>
        cdr = <optimized out>
        element = <optimized out>
        nc = <optimized out>
        number_of_elements = <optimized out>
        i = <optimized out>
#33 json_parse_value (parser=0x7ffd3b15cdd0, c=91) at ../../emacs/src/json.c:1657
        c2 = <optimized out>
        c3 = <optimized out>
        c4 = <optimized out>
        c5 = <optimized out>
        c6 = <optimized out>
#34 0x0000556e0ed2a61a in json_parse_object_member_value (parser=0x7ffd3b15cdd0)
    at ../../emacs/src/json.c:1522
        c = <optimized out>
--Type <RET> for more, q to quit, c to continue without paging--
        c = <optimized out>
#35 json_parse_object (parser=0x7ffd3b15cdd0) at ../../emacs/src/json.c:1554
        key = 0x7f4767c488ec
        value = <optimized out>
        cdr = 0x7ffd3b15cd50
        c = 34
        first = 0
        result = 0x0
        c = <optimized out>
        first = <optimized out>
        result = <optimized out>
        cdr = <optimized out>
        key = <optimized out>
        value = <optimized out>
        key = <optimized out>
        value = <optimized out>
        nc = <optimized out>
        key = <optimized out>
        value = <optimized out>
        nc = <optimized out>
        value = <optimized out>
        h = <optimized out>
        i = <optimized out>
        hash = <optimized out>
        key = <optimized out>
        value = <optimized out>
        i = <optimized out>
--Type <RET> for more, q to quit, c to continue without paging--
#36 json_parse_value (parser=0x7ffd3b15cdd0, c=<optimized out>) at ../../emacs/src/json.c:1655
        c2 = <optimized out>
        c3 = <optimized out>
        c4 = <optimized out>
        c5 = <optimized out>
        c6 = <optimized out>
#37 0x0000556e0ed2aef5 in json_parse (parser=0x7ffd3b15cdd0) at ../../emacs/src/json.c:1705
#38 Fjson_parse_buffer (nargs=<optimized out>, args=<optimized out>) at ../../emacs/src/json.c:1812
        count = {bytes = <optimized out>}
        conf = {object_type = <optimized out>, array_type = <optimized out>, null_object = <optimized out>, false_object = <optimized out>}
        p = {input_current = 0x556e3342596e "}],\"detail\":\"struct\",\"kind\":23,\"name\":\"ra_struct_0xAB71CCE7u<true>\",\"range\":{\"end\":{\"character\":62,\"line\":9091},\"start\":{\"character\":0,\"line\":9091}},\"selectionRange\":{\"end\":{\"character\":10,\"line\":9091"..., input_begin = 0x556e32ee1f60 "{\"id\":17456,\"jsonrpc\":\"2.0\",\"result\":[{\"children\":[{\"detail\":\"lp0::PluginInfoAdder\",\"kind\":13,\"name\":\"ppa8\",\"range\":{\"end\":{\"character\":33,\"line\":7},\"start\":{\"character\":0,\"line\":7}},\"selectionRange\":"..., input_end = 0x556e33733f5e "", secondary_input_begin = 0x0, secondary_input_end = 0x0, current_line = 1, current_column = 5519886, point_of_current_line = 0, available_depth = 9993, conf = {object_type = json_object_hashtable, array_type = json_array_array, null_object = 0x0, false_object = 0x0}, additional_bytes_count = 0, internal_object_workspace = {0x7f4767c48874, 0x110c2, 0x7f4767c4889c, 0x7f4767c488c4, 0x7f4767c4972d, 0x7f4767c4c63d, 0x7f4767c4cd4d, 0x7f4767c4f9c5, 0x7f4767c53005, 0x7f4767c53ef5, 0x7f4767c54df5, 0x7f4767c55ce5, 0x7f4767c58bf5, 0x7f4767c59ae5, 0x7f4767c5c76d, 0x7f4767c5dd9d, 0x7f4767c60c8d, 0x7f4767c61b7d, 0x7f4767c62a6d, 0x7f4767c6395d, 0x7f4767c6689d, 0x7f4767c6778d, 0x7f4767c6868d, 0x7f4767c6957d, 0x7f4767c6c48d, 0x7f4767c6d37d, 0x7f4767c6e26d, 0x7f4767c6f15d, 0x7f4767c7009d, 0x7f4767c70f8d, 0x7f4767c71e7d, 0x7f4767c74d7d, 0x7f4767c75c6d, 0x7f4767c76b7d, 0x7f4767c77a6d, 0x7f4767c7a9ad, 0x7f4767c7b89d, 0x7f4767c7c78d, 0x7f4767c7d67d, 0x7f4767c80575, 0x7f4767c81465, 0x7f4767c8237d, 0x7f4767c8326d, 0x7f4767c8615d, 0x7f4767c8704d, 0x7f4767c87f3d, 0x7f4767c88e5d, 0x7f4767c89d4d, 0x7f4767c8cc8d, 0x7f4767c8cd64, 0x7f4767c8d4dd, 0x7f4767c--Type <RET> for more, q to quit, c to continue without paging--
8d4f4, 0x7f4767c8d51c, 0x7f4767c8d544, 0x56, 0x7f4767c8d56c, 0x7f4767c8d594, 0x7f4767c8d5bc, 0x7f4767c8d805, 0x7f4767c8d8c4, 0x7f4767c8d93d, 0x7f4767c8d9fc, 0x2, 0x21e}, object_workspace = 0x556e374c43e0, object_workspace_size = 4096, object_workspace_current = 4023, internal_byte_workspace = "9091acterRange(lxw_chart_options::x_scale) *, const lxw_chart_options *))*))s *)bj *)mats))ement *)mat *)...).).)\321\025;\375\177\000\000\000\000\000\000\000\000\000\000\020\370\302\016nU\000\000\b\000\000\000\000\000\000\000\020\321\025;\375\177\000\000\t\000\000\000\000\000\000\000\310\321\025;\375\177\000\000\000\000\000\000\000\000\000\000\020\370\302\016nU\000\000\b\000\000\000\000\000\000\000p\321\025;\375\177\000\000"..., byte_workspace = 0x7ffd3b15d050 "9091acterRange(lxw_chart_options::x_scale) *, const lxw_chart_options *))*))s *)bj *)mats))ement *)mat *)...).).)\321\025;\375\177", byte_workspace_end = 0x7ffd3b15d250 "P\320\025;\375\177", byte_workspace_current = 0x7ffd3b15d054 "acterRange(lxw_chart_options::x_scale) *, const lxw_chart_options *))*))s *)bj *)mats))ement *)mat *)...).).)\321\025;\375\177"}
        begin = <optimized out>
        end = <optimized out>
        secondary_begin = <optimized out>
        secondary_end = <optimized out>
        result = <optimized out>
        byte = <optimized out>
        position = <optimized out>
#39 0x0000556e0ecd9cba in exec_byte_code
    (fun=<optimized out>, args_template=<optimized out>, nargs=<optimized out>, args=<optimized out>)
    at ../../emacs/src/lisp.h:2290
        call_nargs = 6
        call_fun = <optimized out>
        count1 = {bytes = <optimized out>}
        val = <optimized out>
        call_args = 0x7f486347f078
        original_fun = 0x29da650d7dc0
--Type <RET> for more, q to quit, c to continue without paging--
        op = 6
        type = <optimized out>
        targets = {0x556e0eadee50 <exec_byte_code[cold]>, 0x556e0ecda0c8 <exec_byte_code+2056>, 0x556e0ecda0c3 <exec_byte_code+2051>, 0x556e0ecda0be <exec_byte_code+2046>, 0x556e0ecd9aa3 <exec_byte_code+483>, 0x556e0ecd9aa3 <exec_byte_code+483>, 0x556e0ecda080 <exec_byte_code+1984>, 0x556e0ecda042 <exec_byte_code+1922>, 0x556e0ecdc03a <exec_byte_code+10106>, 0x556e0ecdc035 <exec_byte_code+10101>, 0x556e0ecdc030 <exec_byte_code+10096>, 0x556e0ecdc02b <exec_byte_code+10091>, 0x556e0ecd9add <exec_byte_code+541>, 0x556e0ecd9ae0 <exec_byte_code+544>, 0x556e0ecdc01e <exec_byte_code+10078>, 0x556e0ecdc03f <exec_byte_code+10111>, 0x556e0ecdbec6 <exec_byte_code+9734>, 0x556e0ecdbec1 <exec_byte_code+9729>, 0x556e0ecdbebc <exec_byte_code+9724>, 0x556e0ecdbeb7 <exec_byte_code+9719>, 0x556e0ecd9a39 <exec_byte_code+377>, 0x556e0ecd9a40 <exec_byte_code+384>, 0x556e0ecdbe9d <exec_byte_code+9693>, 0x556e0ecdbeaa <exec_byte_code+9706>, 0x556e0ecdbe4b <exec_byte_code+9611>, 0x556e0ecdbe46 <exec_byte_code+9606>, 0x556e0ecdbe41 <exec_byte_code+9601>, 0x556e0ecdbe3c <exec_byte_code+9596>, 0x556e0ecd9d98 <exec_byte_code+1240>, 0x556e0ecd9da0 <exec_byte_code+1248>, 0x556e0ecdbe5d <exec_byte_code+9629>, 0x556e0ecdbe50 <exec_byte_code+9616>, 0x556e0ecdbe1d <exec_byte_code+9565>, 0x556e0ecdbe18 <exec_byte_code+9560>, 0x556e0ecdbe13 <exec_byte_code+9555>, 0x556e0ecdbe0e <exec_byte_code+9550>, 0x556e0ecd9b3d <exec_byte_code+637>, 0x556e0ecd9b40 <exec_byte_code+640>, 0x556e0ecdbe2f <exec_byte_code+9583>, 0x556e0ecdbe22 <exec_byte_code+9570>, 0x556e0ecdbdef <exec_byte_code+9519>, 0x556e0ecdbdea <exec_byte_code+9514>, 0x556e0ecdbde5 <exec_byte_code+9509>, 0x556e0ecdbde0 <exec_byte_code+9504>, 0x556e0ecd9d4b <exec_byte_code+1163>, 0x556e0ecd9d50 <exec_byte_code+1168>, 0x556e0ecdbe01 <exec_byte_code+9537>, 0x556e0ecdbdf4 <exec_byte_code+9524>, 0x556e0ecdb9fa <exec_byte_code+8506>, 0x556e0ecdba2e <exec_byte_code+8558>, 0x556e0ecdbab0 <exec_byte_code+8688>, 0x556e0eadee50 <exec_byte_code[cold]>, 0x556e0eadee50 <exec_byte_code[cold]>, 0x556e0eadee50 <exec_byte_code[cold]>, 0x556e0eadee50 <exec_byte_code[cold]>, 0x556e0eadee50 <exec_byte_code[cold]>, 0x556e0ecdb84e <exec_byte_code+8078>, 0x556e0ecdb7db <exec_byte_code+7963>, 0x556e0ecdb794 <exec_byte_code+7892>, 0x556e0ecdb74d <exec_byte_code+7821>, 0x556e0ecdb708 <exec_byte_code+7752>, 0x556e0ecdbf47 <exec_byte_code+9863>, 0x556e0ecdbf07 <exec_byte_code+9799>, 0x556e0ecdb6d6 <exec_byte_code+7702>, 0x556e0ecdbfa3 <exec_byte_code+9955>, 0x556e0ecdbecb <exec_byte_code+9739>, 0x556e0ecdb696 <exec_byte_code+7638>, 0x556e0ecdb666 <exec_byte_code+7590>, 0x556e0ecdb626 <exec_byte_code+7526>, 0x556e0ecdb5e9 <exec_byte_code+7465>, 0x556e0ecdb5a8 <e--Type <RET> for more, q to quit, c to continue without paging--
xec_byte_code+7400>, 0x556e0ecdb532 <exec_byte_code+7282>, 0x556e0ecdb4a7 <exec_byte_code+7143>, 0x556e0ecdb412 <exec_byte_code+6994>, 0x556e0ecdb3e2 <exec_byte_code+6946>, 0x556e0ecdb3b2 <exec_byte_code+6898>, 0x556e0ecdb372 <exec_byte_code+6834>, 0x556e0ecdb332 <exec_byte_code+6770>, 0x556e0ecdb2f2 <exec_byte_code+6706>, 0x556e0ecdb2ae <exec_byte_code+6638>, 0x556e0ecdb274 <exec_byte_code+6580>, 0x556e0ecdb23a <exec_byte_code+6522>, 0x556e0ecdb200 <exec_byte_code+6464>, 0x556e0ecdb15e <exec_byte_code+6302>, 0x556e0ecdb102 <exec_byte_code+6210>, 0x556e0ecdb0a8 <exec_byte_code+6120>, 0x556e0ecdb04e <exec_byte_code+6030>, 0x556e0ecdaff4 <exec_byte_code+5940>, 0x556e0ecdaf9a <exec_byte_code+5850>, 0x556e0ecdaf40 <exec_byte_code+5760>, 0x556e0ecdaee8 <exec_byte_code+5672>, 0x556e0ecdae8b <exec_byte_code+5579>, 0x556e0ecdae33 <exec_byte_code+5491>, 0x556e0ecdaddb <exec_byte_code+5403>, 0x556e0ecdad83 <exec_byte_code+5315>, 0x556e0ecdad2a <exec_byte_code+5226>, 0x556e0ecdac39 <exec_byte_code+4985>, 0x556e0ecd9de9 <exec_byte_code+1321>, 0x556e0ecdac09 <exec_byte_code+4937>, 0x556e0ecdabd4 <exec_byte_code+4884>, 0x556e0ecdab44 <exec_byte_code+4740>, 0x556e0ecdaafa <exec_byte_code+4666>, 0x556e0ecdaaca <exec_byte_code+4618>, 0x556e0ecdaa98 <exec_byte_code+4568>, 0x556e0ecdaa66 <exec_byte_code+4518>, 0x556e0ecdaa2c <exec_byte_code+4460>, 0x556e0ecda9fa <exec_byte_code+4410>, 0x556e0eadee50 <exec_byte_code[cold]>, 0x556e0ecda9c8 <exec_byte_code+4360>, 0x556e0ecda996 <exec_byte_code+4310>, 0x556e0ecda964 <exec_byte_code+4260>, 0x556e0ecda932 <exec_byte_code+4210>, 0x556e0ecda900 <exec_byte_code+4160>, 0x556e0ecda8d0 <exec_byte_code+4112>, 0x556e0ecd9de9 <exec_byte_code+1321>, 0x556e0eadee50 <exec_byte_code[cold]>, 0x556e0ecda88d <exec_byte_code+4045>, 0x556e0ecda85d <exec_byte_code+3997>, 0x556e0ecda82c <exec_byte_code+3948>, 0x556e0ecda7eb <exec_byte_code+3883>, 0x556e0ecda7aa <exec_byte_code+3818>, 0x556e0ecda779 <exec_byte_code+3769>, 0x556e0ecda748 <exec_byte_code+3720>, 0x556e0ecda707 <exec_byte_code+3655>, 0x556e0ecda6c6 <exec_byte_code+3590>, 0x556e0ecda685 <exec_byte_code+3525>, 0x556e0ecda652 <exec_byte_code+3474>, 0x556e0ecda621 <exec_byte_code+3425>, 0x556e0eadee50 <exec_byte_code[cold]>, 0x556e0ecdbbbf <exec_byte_code+8959>, 0x556e0ecdbd6e <exec_byte_code+9390>, 0x556e0ecdbfdf <exec_byte_code+10015>, 0x556e0ecdbd2f <exec_byte_code+9327>, 0x556e0ecdbcf3 <exec_byte_code+9267>, 0x556e0ecdbcb7 <exec_byte_code+9207>, 0x556e0ecdbc1d <exec_byte_code+9053>, 0x556e0ecdbbf8 <exec_byte_code+9016>, 0x556e0ecdbe6a <exec_byte_code+9642>, 0x556e0ecdbb9a <exec_byte_code+8922>, 0x556e0ecdbb37 <exec_byte_code+8823>, 0x556e0ecdbb02 <exec_byte_code+8770>, 0x556e0ecdbabb <exec_byte_code+8699>, 0x556e0ecdb9a5 <exec_byte_code+8421>, 0x556e0ecdb961 <exec_byte_code+8353>, 0x556e0ecdb917 <exec_byte_code+8279>, 0x556e0ecdb8ac <exec_byte_code+8172>, 0x556e0eadee50 <exec_byte_code[cold]>, 0x--Type <RET> for more, q to quit, c to continue without paging--
556e0ecda5dc <exec_byte_code+3356>, 0x556e0ecda5ab <exec_byte_code+3307>, 0x556e0ecda57a <exec_byte_code+3258>, 0x556e0ecda549 <exec_byte_code+3209>, 0x556e0ecda518 <exec_byte_code+3160>, 0x556e0ecda4d7 <exec_byte_code+3095>, 0x556e0ecda496 <exec_byte_code+3030>, 0x556e0ecda455 <exec_byte_code+2965>, 0x556e0ecda414 <exec_byte_code+2900>, 0x556e0ecda3ad <exec_byte_code+2797>, 0x556e0ecda36c <exec_byte_code+2732>, 0x556e0ecda32b <exec_byte_code+2667>, 0x556e0ecda2fa <exec_byte_code+2618>, 0x556e0ecda2ae <exec_byte_code+2542>, 0x556e0ecda262 <exec_byte_code+2466>, 0x556e0ecda224 <exec_byte_code+2404>, 0x556e0ecda1e6 <exec_byte_code+2342>, 0x556e0ecda1ab <exec_byte_code+2283>, 0x556e0ecdacd2 <exec_byte_code+5138>, 0x556e0ecdac83 <exec_byte_code+5059>, 0x556e0ecda13b <exec_byte_code+2171>, 0x556e0ecda0cd <exec_byte_code+2061>, 0x556e0eadee50 <exec_byte_code[cold]>, 0x556e0eadee50 <exec_byte_code[cold]>, 0x556e0eadee50 <exec_byte_code[cold]>, 0x556e0eadee50 <exec_byte_code[cold]>, 0x556e0eadee50 <exec_byte_code[cold]>, 0x556e0eadee50 <exec_byte_code[cold]>, 0x556e0ecdb562 <exec_byte_code+7330>, 0x556e0ecdb1ba <exec_byte_code+6394>, 0x556e0ecdab8e <exec_byte_code+4814>, 0x556e0ecd9ffc <exec_byte_code+1852>, 0x556e0ecd9fb6 <exec_byte_code+1782>, 0x556e0eadee50 <exec_byte_code[cold]>, 0x556e0eadee50 <exec_byte_code[cold]>, 0x556e0ecd9f7d <exec_byte_code+1725>, 0x556e0ecd9f19 <exec_byte_code+1625>, 0x556e0eadee50 <exec_byte_code[cold]>, 0x556e0eadee50 <exec_byte_code[cold]>, 0x556e0eadee50 <exec_byte_code[cold]>, 0x556e0eadee50 <exec_byte_code[cold]>, 0x556e0eadee50 <exec_byte_code[cold]>, 0x556e0eadee50 <exec_byte_code[cold]>, 0x556e0eadee50 <exec_byte_code[cold]>, 0x556e0eadee50 <exec_byte_code[cold]>, 0x556e0ecd9edf <exec_byte_code+1567> <repeats 64 times>}
        quitcounter = <optimized out>
        bc = 0x556e0ee8a8f8 <main_thread+504>
        top = 0x7f486347f070
        pc = <optimized out>
        bytestr = <optimized out>
        vector = <optimized out>
        maxdepth = <optimized out>
        const_length = <optimized out>
        bytestr_length = <optimized out>
        vectorp = 0x7f4761f7f9a8
--Type <RET> for more, q to quit, c to continue without paging--
        max_stack = <optimized out>
        frame_base = <optimized out>
        fp = <optimized out>
        bytestr_data = <optimized out>
        rest = <optimized out>
        mandatory = <optimized out>
        nonrest = <optimized out>
        pushedargs = <optimized out>
        saved_quitcounter = 1 '\001'
        saved_vectorp = 0x7f4761f7f9a8
        saved_bytestr_data = 0x7f4782ba94e8 "\300\306â!\203\020"
        result = <optimized out>
#40 0x0000556e0ec8d858 in Ffuncall (nargs=nargs@entry=3, args=0x7ffd3b15d3d0)
    at ../../emacs/src/eval.c:3115
        count = {bytes = <optimized out>}
        val = <optimized out>
#41 0x0000556e0ec8dbe4 in Fapply (nargs=nargs@entry=2, args=args@entry=0x7ffd3b15d460)
    at ../../emacs/src/eval.c:2787
        i = <optimized out>
        funcall_nargs = 3
        funcall_args = <optimized out>
        spread_arg = <optimized out>
        fun = <optimized out>
        sa_avail = <optimized out>
        sa_count = {bytes = 352}
        numargs = <optimized out>
        retval = <optimized out>
--Type <RET> for more, q to quit, c to continue without paging--
#42 0x0000556e0ec8df63 in apply1 (fn=<optimized out>, arg=<optimized out>) at ../../emacs/src/eval.c:3003
#43 0x0000556e0ec88fa2 in internal_condition_case_1
    (bfun=bfun@entry=0x556e0ece67b0 <read_process_output_call>, arg=0x7f4767c4805b, handlers=handlers@entry=0xa8, hfun=hfun@entry=0x556e0ece66f0 <read_process_output_error_handler>) at ../../emacs/src/eval.c:1650
        val = <optimized out>
        c = 0x7f4873e850a0
#44 0x0000556e0ece93a6 in read_and_dispose_of_process_output
    (p=<optimized out>, chars=0x556e40d23290 ",{\"detail\":\"void (lxw_workbook *, decltype(lxw_workbook::options))\",\"kind\":6,\"name\":\"w\",\"range\":{\"end\":{\"character\":57,\"line\":12784},\"start\":{\"character\":0,\"line\":12784}},\"selectionRange\":{\"end\":{\"cha"..., nbytes=335897, coding=0x556e2eba74b0)
    at ../../emacs/src/process.c:6523
        outstream = 0x7f4761f7f1ed
        text = 0x7f4767c48004
        outer_running_asynch_code = true
        waiting = -1
        outstream = <optimized out>
        text = <optimized out>
        outer_running_asynch_code = <optimized out>
        waiting = <optimized out>
        tem = <optimized out>
#45 read_process_output (proc=proc@entry=0x7f4761f7966d, channel=channel@entry=25)
    at ../../emacs/src/process.c:6291
        nbytes = 335897
        p = 0x7f4761f79668
        coding = <optimized out>
        carryover = <optimized out>
        readmax = <optimized out>
--Type <RET> for more, q to quit, c to continue without paging--
        count = {bytes = <optimized out>}
        odeactivate = 0x0
        chars = <optimized out>
        sa_avail = <optimized out>
        sa_count = {bytes = <optimized out>}
#46 0x0000556e0ecf0c8b in wait_reading_process_output
    (time_limit=time_limit@entry=0, nsecs=nsecs@entry=0, read_kbd=read_kbd@entry=-1, do_display=true, wait_for_cell=wait_for_cell@entry=0x0, wait_proc=wait_proc@entry=0x0, just_wait_proc=0)
    at ../../emacs/src/process.c:5972
        nread = <optimized out>
        process_skipped = <optimized out>
        wrapped = <optimized out>
        channel_start = 26
        child_fd = <optimized out>
        last_read_channel = 25
        channel = <optimized out>
        nfds = <optimized out>
        Available = {fds_bits = {33554432, 0 <repeats 15 times>}}
        Writeok = {fds_bits = {0 <repeats 16 times>}}
        check_write = <optimized out>
        check_delay = <optimized out>
        no_avail = <optimized out>
        xerrno = 11
        proc = 0x7f4761f7966d
        timeout = {tv_sec = 0, tv_nsec = 10000000}
        end_time = {tv_sec = 0, tv_nsec = 139949216517785}
        timer_delay = {tv_sec = <optimized out>, tv_nsec = <optimized out>}
--Type <RET> for more, q to quit, c to continue without paging--
        got_output_end_time = {tv_sec = 0, tv_nsec = -1}
        wait = <optimized out>
        got_some_output = <optimized out>
        prev_wait_proc_nbytes_read = 0
        retry_for_async = <optimized out>
        count = {bytes = <optimized out>}
        now = {tv_sec = <optimized out>, tv_nsec = <optimized out>}
#47 0x0000556e0ec06a2f in kbd_buffer_get_event
    (kbp=<synthetic pointer>, used_mouse_menu=<optimized out>, end_time=<optimized out>)
    at ../../emacs/src/keyboard.c:4115
        do_display = <optimized out>
        obj = <optimized out>
        str = <optimized out>
        had_pending_selection_requests = false
        had_pending_conversion_events = false
        obj = <optimized out>
        str = <optimized out>
        had_pending_selection_requests = <optimized out>
        had_pending_conversion_events = <optimized out>
        now = {tv_sec = <optimized out>, tv_nsec = <optimized out>}
        duration = {tv_sec = <optimized out>, tv_nsec = <optimized out>}
        do_display = <optimized out>
        tty = <optimized out>
        first = <optimized out>
        event = <optimized out>
        copy = {kind = <optimized out>, dpyinfo = <optimized out>, requestor = <optimized out>, selection = <optimized out>, target = <optimized out>, property = <optimized out>, time = <optimized out>}
--Type <RET> for more, q to quit, c to continue without paging--
        f = <optimized out>
        frame = <optimized out>
        focus = <optimized out>
        pinch_dx = <optimized out>
        pinch_dy = <optimized out>
        pinch_angle = <optimized out>
        maybe_event = <optimized out>
        f = <optimized out>
        movement_frame = <optimized out>
        bar_window = <optimized out>
        part = <optimized out>
        x = <optimized out>
        y = <optimized out>
        t = <optimized out>
        frame = <optimized out>
#48 read_event_from_main_queue
    (end_time=end_time@entry=0x0, local_getcjmp=local_getcjmp@entry=0x7ffd3b15dd20, used_mouse_menu=used_mouse_menu@entry=0x7ffd3b15e00b) at ../../emacs/src/keyboard.c:2336
        c = 0x0
        save_jump = {{__jmpbuf = {0, 0, 0, 0, 0, 0, 0, 0}, __mask_was_saved = 0, __saved_mask = {__val = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 93931182793087, 0, 0, 3, 93931182213056, 140725594737840}}}}
        kb = 0x556e2eb38850
        count = {bytes = <optimized out>}
#49 0x0000556e0ec0c5b6 in read_decoded_event_from_main_queue
    (end_time=<optimized out>, local_getcjmp=<optimized out>, prev_event=<optimized out>, used_mouse_menu=<optimized out>) at ../../emacs/src/keyboard.c:2399
        nextevt = <optimized out>
--Type <RET> for more, q to quit, c to continue without paging--
        frame = <optimized out>
        terminal = <optimized out>
        events = {0xd5b8, 0x0, 0x7f476553cee3, 0x1, 0x7ffd3b15dd00, 0x556e0ed04dbf <lookup_char_property+495>, 0x0, 0xd5b8, 0xecd6, 0x3b35, 0x7f478e045568, 0x7f478e04556d, 0x7ffd3b15de00, 0x556e0ec7a70c <Fget_pos_property+812>, 0xecd6, 0x7f478e045568}
        n = 0
        events = {<optimized out> <repeats 16 times>}
        n = <optimized out>
        nextevt = <optimized out>
        frame = <optimized out>
        terminal = <optimized out>
        meta_key = <optimized out>
        coding = <optimized out>
        i = <optimized out>
        c = <optimized out>
        modifier = <optimized out>
        src = {<optimized out> <repeats 16 times>}
        dest = {<optimized out> <repeats 80 times>}
        i = <optimized out>
        p = <optimized out>
        c = <optimized out>
        modifier = <optimized out>
#50 read_char
    (commandflag=1, map=map@entry=0x7f4766b23feb, prev_event=0x0, used_mouse_menu=used_mouse_menu@entry=0x7ffd3b15e00b, end_time=end_time@entry=0x0) at ../../emacs/src/keyboard.c:3031
        c = 0x0
        local_getcjmp = {{__jmpbuf = {139948951031040, -1218948282702943986, 93931718281296, 0, 15403, 0, -1--Type <RET> for more, q to quit, c to continue without paging--
218948282577114866, -5029668301387126514}, __mask_was_saved = 0, __saved_mask = {__val = {128, 0, 0, 50456, 93931184418448, 140725594742272, 93931182793475, 139948330862256, 15, 140725594742224, 93931182711373, 0, 46017145348552, 140725594742384, 93931182330548, 54712}}}}
        save_jump = {{__jmpbuf = {0, 0, 0, 0, 0, 0, 0, 0}, __mask_was_saved = 0, __saved_mask = {__val = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 93931182793087, 0, 0, 3, 93931182213056, 140725594737840}}}}
        tem = <optimized out>
        save = <optimized out>
        previous_echo_area_message = 0x0
        also_record = 0x0
        reread = false
        recorded = false
        polling_stopped_here = true
        orig_kboard = 0x556e2eb38850
        retry = <optimized out>
        jmpcount = {bytes = <optimized out>}
        c_volatile = 0x0
#51 0x0000556e0ec0f651 in read_key_sequence
    (keybuf=keybuf@entry=0x7ffd3b15e140, prompt=prompt@entry=0x0, dont_downcase_last=dont_downcase_last@entry=false, can_return_switch_frame=can_return_switch_frame@entry=true, fix_current_buffer=fix_current_buffer@entry=true, prevent_redisplay=prevent_redisplay@entry=false, disable_text_conversion_p=false)
    at ../../emacs/src/keyboard.c:10790
        interrupted_kboard = 0x556e2eb38850
        interrupted_frame = <optimized out>
        key = <optimized out>
        used_mouse_menu = false
        echo_local_start = 0
        last_real_key_start = <optimized out>
--Type <RET> for more, q to quit, c to continue without paging--
        keys_local_start = 0
        new_binding = <optimized out>
        count = {bytes = <optimized out>}
        t = <optimized out>
        echo_start = 0
        keys_start = 0
        current_binding = 0x7f4766b23feb
        first_unbound = 31
        mock_input = <optimized out>
        used_mouse_menu_history = {false <repeats 30 times>}
        fkey = {parent = 0x7f4867545ab3, map = <optimized out>, start = 0, end = 0}
        keytran = {parent = 0x7f4873e5c0d3, map = <optimized out>, start = 0, end = 0}
        indec = {parent = 0x7f4867545a9b, map = <optimized out>, start = 0, end = 0}
        shift_translated = <optimized out>
        delayed_switch_frame = <optimized out>
        original_uppercase = <optimized out>
        original_uppercase_position = <optimized out>
        disabled_conversion = <optimized out>
        starting_buffer = <optimized out>
        fake_prefixed_keys = 0x0
        first_event = 0x0
        second_event = <optimized out>
#52 0x0000556e0ec114d8 in command_loop_1 () at ../../emacs/src/keyboard.c:1435
        cmd = <optimized out>
        keybuf = {0xb2, 0x1d6, 0x1de, 0x0, 0x139e8, 0x556e0ee16e90, 0x7ffd3b15e1e0, 0x556e0ec8a303 <unbind_to+563>, 0x7f476b4ebe33, 0x7ffd3b15e200, 0xc, 0x139e8, 0x38, 0x7f47bc51a55d, 0x29da64f38c80, 0x7f476b4ebe33, 0x60, 0x7ffd3b15e200, 0x7ffd3b15e3b8, 0xffffffffffffffff, 0x7ffd3b15e260, 0x556e0ec046bd <cmd_error+349>, 0x--Type <RET> for more, q to quit, c to continue without paging--
0, 0x0, 0xcb00, 0x556e0ee16e90, 0x7ffd3b15e280, 0x556e0ec8a303 <unbind_to+563>, 0x0, 0xcbe0}
        i = <optimized out>
        last_pt = <optimized out>
        prev_modiff = 10245
        prev_buffer = 0x7f478e045568
#53 0x0000556e0ec88f26 in internal_condition_case
    (bfun=bfun@entry=0x556e0ec11320 <command_loop_1>, handlers=handlers@entry=0xa8, hfun=hfun@entry=0x556e0ec04560 <cmd_error>) at ../../emacs/src/eval.c:1626
        val = <optimized out>
        c = 0x7f486598df68
#54 0x0000556e0ebfc43e in command_loop_2 (handlers=handlers@entry=0xa8) at ../../emacs/src/keyboard.c:1174
        val = <optimized out>
#55 0x0000556e0ec88e52 in internal_catch
    (tag=tag@entry=0x14dd0, func=func@entry=0x556e0ebfc410 <command_loop_2>, arg=arg@entry=0xa8)
    at ../../emacs/src/eval.c:1305
        val = <optimized out>
        c = <optimized out>
#56 0x0000556e0ebfc3d3 in command_loop () at ../../emacs/src/keyboard.c:1152
#57 0x0000556e0ec040d6 in recursive_edit_1 () at ../../emacs/src/keyboard.c:760
        count = {bytes = <optimized out>}
        val = <optimized out>
#58 0x0000556e0ec04488 in Frecursive_edit () at ../../emacs/src/keyboard.c:843
        count = {bytes = <optimized out>}
        buffer = <optimized out>
#59 0x0000556e0eae3296 in main (argc=<optimized out>, argv=0x7ffd3b15e5d8) at ../../emacs/src/emacs.c:2580
        stack_bottom_variable = 0x7f4877671ac0 <main_arena>
        old_argc = <optimized out>
--Type <RET> for more, q to quit, c to continue without paging--
        no_loadup = false
        junk = 0x0
        dname_arg = 0x0
        ch_to_dir = 0x0
        original_pwd = <optimized out>
        dump_mode = <optimized out>
        skip_args = 1
        temacs = 0x0
        attempt_load_pdump = <optimized out>
        only_version = false
        rlim = {rlim_cur = 10022912, rlim_max = 18446744073709551615}
        lc_all = <optimized out>
        sockfd = -1
        module_assertions = <optimized out>

>> #7  0x0000556e0edd0c10 in shieldFlushEntries ()
>
> shieldFlushEntries contains several asserts.  Can you disassemble the
> function shieldFlushEntries to see which one we hit?
> (gdb: "disass/s shieldFlushEntries").
>

(gdb) disass/s shieldFlushEntries
Dump of assembler code for function shieldFlushEntries:
   0x0000556e0edd0b80 <+0>:     push   %r15
   0x0000556e0edd0b82 <+2>:     push   %r14
   0x0000556e0edd0b84 <+4>:     push   %r13
   0x0000556e0edd0b86 <+6>:     push   %r12
   0x0000556e0edd0b88 <+8>:     push   %rbp
   0x0000556e0edd0b89 <+9>:     push   %rbx
   0x0000556e0edd0b8a <+10>:    mov    %rdi,%rbx
   0x0000556e0edd0b8d <+13>:    sub    $0x8,%rsp
   0x0000556e0edd0b91 <+17>:    cmpq   $0x0,0x18(%rbx)
   0x0000556e0edd0b96 <+22>:    mov    0x10(%rdi),%rdi
   0x0000556e0edd0b9a <+26>:    jne    0x556e0edd0bb8 <shieldFlushEntries+56>
   0x0000556e0edd0b9c <+28>:    test   %rdi,%rdi
   0x0000556e0edd0b9f <+31>:    jne    0x556e0edd0cd0 <shieldFlushEntries+336>
   0x0000556e0edd0ba5 <+37>:    add    $0x8,%rsp
   0x0000556e0edd0ba9 <+41>:    pop    %rbx
   0x0000556e0edd0baa <+42>:    pop    %rbp
   0x0000556e0edd0bab <+43>:    pop    %r12
   0x0000556e0edd0bad <+45>:    pop    %r13
   0x0000556e0edd0baf <+47>:    pop    %r14
   0x0000556e0edd0bb1 <+49>:    pop    %r15
   0x0000556e0edd0bb3 <+51>:    ret
   0x0000556e0edd0bb4 <+52>:    nopl   0x0(%rax)
   0x0000556e0edd0bb8 <+56>:    mov    0x28(%rbx),%rsi
   0x0000556e0edd0bbc <+60>:    lea    0x48(%rbx),%r8
   0x0000556e0edd0bc0 <+64>:    mov    $0xb60405ed,%ecx
   0x0000556e0edd0bc5 <+69>:    lea    -0x658fc(%rip),%rdx        # 0x556e0ed6b2d0 <shieldQueueEntryCompare>--Type <RET> for more, q to quit, c to continue without paging--

   0x0000556e0edd0bcc <+76>:    call   0x556e0ed74d40 <QuickSort>
   0x0000556e0edd0bd1 <+81>:    cmpq   $0x0,0x28(%rbx)
   0x0000556e0edd0bd6 <+86>:    je     0x556e0edd0cb8 <shieldFlushEntries+312>
   0x0000556e0edd0bdc <+92>:    xor    %ebp,%ebp
   0x0000556e0edd0bde <+94>:    xor    %r12d,%r12d
   0x0000556e0edd0be1 <+97>:    xor    %r14d,%r14d
   0x0000556e0edd0be4 <+100>:   xor    %r13d,%r13d
   0x0000556e0edd0be7 <+103>:   jmp    0x556e0edd0c34 <shieldFlushEntries+180>
   0x0000556e0edd0be9 <+105>:   nopl   0x0(%rax)
   0x0000556e0edd0bf0 <+112>:   test   %r13,%r13
   0x0000556e0edd0bf3 <+115>:   je     0x556e0edd0c91 <shieldFlushEntries+273>
   0x0000556e0edd0bf9 <+121>:   cmp    %r14,%r13
   0x0000556e0edd0bfc <+124>:   jae    0x556e0edd0d00 <shieldFlushEntries+384>
   0x0000556e0edd0c02 <+130>:   mov    %r12d,%edx
   0x0000556e0edd0c05 <+133>:   mov    %r14,%rsi
   0x0000556e0edd0c08 <+136>:   mov    %r13,%rdi
   0x0000556e0edd0c0b <+139>:   call   0x556e0edcf8b0 <ProtSet>
   0x0000556e0edd0c10 <+144>:   movzwl 0x30(%r15),%r12d
   0x0000556e0edd0c15 <+149>:   shr    $0x7,%r12w
   0x0000556e0edd0c1a <+154>:   and    $0x3,%r12d
   0x0000556e0edd0c1e <+158>:   mov    0x10(%r15),%rax
   0x0000556e0edd0c22 <+162>:   mov    0x10(%rax),%r13
   0x0000556e0edd0c26 <+166>:   mov    0x28(%r15),%r14
   0x0000556e0edd0c2a <+170>:   add    $0x1,%rbp
   0x0000556e0edd0c2e <+174>:   cmp    0x28(%rbx),%rbp
   0x0000556e0edd0c32 <+178>:   jae    0x556e0edd0ca0 <shieldFlushEntries+288>
--Type <RET> for more, q to quit, c to continue without paging--
   0x0000556e0edd0c34 <+180>:   mov    %rbp,%rsi
   0x0000556e0edd0c37 <+183>:   mov    %rbx,%rdi
   0x0000556e0edd0c3a <+186>:   call   0x556e0ed806d0 <shieldDequeue>
   0x0000556e0edd0c3f <+191>:   movzwl 0x30(%rax),%edx
   0x0000556e0edd0c43 <+195>:   mov    %rax,%r15
   0x0000556e0edd0c46 <+198>:   movzbl 0x30(%rax),%eax
   0x0000556e0edd0c4a <+202>:   shr    $0x7,%dx
   0x0000556e0edd0c4e <+206>:   shr    $0x5,%al
   0x0000556e0edd0c51 <+209>:   and    $0x3,%edx
   0x0000556e0edd0c54 <+212>:   and    $0x3,%eax
   0x0000556e0edd0c57 <+215>:   cmp    %al,%dl
   0x0000556e0edd0c59 <+217>:   je     0x556e0edd0c2a <shieldFlushEntries+170>
   0x0000556e0edd0c5b <+219>:   movzbl %dl,%edx
   0x0000556e0edd0c5e <+222>:   mov    %r15,%rsi
   0x0000556e0edd0c61 <+225>:   mov    %rbx,%rdi
   0x0000556e0edd0c64 <+228>:   call   0x556e0ed6ed50 <shieldSetPM>
   0x0000556e0edd0c69 <+233>:   movzwl 0x30(%r15),%eax
   0x0000556e0edd0c6e <+238>:   shr    $0x7,%ax
   0x0000556e0edd0c72 <+242>:   and    $0x3,%eax
   0x0000556e0edd0c75 <+245>:   cmp    %r12d,%eax
   0x0000556e0edd0c78 <+248>:   jne    0x556e0edd0bf0 <shieldFlushEntries+112>
   0x0000556e0edd0c7e <+254>:   mov    0x10(%r15),%rdx
   0x0000556e0edd0c82 <+258>:   cmp    0x10(%rdx),%r14
   0x0000556e0edd0c86 <+262>:   je     0x556e0edd0c26 <shieldFlushEntries+166>
   0x0000556e0edd0c88 <+264>:   test   %r13,%r13
   0x0000556e0edd0c8b <+267>:   jne    0x556e0edd0bf9 <shieldFlushEntries+121>
   0x0000556e0edd0c91 <+273>:   mov    %eax,%r12d
--Type <RET> for more, q to quit, c to continue without paging--
   0x0000556e0edd0c94 <+276>:   jmp    0x556e0edd0c1e <shieldFlushEntries+158>
   0x0000556e0edd0c96 <+278>:   cs nopw 0x0(%rax,%rax,1)
   0x0000556e0edd0ca0 <+288>:   test   %r13,%r13
   0x0000556e0edd0ca3 <+291>:   je     0x556e0edd0cb8 <shieldFlushEntries+312>
   0x0000556e0edd0ca5 <+293>:   cmp    %r14,%r13
   0x0000556e0edd0ca8 <+296>:   jae    0x556e0edd0d1e <shieldFlushEntries+414>
   0x0000556e0edd0caa <+298>:   mov    %r12d,%edx
   0x0000556e0edd0cad <+301>:   mov    %r14,%rsi
   0x0000556e0edd0cb0 <+304>:   mov    %r13,%rdi
   0x0000556e0edd0cb3 <+307>:   call   0x556e0edcf8b0 <ProtSet>
   0x0000556e0edd0cb8 <+312>:   add    $0x8,%rsp
   0x0000556e0edd0cbc <+316>:   mov    %rbx,%rdi
   0x0000556e0edd0cbf <+319>:   pop    %rbx
   0x0000556e0edd0cc0 <+320>:   pop    %rbp
   0x0000556e0edd0cc1 <+321>:   pop    %r12
   0x0000556e0edd0cc3 <+323>:   pop    %r13
   0x0000556e0edd0cc5 <+325>:   pop    %r14
   0x0000556e0edd0cc7 <+327>:   pop    %r15
   0x0000556e0edd0cc9 <+329>:   jmp    0x556e0ed6b260 <shieldQueueReset>
   0x0000556e0edd0cce <+334>:   xchg   %ax,%ax
   0x0000556e0edd0cd0 <+336>:   add    $0x8,%rsp
   0x0000556e0edd0cd4 <+340>:   lea    0x3c4e3(%rip),%rdx        # 0x556e0ee0d1be
   0x0000556e0edd0cdb <+347>:   mov    $0x190,%esi
   0x0000556e0edd0ce0 <+352>:   pop    %rbx
   0x0000556e0edd0ce1 <+353>:   lea    0x3a269(%rip),%rdi        # 0x556e0ee0af51
   0x0000556e0edd0ce8 <+360>:   pop    %rbp
   0x0000556e0edd0ce9 <+361>:   pop    %r12
--Type <RET> for more, q to quit, c to continue without paging--
   0x0000556e0edd0ceb <+363>:   pop    %r13
   0x0000556e0edd0ced <+365>:   pop    %r14
   0x0000556e0edd0cef <+367>:   pop    %r15
   0x0000556e0edd0cf1 <+369>:   jmp    *0xbbb79(%rip)        # 0x556e0ee8c870 <mps_lib_assert_handler>
   0x0000556e0edd0cf7 <+375>:   nopw   0x0(%rax,%rax,1)
   0x0000556e0edd0d00 <+384>:   lea    0x3a97c(%rip),%rdx        # 0x556e0ee0b683
   0x0000556e0edd0d07 <+391>:   mov    $0x1a0,%esi
   0x0000556e0edd0d0c <+396>:   lea    0x3a23e(%rip),%rdi        # 0x556e0ee0af51
   0x0000556e0edd0d13 <+403>:   call   *0xbbb57(%rip)        # 0x556e0ee8c870 <mps_lib_assert_handler>
   0x0000556e0edd0d19 <+409>:   jmp    0x556e0edd0c02 <shieldFlushEntries+130>
   0x0000556e0edd0d1e <+414>:   lea    0x3a95e(%rip),%rdx        # 0x556e0ee0b683
   0x0000556e0edd0d25 <+421>:   mov    $0x1aa,%esi
   0x0000556e0edd0d2a <+426>:   lea    0x3a220(%rip),%rdi        # 0x556e0ee0af51
   0x0000556e0edd0d31 <+433>:   call   *0xbbb39(%rip)        # 0x556e0ee8c870 <mps_lib_assert_handler>
   0x0000556e0edd0d37 <+439>:   jmp    0x556e0edd0caa <shieldFlushEntries+298>
End of assembler dump.

>> #44 0x0000556e0ece93a6 in read_and_dispose_of_process_output
>>     (p=<optimized out>, chars=0x556e40d23290 ",{\"detail\":\"void
>> (lxw_workbook *,
>> decltype(lxw_workbook::options))\",\"kind\":6,\"name\":\"w\",\"range\":{\"end\":{\"character\":57,\"line\":12784},\"start\":{\"character\":0,\"line\":12784}},\"selectionRange\":{\"end\":{\"cha"...,
>> nbytes=335897, coding=0x556e2eba74b0)
>
> 335 KB? That's a lot,

That's lsp/libclang for you. I only use it occasionally and that was a
large C++ file. However, I use lsp/dart all the time, with smaller files
but the server is quite verbose, and no crashes so far.

> so it's likely that the problem was caused in the
> json code...  I'll have a look, particularly at xcdr_addr, which is
> rarely used in other code.

>> In GNU Emacs 31.0.50 (build 1, x86_64-pc-linux-gnu, X toolkit, cairo
>>  version 1.18.2) of 2025-02-13 built on zen
>> Repository revision: 4b28c41c4f2b43add865f9a8727879cb53dad107
>
> Hmm.  That's a bit older, but I don't think this looks like any of the
> bugs that have been fixed since.
>
> Thanks for the report, I'll try stress-testing the JSON code next.

Thank you Pip.

_________________________________________________________________
________________________________________________________
Your E-Mail. Your Cloud. Your Office. eclipso Mail Europe. https://www.eclipso.de