Bug 2257562 - gdb crashed in block::scope creating traces of plasmashell crashes when Qt debug packages weren't installed
Summary: gdb crashed in block::scope creating traces of plasmashell crashes when Qt de...
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Fedora
Classification: Fedora
Component: gdb
Version: 39
Hardware: Unspecified
OS: Linux
unspecified
medium
Target Milestone: ---
Assignee: Kevin Buettner
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2024-01-10 04:06 UTC by Matt Fagnani
Modified: 2024-02-15 01:42 UTC (History)
8 users (show)

Fixed In Version: gdb-14.1-2.fc39 gdb-14.1-3.fc38
Clone Of:
Environment:
Last Closed: 2024-01-16 01:18:17 UTC
Type: ---
Embargoed:


Attachments (Terms of Use)
Full trace of all threads of the second gdb crash mentioned (50.59 KB, text/plain)
2024-01-10 04:09 UTC, Matt Fagnani
no flags Details


Links
System ID Private Priority Status Summary Last Updated
Sourceware 31226 0 P2 UNCONFIRMED gdb crashed in block::scope creating traces of plasmashell crashes when Qt debug packages weren't installed 2024-01-10 04:07:17 UTC

Description Matt Fagnani 2024-01-10 04:06:51 UTC
I was looking into plasmashell crashes and subsequent drkonqi and gdb crashes when creating traces as described at https://bugzilla.redhat.com/show_bug.cgi?id=2252382 https://sourceware.org/bugzilla/show_bug.cgi?id=31122 I noticed that when qt5, glib2, and glibc debuginfo packages weren't installed, drkonqi and kioslave5 didn't crash when I created a trace in drkonqi, but gdb crashed with a segmentation fault and drkonqi showed that the crash information couldn't be generated. gdb crashed in block::scope in frame 13 of the following trace.

Core was generated by `/usr/bin/gdb -nw -n -batch -x /tmp/drkonqi.MYQAJG -x /tmp/drkonqi.ZWupqQ -p 622'.
Program terminated with signal SIGSEGV, Segmentation fault.
#0  0x00005555689f9ebc in operator() (__closure=<optimized out>, 
    msg=0x55556a704880 "0x5555689fa140 ") at ../../gdb/bt-utils.c:59
59          gdb_stderr->write_async_safe (msg, strlen (msg));
[Current thread is 1 (Thread 0x7f012efae080 (LWP 62400))]

(gdb) bt
#0  0x00005555689f9ebc in operator() (__closure=<optimized out>, 
    msg=0x55556a704880 "0x5555689fa140 ") at ../../gdb/bt-utils.c:59
#1  libbacktrace_print (data=data@entry=0x0, pc=pc@entry=93825315873088, 
    filename=0x7f00f0b0fc90 "../../gdb/bt-utils.c", lineno=122, 
    function=0x7f00ff01d0b9 "gdb_internal_backtrace_1") at ../../gdb/bt-utils.c:94
#2  0x00005555690de7d7 in report_inlined_functions (pc=pc@entry=93825315873088, 
    callback=callback@entry=0x5555689f9e50 <libbacktrace_print(void*, uintptr_t, char const*, int, char const*)>, data=data@entry=0x0, filename=filename@entry=0x55556a704a70, lineno=0x55556a704a30, 
    function=0x7f00f0b05fb8) at ../../libbacktrace/dwarf.c:3612
#3  0x00005555690e1932 in dwarf_lookup_pc (state=<optimized out>, ddata=<optimized out>, 
    pc=<optimized out>, callback=<optimized out>, error_callback=<optimized out>, 
    data=<optimized out>, found=<optimized out>) at ../../libbacktrace/dwarf.c:3879
#4  0x00005555690e3316 in dwarf_fileline (state=0x7f012f0f9000, pc=93825315873088, 
    callback=0x5555689f9e50 <libbacktrace_print(void*, uintptr_t, char const*, int, char const*)>, 
    error_callback=0x5555689f9d30 <libbacktrace_error(void*, char const*, int)>, data=0x0)
    at ../../libbacktrace/dwarf.c:3906
#5  0x00005555690d7ae3 in unwind (context=<optimized out>, vdata=0x55556a704dd0)
    at ../../libbacktrace/backtrace.c:91
#6  0x00007f012eeca88d in _Unwind_Backtrace (trace=trace@entry=0x5555690d7a40 <unwind>, 
    trace_argument=trace_argument@entry=0x55556a704dd0) at ../../../libgcc/unwind.inc:309
#7  0x00005555690d7b6c in backtrace_full (state=0x7f012f0f9000, skip=<optimized out>, 
    callback=<optimized out>, error_callback=<optimized out>, data=<optimized out>)
--Type <RET> for more, q to quit, c to continue without paging--c
    at ../../libbacktrace/backtrace.c:127
#8  0x00005555689fa141 in gdb_internal_backtrace_1 () at ../../gdb/bt-utils.c:122
#9  gdb_internal_backtrace () at ../../gdb/bt-utils.c:168
#10 0x0000555568b37253 in handle_fatal_signal (sig=sig@entry=11) at ../../gdb/event-top.c:895
#11 0x0000555568b3742a in handle_sigsegv (sig=11) at ../../gdb/event-top.c:968
#12 <signal handler called>
#13 block::scope (this=<optimized out>) at ../../gdb/block.c:293
#14 0x0000555568a7e067 in cp_lookup_transparent_type (name=0x55556bc30170 "QApplication")
    at ../../gdb/cp-namespace.c:1029
#15 0x0000555568b7309d in check_typedef (type=<optimized out>, type@entry=0x55556bc3c510)
    at ../../gdb/gdbtypes.c:3052
#16 0x0000555568b55650 in language_defn::read_var_value (this=<optimized out>, var=0x55556d2c7270, 
    var_block=0x0, frame=...) at ../../gdb/findvar.c:518
#17 0x0000555568b54833 in read_var_value (var=var@entry=0x55556d2c7270, 
    var_block=var_block@entry=0x0, frame=...) at ../../gdb/findvar.c:746
#18 0x0000555568cf4879 in sympy_value (self=<optimized out>, args=<optimized out>)
    at ../../gdb/python/py-symbol.c:306
#19 0x00007f012e9fb4d6 in method_vectorcall_VARARGS (
    func=<method_descriptor at remote 0x7f0128a907c0>, args=0x7f012f0fa230, nargsf=<optimized out>, 
    kwnames=0x0) at /usr/src/debug/python3.12-3.12.1-1.fc39.x86_64/Objects/descrobject.c:331
#20 0x00007f012ea0ac7c in _PyObject_VectorcallTstate (kwnames=0x0, nargsf=9223372036854775810, 
    args=0x7f012f0fa230, callable=<method_descriptor at remote 0x7f0128a907c0>, 
    tstate=0x7f012ee4d668 <_PyRuntime+459656>)
    at /usr/src/debug/python3.12-3.12.1-1.fc39.x86_64/Include/internal/pycore_call.h:92
#21 PyObject_Vectorcall (callable=<method_descriptor at remote 0x7f0128a907c0>, args=0x7f012f0fa230, 
    nargsf=9223372036854775810, kwnames=0x0)
    at /usr/src/debug/python3.12-3.12.1-1.fc39.x86_64/Objects/call.c:325
#22 0x00007f012e90f7e1 in _PyEval_EvalFrameDefault (tstate=<optimized out>, frame=0x7f012f0fa180, 
    throwflag=<optimized out>) at Python/bytecodes.c:2706
#23 0x00007f012ea8a996 in PyEval_EvalCode (co=<code at remote 0x7f0110e2fad0>, 
    globals=<optimized out>, 
    locals={'__name__': '__main__', '__doc__': None, '__package__': None, '__loader__': <SourceFileLoader(name='__main__', path='/usr/share/drkonqi/gdb/preamble.py') at remote 0x7f0128a7e000>, '__spec__': None, '__annotations__': {}, '__builtins__': <module at remote 0x7f0128be1940>, 'sys': <module at remote 0x7f0128bdbe70>, 'GdbRemoveReadlineFinder': <type at remote 0x55556a918f70>, 'gdb': <module at remote 0x7f0128a98090>, 'os': <module at remote 0x7f0128c36570>, 'pythondir': 'share/gcc-13/python', 'libdir': 'lib64', 'prefix': '/usr/', 'dotdots': '../', 'objfile': '/lib64/libstdc++.so.6', 'dir_': '/usr/share/glib-2.0/gdb', 'register_libstdcxx_printers': <function at remote 0x7f0128a06e80>, 'register': <function at remote 0x7f011131bc40>, 'Mapping': <_SpecialGenericAlias(_inst=True, _name='Mapping', __origin__=<ABCMeta(__module__='collections.abc', __doc__='A Mapping is a generic container for associating key/value\n    pairs.\n\n    This class provides concrete generic implementations of all\n    methods except for __...(truncated)) at /usr/src/debug/python3.12-3.12.1-1.fc39.x86_64/Python/ceval.c:578
#24 0x00007f012eaadafa in run_eval_code_obj (tstate=tstate@entry=0x7f012ee4d668 <_PyRuntime+459656>, 
    co=co@entry=0x7f0110e2fad0, 
    globals=globals@entry={'__name__': '__main__', '__doc__': None, '__package__': None, '__loader__': <SourceFileLoader(name='__main__', path='/usr/share/drkonqi/gdb/preamble.py') at remote 0x7f0128a7e000>, '__spec__': None, '__annotations__': {}, '__builtins__': <module at remote 0x7f0128be1940>, 'sys': <module at remote 0x7f0128bdbe70>, 'GdbRemoveReadlineFinder': <type at remote 0x55556a918f70>, 'gdb': <module at remote 0x7f0128a98090>, 'os': <module at remote 0x7f0128c36570>, 'pythondir': 'share/gcc-13/python', 'libdir': 'lib64', 'prefix': '/usr/', 'dotdots': '../', 'objfile': '/lib64/libstdc++.so.6', 'dir_': '/usr/share/glib-2.0/gdb', 'register_libstdcxx_printers': <function at remote 0x7f0128a06e80>, 'register': <function at remote 0x7f011131bc40>, 'Mapping': <_SpecialGenericAlias(_inst=True, _name='Mapping', __origin__=<ABCMeta(__module__='collections.abc', __doc__='A Mapping is a generic container for associating key/value\n    pairs.\n\n    This class provides concrete generic implementations of all\n    methods except for __...(truncated), 
    locals=locals@entry={'__name__': '__main__', '__doc__': None, '__package__': None, '__loader__': <SourceFileLoader(name='__main__', path='/usr/share/drkonqi/gdb/preamble.py') at remote 0x7f0128a7e000>, '__spec__': None, '__annotations__': {}, '__builtins__': <module at remote 0x7f0128be1940>, 'sys': <module at remote 0x7f0128bdbe70>, 'GdbRemoveReadlineFinder': <type at remote 0x55556a918f70>, 'gdb': <module at remote 0x7f0128a98090>, 'os': <module at remote 0x7f0128c36570>, 'pythondir': 'share/gcc-13/python', 'libdir': 'lib64', 'prefix': '/usr/', 'dotdots': '../', 'objfile': '/lib64/libstdc++.so.6', 'dir_': '/usr/share/glib-2.0/gdb', 'register_libstdcxx_printers': <function at remote 0x7f0128a06e80>, 'register': <function at remote 0x7f011131bc40>, 'Mapping': <_SpecialGenericAlias(_inst=True, _name='Mapping', __origin__=<ABCMeta(__module__='collections.abc', __doc__='A Mapping is a generic container for associating key/value\n    pairs.\n\n    This class provides concrete generic implementations of all\n    methods except for __...(truncated))
    at /usr/src/debug/python3.12-3.12.1-1.fc39.x86_64/Python/pythonrun.c:1691
#25 0x00007f012eaa8a7e in run_mod (mod=mod@entry=0x5555865efc08, filename=filename@entry='<string>', 
    globals=globals@entry={'__name__': '__main__', '__doc__': None, '__package__': None, '__loader__': <SourceFileLoader(name='__main__', path='/usr/share/drkonqi/gdb/preamble.py') at remote 0x7f0128a7e000>, '__spec__': None, '__annotations__': {}, '__builtins__': <module at remote 0x7f0128be1940>, 'sys': <module at remote 0x7f0128bdbe70>, 'GdbRemoveReadlineFinder': <type at remote 0x55556a918f70>, 'gdb': <module at remote 0x7f0128a98090>, 'os': <module at remote 0x7f0128c36570>, 'pythondir': 'share/gcc-13/python', 'libdir': 'lib64', 'prefix': '/usr/', 'dotdots': '../', 'objfile': '/lib64/libstdc++.so.6', 'dir_': '/usr/share/glib-2.0/gdb', 'register_libstdcxx_printers': <function at remote 0x7f0128a06e80>, 'register': <function at remote 0x7f011131bc40>, 'Mapping': <_SpecialGenericAlias(_inst=True, _name='Mapping', __origin__=<ABCMeta(__module__='collections.abc', __doc__='A Mapping is a generic container for associating key/value\n    pairs.\n\n    This class provides concrete generic implementations of all\n    methods except for __...(truncated), 
    locals=locals@entry={'__name__': '__main__', '__doc__': None, '__package__': None, '__loader__': <SourceFileLoader(name='__main__', path='/usr/share/drkonqi/gdb/preamble.py') at remote 0x7f0128a7e000>, '__spec__': None, '__annotations__': {}, '__builtins__': <module at remote 0x7f0128be1940>, 'sys': <module at remote 0x7f0128bdbe70>, 'GdbRemoveReadlineFinder': <type at remote 0x55556a918f70>, 'gdb': <module at remote 0x7f0128a98090>, 'os': <module at remote 0x7f0128c36570>, 'pythondir': 'share/gcc-13/python', 'libdir': 'lib64', 'prefix': '/usr/', 'dotdots': '../', 'objfile': '/lib64/libstdc++.so.6', 'dir_': '/usr/share/glib-2.0/gdb', 'register_libstdcxx_printers': <function at remote 0x7f0128a06e80>, 'register': <function at remote 0x7f011131bc40>, 'Mapping': <_SpecialGenericAlias(_inst=True, _name='Mapping', __origin__=<ABCMeta(__module__='collections.abc', __doc__='A Mapping is a generic container for associating key/value\n    pairs.\n\n    This class provides concrete generic implementations of all\n    methods except for __...(truncated), flags=flags@entry=0x0, arena=arena@entry=0x7f0128a77cf0)
    at /usr/src/debug/python3.12-3.12.1-1.fc39.x86_64/Python/pythonrun.c:1712
#26 0x00007f012ea9ab16 in PyRun_StringFlags (str=0x555586315493 "print_preamble()", 
    start=<optimized out>, 
    globals={'__name__': '__main__', '__doc__': None, '__package__': None, '__loader__': <SourceFileLoader(name='__main__', path='/usr/share/drkonqi/gdb/preamble.py') at remote 0x7f0128a7e000>, '__spec__': None, '__annotations__': {}, '__builtins__': <module at remote 0x7f0128be1940>, 'sys': <module at remote 0x7f0128bdbe70>, 'GdbRemoveReadlineFinder': <type at remote 0x55556a918f70>, 'gdb': <module at remote 0x7f0128a98090>, 'os': <module at remote 0x7f0128c36570>, 'pythondir': 'share/gcc-13/python', 'libdir': 'lib64', 'prefix': '/usr/', 'dotdots': '../', 'objfile': '/lib64/libstdc++.so.6', 'dir_': '/usr/share/glib-2.0/gdb', 'register_libstdcxx_printers': <function at remote 0x7f0128a06e80>, 'register': <function at remote 0x7f011131bc40>, 'Mapping': <_SpecialGenericAlias(_inst=True, _name='Mapping', __origin__=<ABCMeta(__module__='collections.abc', __doc__='A Mapping is a generic container for associating key/value\n    pairs.\n\n    This class provides concrete generic implementations of all\n    methods except for __...(truncated), 
    locals={'__name__': '__main__', '__doc__': None, '__package__': None, '__loader__': <SourceFileLoader(name='__main__', path='/usr/share/drkonqi/gdb/preamble.py') at remote 0x7f0128a7e000>, '__spec__': None, '__annotations__': {}, '__builtins__': <module at remote 0x7f0128be1940>, 'sys': <module at remote 0x7f0128bdbe70>, 'GdbRemoveReadlineFinder': <type at remote 0x55556a918f70>, 'gdb': <module at remote 0x7f0128a98090>, 'os': <module at remote 0x7f0128c36570>, 'pythondir': 'share/gcc-13/python', 'libdir': 'lib64', 'prefix': '/usr/', 'dotdots': '../', 'objfile': '/lib64/libstdc++.so.6', 'dir_': '/usr/share/glib-2.0/gdb', 'register_libstdcxx_printers': <function at remote 0x7f0128a06e80>, 'register': <function at remote 0x7f011131bc40>, 'Mapping': <_SpecialGenericAlias(_inst=True, _name='Mapping', __origin__=<ABCMeta(__module__='collections.abc', __doc__='A Mapping is a generic container for associating key/value\n    pairs.\n\n    This class provides concrete generic implementations of all\n    methods except for __...(truncated), flags=0x0)
    at /usr/src/debug/python3.12-3.12.1-1.fc39.x86_64/Python/pythonrun.c:1587
#27 0x00007f012ea9aa64 in PyRun_SimpleStringFlags (command=0x555586315493 "print_preamble()", 
    flags=0x0) at /usr/src/debug/python3.12-3.12.1-1.fc39.x86_64/Python/pythonrun.c:480
#28 0x0000555568d092da in python_command (arg=<optimized out>, from_tty=<optimized out>)
    at ../../gdb/python/python.c:453
#29 0x0000555568a36795 in cmd_func (cmd=<optimized out>, args=<optimized out>, 
    from_tty=<optimized out>) at ../../gdb/cli/cli-decode.c:2735
#30 0x0000555568e46b25 in execute_command (p=<optimized out>, 
    p@entry=0x555586315490 "py print_preamble()", from_tty=<optimized out>) at ../../gdb/top.c:575
#31 0x0000555568b37ab2 in command_handler (command=0x555586315490 "py print_preamble()")
    at ../../gdb/event-top.c:555
#32 0x0000555568e47525 in read_command_file (stream=stream@entry=0x5555865eef70)
    at ../../gdb/top.c:342
#33 0x0000555568a440e9 in script_from_file (stream=stream@entry=0x5555865eef70, 
    file=file@entry=0x7ffc2eca6733 "/tmp/drkonqi.MYQAJG") at ../../gdb/cli/cli-script.c:1642
#34 0x0000555568a3445b in source_script_from_stream (
    file_to_open=0x555585fe7190 "/tmp/drkonqi.MYQAJG", file=0x7ffc2eca6733 "/tmp/drkonqi.MYQAJG", 
    stream=0x5555865eef70) at ../../gdb/cli/cli-cmds.c:730
#35 source_script_with_search (file=0x7ffc2eca6733 "/tmp/drkonqi.MYQAJG", 
    file@entry=<error reading variable: value has been optimized out>, 
    from_tty=<error reading variable: value has been optimized out>, 
    search_path=<error reading variable: value has been optimized out>)
    at ../../gdb/cli/cli-cmds.c:775
#36 0x0000555568c2490a in catch_command_errors (command=<optimized out>, arg=<optimized out>, 
    from_tty=<optimized out>, do_bp_actions=do_bp_actions@entry=false) at ../../gdb/main.c:513
#37 0x0000555568c249b8 in execute_cmdargs (cmdarg_vec=cmdarg_vec@entry=0x7ffc2eca45f0, 
    file_type=file_type@entry=CMDARG_FILE, cmd_type=cmd_type@entry=CMDARG_COMMAND, 
    ret=ret@entry=0x7ffc2eca45e4) at ../../gdb/main.c:609
#38 0x0000555568c26e49 in captured_main_1 (context=context@entry=0x7ffc2eca47f0)
    at ../../gdb/main.c:1293
#39 0x0000555568c27870 in captured_main (data=0x7ffc2eca47f0) at ../../gdb/main.c:1314
#40 gdb_main (args=args@entry=0x7ffc2eca4830) at ../../gdb/main.c:1343
#41 0x00005555688f7bb0 in main (argc=11, argv=0x7ffc2eca4988) at ../../gdb/gdb.c:47

(gdb) frame 13
#13 block::scope (this=<optimized out>) at ../../gdb/block.c:293
293           if (block->m_namespace_info != nullptr
(gdb) p this
$1 = <optimized out>
(gdb) p block
$2 = <optimized out>

t was null in frame 14.

(gdb) frame 14
#14 0x0000555568a7e067 in cp_lookup_transparent_type (name=0x55556bc30170 "QApplication")
    at ../../gdb/cp-namespace.c:1029
1029      scope = get_selected_block (0)->scope ();
(gdb) p scope
$3 = <optimized out>
(gdb) p name
$4 = 0x55556bc30170 "QApplication"
(gdb) p t
$5 = (type *) 0x0

In frames 16 and 17, var_block was null.

(gdb) frame 16
#16 0x0000555568b55650 in language_defn::read_var_value (this=<optimized out>, var=0x55556d2c7270, 
    var_block=0x0, frame=...) at ../../gdb/findvar.c:518
518       check_typedef (type);
(gdb) p type
$8 = (type *) 0x55556bc3c510
(gdb) p var_block
$9 = (const block *) 0x0

(gdb) frame 17
#17 0x0000555568b54833 in read_var_value (var=var@entry=0x55556d2c7270, 
    var_block=var_block@entry=0x0, frame=...) at ../../gdb/findvar.c:746
746       return lang->read_var_value (var, var_block, frame);
(gdb) p var
$12 = (symbol *) 0x55556d2c7270
(gdb) p var_block
$13 = (const block *) 0x0
(gdb) p frame
$14 = {<intrusive_list_node<frame_info_ptr>> = {next = 0x7ffc2eca3ae0, prev = 0x7ffc2eca3b80}, 
  static invalid_level = -2, m_ptr = 0x5555884e6b40, m_cached_id = {stack_addr = 140735794617984, 
    code_addr = 94673707714992, special_addr = 0, stack_status = FID_STACK_VALID, code_addr_p = 1, 
    special_addr_p = 0, user_created_p = 0, artificial_depth = 0}, m_cached_level = 10, 
  static frame_list = {m_front = 0x5555695d71c0 <selected_frame>, m_back = 0x7ffc2eca3ae0}}

I reproduced this problem at least three times with Plasma 5.27.9 and gdb 14.1 with the crash in block::scope each time. 

I reproduced the plasmashell crash when using Firefox to watch Instagram videos which was the original problem https://bugzilla.redhat.com/show_bug.cgi?id=2216067 https://bugs.kde.org/show_bug.cgi?id=471248 I set TimeoutSec=1000sec in /usr/lib/systemd/user/plasma-plasmashell.service to work around the problem I reported at https://bugzilla.redhat.com/show_bug.cgi?id=2252382 https://sourceware.org/bugzilla/show_bug.cgi?id=31122#c3 https://bugs.kde.org/show_bug.cgi?id=478287 Using Plasma 5.27.10 on Wayland with KF 5.113.0 and Qt 5.15.12 without the qt5-* debuginfo packages installed, I attached gdb to plasmashell with gdb -p $(pidof plasmashell) I played Instagram story videos in Firefox 123.0a1 on Wayland. plasmashell crashed. I ran bt in gdb which then crashed in block::scope.

Thread 1 "plasmashell" received signal SIGSEGV, Segmentation fault.
0x00007fe9f08b3a72 in __dynamic_cast () from /lib64/libstdc++.so.6
(gdb) bt
#0  0x00007fe9f08b3a72 in __dynamic_cast () at /lib64/libstdc++.so.6
#1  0x00007fe9f32b7200 in Plasma::DataContainer::getDataEngine() () at /lib64/libKF5Plasma.so.5


Fatal signal: Segmentation fault
----- Backtrace -----
0x559983a27140 gdb_internal_backtrace_1
        ../../gdb/bt-utils.c:122
0x559983a27140 _Z22gdb_internal_backtracev
        ../../gdb/bt-utils.c:168
0x559983b64252 handle_fatal_signal
        ../../gdb/event-top.c:895
0x559983b64429 handle_sigsegv
        ../../gdb/event-top.c:968
0x7f0426f6e99f ???
        /usr/src/debug/glibc-2.38-14.fc39.x86_64/signal/../sysdeps/unix/sysv/linux/x86_64/libc_sigaction.c:0
0x5599839f43e8 _ZNK5block5scopeEv
        ../../gdb/block.c:293
0x559983aab066 _Z26cp_lookup_transparent_typePKc
        ../../gdb/cp-namespace.c:1029
0x559983ba009c _Z13check_typedefP4type
        ../../gdb/gdbtypes.c:3052
0x559983d2601c _Z19type_to_type_objectP4type
        ../../gdb/python/py-type.c:1468
0x559983d274f3 convert_field
        ../../gdb/python/py-type.c:221
0x559983d27afe make_fielditem
        ../../gdb/python/py-type.c:275
0x559983d27afe typy_iterator_iternext
        ../../gdb/python/py-type.c:1440
0x7f04278339fb ???
        /usr/src/debug/python3.12-3.12.1-2.fc39.x86_64/Objects/listobject.c:944
0x7f04278470e0 ???
        /usr/src/debug/python3.12-3.12.1-2.fc39.x86_64/Objects/listobject.c:982
0x559983d26f0b typy_fields_items
        ../../gdb/python/py-type.c:311
0x7f042781ab19 ???
        /usr/src/debug/python3.12-3.12.1-2.fc39.x86_64/Objects/descrobject.c:454
0x7f042780abfb ???
        /usr/src/debug/python3.12-3.12.1-2.fc39.x86_64/Include/internal/pycore_call.h:92
0x7f042770f759 ???
        Python/bytecodes.c:2706
0x7f0427812cda ???
        /usr/src/debug/python3.12-3.12.1-2.fc39.x86_64/Include/internal/pycore_call.h:92
0x7f042788d08f ???
        /usr/src/debug/python3.12-3.12.1-2.fc39.x86_64/Objects/call.c:957
0x559983d19ca7 search_pp_list
        ../../gdb/python/py-prettyprint.c:83
0x559983d1a182 find_pretty_printer_from_objfiles
        ../../gdb/python/py-prettyprint.c:113
0x559983d1a182 find_pretty_printer
        ../../gdb/python/py-prettyprint.c:173
0x559983d1a647 _Z30gdbpy_apply_val_pretty_printerPK23extension_language_defnP5valueP7ui_fileiPK19value_print_optionsPK13language_defn
        ../../gdb/python/py-prettyprint.c:603
0x559983b6b748 _Z33apply_ext_lang_val_pretty_printerP5valueP7ui_fileiPK19value_print_optionsPK13language_defn
        ../../gdb/extension.c:489
0x559983f038e6 _Z16common_val_printP5valueP7ui_fileiPK19value_print_optionsPK13language_defn
        ../../gdb/valprint.c:1072
0x559983d0519e py_print_value
        ../../gdb/python/py-framefilter.c:251
0x559983d057cb py_print_single_arg
        ../../gdb/python/py-framefilter.c:397
0x559983d05dee enumerate_args
        ../../gdb/python/py-framefilter.c:488
0x559983d070dd py_print_args
        ../../gdb/python/py-framefilter.c:721
0x559983d070dd py_print_frame
        ../../gdb/python/py-framefilter.c:952
0x559983d087d2 _Z24gdbpy_apply_frame_filterPK23extension_language_defn14frame_info_ptr10enum_flagsI17frame_filter_flagE19ext_lang_frame_argsP6ui_outii
        ../../gdb/python/py-framefilter.c:1228
0x559983b6bf89 _Z27apply_ext_lang_frame_filter14frame_info_ptr10enum_flagsI17frame_filter_flagE19ext_lang_frame_argsP6ui_outii
        ../../gdb/extension.c:541
0x559983e0a166 backtrace_command_1
        ../../gdb/stack.c:2029
0x559983e0a166 backtrace_command
        ../../gdb/stack.c:2168
0x559983a63794 _Z8cmd_funcP16cmd_list_elementPKci
        ../../gdb/cli/cli-decode.c:2735
0x559983e73b24 _Z15execute_commandPKci
        ../../gdb/top.c:575
0x559983b64ab1 _Z15command_handlerPKc
        ../../gdb/event-top.c:555
0x559983b665a8 _Z20command_line_handlerOSt10unique_ptrIcN3gdb13xfree_deleterIcEEE
        ../../gdb/event-top.c:791
0x559983b65170 gdb_rl_callback_handler
        ../../gdb/event-top.c:260
0x7f0427eaf0dc ???
0x559983b652d5 gdb_rl_callback_read_char_wrapper_noexcept
        ../../gdb/event-top.c:196
0x559983b65487 gdb_rl_callback_read_char_wrapper
        ../../gdb/event-top.c:235
0x559983eb501f stdin_event_handler
        ../../gdb/ui.c:155
0x5599840e573d gdb_wait_for_event
        ../../gdbsupport/event-loop.cc:716
0x5599840e62f1 _Z16gdb_do_one_eventi
        ../../gdbsupport/event-loop.cc:264
0x559983c51b11 start_event_loop
        ../../gdb/main.c:407
0x559983c51b11 captured_command_loop
        ../../gdb/main.c:471
0x559983c54874 captured_main
        ../../gdb/main.c:1324
0x559983c54874 _Z8gdb_mainP18captured_main_args
        ../../gdb/main.c:1343
0x559983924baf main
        ../../gdb/gdb.c:47
---------------------
A fatal error internal to GDB has been detected, further
debugging is not possible.  GDB will now terminate.

This is a bug, please report it.  For instructions, see:
<https://www.gnu.org/software/gdb/bugs/>.

Segmentation fault (core dumped)

block::scope, cp_lookup_transparent_type, and check_typedef were in common with the previous traces, but the functions below that looked different.

Core was generated by `gdb -p 46516'.
Program terminated with signal SIGSEGV, Segmentation fault.
#0  __pthread_kill_implementation (threadid=<optimized out>, signo=signo@entry=11, 
    no_tid=no_tid@entry=0) at pthread_kill.c:44
44            return INTERNAL_SYSCALL_ERROR_P (ret) ? INTERNAL_SYSCALL_ERRNO (ret) : 0;
[Current thread is 1 (Thread 0x7f0427e6c080 (LWP 48853))] 

(gdb) bt
#0  __pthread_kill_implementation (threadid=<optimized out>, signo=signo@entry=11, 
    no_tid=no_tid@entry=0) at pthread_kill.c:44
#1  0x00007f0426fc08a3 in __pthread_kill_internal (signo=11, threadid=<optimized out>)
    at pthread_kill.c:78
#2  0x00007f0426f6e8ee in __GI_raise (sig=11) at ../sysdeps/posix/raise.c:26
#3  0x0000559983b641ff in handle_fatal_signal (sig=sig@entry=11) at ../../gdb/event-top.c:918
#4  0x0000559983b6442a in handle_sigsegv (sig=11) at ../../gdb/event-top.c:968
#5  <signal handler called>
#6  block::scope (this=<optimized out>) at ../../gdb/block.c:293
#7  0x0000559983aab067 in cp_lookup_transparent_type (name=0x5599a3362f20 "Plasma::Service")
    at ../../gdb/cp-namespace.c:1029
#8  0x0000559983ba009d in check_typedef (type=<optimized out>) at ../../gdb/gdbtypes.c:3052
#9  0x0000559983d2601d in type_to_type_object (type=0x5599a3bcfa70)
    at ../../gdb/python/py-type.c:1468
#10 0x0000559983d274f4 in convert_field (type=type@entry=0x5599a22e9520, field=field@entry=0)
    at ../../gdb/python/py-type.c:221
#11 0x0000559983d27aff in make_fielditem (kind=<optimized out>, i=0, type=0x5599a22e9520)
    at ../../gdb/python/py-type.c:275
#12 typy_iterator_iternext (self=<gdb.TypeIterator at remote 0x7f03ff26db30>)
    at ../../gdb/python/py-type.c:1440
#13 0x00007f04278339fc in list_extend (self=self@entry=0x7f03ff22e6c0, 
    iterable=iterable@entry=<gdb.TypeIterator at remote 0x7f03ff26db30>)
    at /usr/src/debug/python3.12-3.12.1-2.fc39.x86_64/Objects/listobject.c:944
--Type <RET> for more, q to quit, c to continue without paging--c
#14 0x00007f04278470e1 in _PyList_Extend (iterable=<gdb.TypeIterator at remote 0x7f03ff26db30>, 
    self=0x7f03ff22e6c0) at /usr/src/debug/python3.12-3.12.1-2.fc39.x86_64/Objects/listobject.c:980
#15 PySequence_List (v=<gdb.TypeIterator at remote 0x7f03ff26db30>)
    at /usr/src/debug/python3.12-3.12.1-2.fc39.x86_64/Objects/abstract.c:2121
#16 0x0000559983d26f0c in typy_fields_items (self=<optimized out>, kind=iter_values)
    at ../../gdb/python/py-type.c:311
#17 0x00007f042781ab1a in method_vectorcall_NOARGS (
    func=<method_descriptor at remote 0x7f041433d210>, args=0x7f0427fba178, nargsf=<optimized out>, 
    kwnames=0x0) at /usr/src/debug/python3.12-3.12.1-2.fc39.x86_64/Objects/descrobject.c:454
#18 0x00007f042780abfc in _PyObject_VectorcallTstate (kwnames=0x0, nargsf=9223372036854775809, 
    args=0x7f0427fba178, callable=<method_descriptor at remote 0x7f041433d210>, 
    tstate=0x7f0427c4e668 <_PyRuntime+459656>)
    at /usr/src/debug/python3.12-3.12.1-2.fc39.x86_64/Include/internal/pycore_call.h:92
#19 PyObject_Vectorcall (callable=<method_descriptor at remote 0x7f041433d210>, args=0x7f0427fba178, 
    nargsf=9223372036854775809, kwnames=0x0)
    at /usr/src/debug/python3.12-3.12.1-2.fc39.x86_64/Objects/call.c:325
#20 0x00007f042770f75a in _PyEval_EvalFrameDefault (tstate=<optimized out>, frame=0x7f0427fba108, 
    throwflag=<optimized out>) at Python/bytecodes.c:2706
#21 0x00007f0427812cdb in _PyObject_VectorcallTstate (kwnames=0x0, nargsf=1, args=0x7fff62c72120, 
    callable=<function at remote 0x7f03ff2e05e0>, tstate=0x7f0427c4e668 <_PyRuntime+459656>)
    at /usr/src/debug/python3.12-3.12.1-2.fc39.x86_64/Include/internal/pycore_call.h:92
#22 object_vacall (tstate=<optimized out>, base=base@entry=0x0, 
    callable=callable@entry=<function at remote 0x7f03ff2e05e0>, vargs=vargs@entry=0x7fff62c72190)
    at /usr/src/debug/python3.12-3.12.1-2.fc39.x86_64/Objects/call.c:850
#23 0x00007f042788d090 in PyObject_CallFunctionObjArgs (callable=<function at remote 0x7f03ff2e05e0>)
    at /usr/src/debug/python3.12-3.12.1-2.fc39.x86_64/Objects/call.c:957
#24 0x0000559983d19ca8 in search_pp_list (list=list@entry=[<function at remote 0x7f03ff2e05e0>], 
    value=value@entry=<gdb.Value at remote 0x7f03fe507230>) at ../../gdb/python/py-prettyprint.c:82
#25 0x0000559983d1a183 in find_pretty_printer_from_objfiles (
    value=<gdb.Value at remote 0x7f03fe507230>) at ../../gdb/python/py-prettyprint.c:113
#26 find_pretty_printer (value=value@entry=<gdb.Value at remote 0x7f03fe507230>)
    at ../../gdb/python/py-prettyprint.c:173
#27 0x0000559983d1a648 in gdbpy_apply_val_pretty_printer (extlang=<optimized out>, 
    value=0x5599a0e79f80, stream=0x7fff62c72610, recurse=0, options=0x7fff62c72860, 
    language=0x5599845f45d0 <cplus_language_defn>) at ../../gdb/python/py-prettyprint.c:603
#28 0x0000559983b6b749 in apply_ext_lang_val_pretty_printer (val=val@entry=0x5599a0e79f80, 
    stream=stream@entry=0x7fff62c72610, recurse=recurse@entry=0, 
    options=options@entry=0x7fff62c72860, 
    language=language@entry=0x5599845f45d0 <cplus_language_defn>) at ../../gdb/extension.c:489
#29 0x0000559983f038e7 in common_val_print (value=value@entry=0x5599a0e79f80, 
    stream=stream@entry=0x7fff62c72610, recurse=recurse@entry=0, 
    options=options@entry=0x7fff62c72860, 
    language=language@entry=0x5599845f45d0 <cplus_language_defn>) at ../../gdb/valprint.c:1072
#30 0x0000559983d0519f in py_print_value (out=out@entry=0x559985b5df10, 
    val=val@entry=0x5599a0e79f80, opts=opts@entry=0x7fff62c72860, indent=indent@entry=0, 
    args_type=args_type@entry=CLI_SCALAR_VALUES, 
    language=language@entry=0x5599845f45d0 <cplus_language_defn>)
    at ../../gdb/python/py-framefilter.c:251
#31 0x0000559983d057cc in py_print_single_arg (out=out@entry=0x559985b5df10, 
    sym_name=sym_name@entry=0x0, fa=fa@entry=0x7fff62c72820, fv=fv@entry=0x0, 
    opts=opts@entry=0x7fff62c72860, args_type=args_type@entry=CLI_SCALAR_VALUES, print_args_field=0, 
    language=0x5599845f45d0 <cplus_language_defn>) at ../../gdb/python/py-framefilter.c:397
#32 0x0000559983d05def in enumerate_args (iter=iter@entry=<list_iterator at remote 0x7f04142bd720>, 
    out=out@entry=0x559985b5df10, args_type=args_type@entry=CLI_SCALAR_VALUES, 
    print_args_field=print_args_field@entry=0, frame=...) at ../../gdb/python/py-framefilter.c:488
#33 0x0000559983d070de in py_print_args (frame=..., args_type=CLI_SCALAR_VALUES, out=0x559985b5df10, 
    filter=<FrameDecorator(_base=<gdb.Frame at remote 0x7f03fe5067b0>) at remote 0x7f03ff2bbf20>)
    at ../../gdb/python/py-framefilter.c:721
#34 py_print_frame (
    filter=filter@entry=<FrameDecorator(_base=<gdb.Frame at remote 0x7f03fe5067b0>) at remote 0x7f03ff2bbf20>, flags=..., flags@entry=..., args_type=args_type@entry=CLI_SCALAR_VALUES, 
    out=out@entry=0x559985b5df10, indent=indent@entry=0, 
    levels_printed=levels_printed@entry=0x5599a4c76de0) at ../../gdb/python/py-framefilter.c:952
#35 0x0000559983d087d3 in gdbpy_apply_frame_filter (extlang=<optimized out>, frame=..., flags=..., 
    args_type=CLI_SCALAR_VALUES, out=0x559985b5df10, frame_low=<optimized out>, frame_high=-1)
    at ../../gdb/python/py-framefilter.c:1228
#36 0x0000559983b6bf8a in apply_ext_lang_frame_filter (frame=..., flags=..., flags@entry=..., 
    args_type=args_type@entry=CLI_SCALAR_VALUES, out=out@entry=0x559985b5df10, 
    frame_low=frame_low@entry=0, frame_high=frame_high@entry=-1) at ../../gdb/extension.c:541
#37 0x0000559983e0a167 in backtrace_command_1 (from_tty=1, count_exp=<optimized out>, bt_opts=..., 
    fp_opts=...) at ../../gdb/stack.c:2029
#38 backtrace_command (arg=<optimized out>, from_tty=1) at ../../gdb/stack.c:2168
#39 0x0000559983a63795 in cmd_func (cmd=<optimized out>, args=<optimized out>, 
    from_tty=<optimized out>) at ../../gdb/cli/cli-decode.c:2735
#40 0x0000559983e73b25 in execute_command (p=<optimized out>, p@entry=0x55998594ab10 "bt", 
    from_tty=<optimized out>) at ../../gdb/top.c:575
#41 0x0000559983b64ab2 in command_handler (command=0x55998594ab10 "bt") at ../../gdb/event-top.c:555
#42 0x0000559983b665a9 in command_line_handler (rl=...) at ../../gdb/event-top.c:791
#43 0x0000559983b65171 in gdb_rl_callback_handler (rl=0x5599a1454d20 "bt")
    at ../../gdb/event-top.c:260
#44 0x00007f0427eaf0dd in rl_callback_read_char () from /lib64/libreadline.so.8
#45 0x0000559983b652d6 in gdb_rl_callback_read_char_wrapper_noexcept () at ../../gdb/event-top.c:196
#46 0x0000559983b65488 in gdb_rl_callback_read_char_wrapper (client_data=<optimized out>)
    at ../../gdb/event-top.c:234
#47 0x0000559983eb5020 in stdin_event_handler (error=<optimized out>, client_data=0x55998594c2f0)
    at ../../gdb/ui.c:155
#48 0x00005599840e573e in gdb_wait_for_event (block=block@entry=1)
    at ../../gdbsupport/event-loop.cc:716
#49 0x00005599840e62f2 in gdb_do_one_event (mstimeout=mstimeout@entry=-1)
    at ../../gdbsupport/event-loop.cc:264
#50 0x0000559983c51b12 in start_event_loop () at ../../gdb/main.c:407
#51 captured_command_loop () at ../../gdb/main.c:471
#52 0x0000559983c54875 in captured_main (data=0x7fff62c733d0) at ../../gdb/main.c:1324
#53 gdb_main (args=args@entry=0x7fff62c73410) at ../../gdb/main.c:1343
#54 0x0000559983924bb0 in main (argc=3, argv=0x7fff62c73568) at ../../gdb/gdb.c:47

I'll attach the full trace of all threads of this crash. gdb didn't crash when I created the trace in drkonqi though, so the problem didn't always happen. The gdb crash didn't happen if the qt5-*-debuginfo packages were installed.

drkonqi appeared. I got the trace of the plasmashell crash in  __cxxabiv1::__dynamic_cast at https://bugs.kde.org/show_bug.cgi?id=471248#c8.

Reproducible: Sometimes

Steps to Reproduce:
I reproduced the plasmashell crash and gdb crash in drkonqi as follows without qt5-*, glib2, glibc debuginfo packages installed.

1. Log in to Plasma on Wayland
2. Start Konsole
3. gdb -p $(pidof plasmashell)
4. In gdb, run c
5. Open a new tab in Konsole
6. In the new Konsole tab, pkill -6 plasmashell
7. in gdb, run q
8. If drkonqi appears, select Developer Information in drkonqi.
9. If drkonqi doesn't appear because plasmashell restarted before drkonqi started, repeat 3-8 until it does

Actual Results:  
gdb crashed in block::scope creating traces of plasmashell crashes when Qt debug packages weren't installed

Expected Results:  
gdb should not have crashed and should have created the plasmashell trace.

I reported this problem at https://sourceware.org/bugzilla/show_bug.cgi?id=31226

Comment 1 Matt Fagnani 2024-01-10 04:09:29 UTC
Created attachment 2007991 [details]
Full trace of all threads of the second gdb crash mentioned

Comment 2 Matt Fagnani 2024-01-12 05:26:35 UTC
My upstream report was marked as a duplicate of https://sourceware.org/bugzilla/show_bug.cgi?id=31128 which has a patch checking for a null block pointer https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=bc23ea51f8a83e9524dfb553baa8baacb29e68a9

Comment 3 Fedora Update System 2024-01-14 19:45:27 UTC
FEDORA-2024-6751a6f242 has been submitted as an update to Fedora 39. https://bodhi.fedoraproject.org/updates/FEDORA-2024-6751a6f242

Comment 4 Kevin Buettner 2024-01-15 00:11:35 UTC
(In reply to Matt Fagnani from comment #2)
> My upstream report was marked as a duplicate of
> https://sourceware.org/bugzilla/show_bug.cgi?id=31128 which has a patch
> checking for a null block pointer
> https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;
> h=bc23ea51f8a83e9524dfb553baa8baacb29e68a9

While I haven't been able to reproduce this bug, given the backtrace that you show in an earlier comment, the upstream patch does look like a possible (even likely) fix for this bug.  I've backported the patch and have made a release for Fedora 39.  Please give it a try an let me know if it fixes the problem for you.

As for bug 2252382 and bug 2252514, it appears that you were using gdb-13.2-11.  I'm hoping that gdb-14.1 fixes the problem(s) that you were seeing in early December.

Comment 5 Fedora Update System 2024-01-15 01:05:14 UTC
FEDORA-2024-6751a6f242 has been pushed to the Fedora 39 testing repository.
Soon you'll be able to install the update with the following command:
`sudo dnf upgrade --enablerepo=updates-testing --refresh --advisory=FEDORA-2024-6751a6f242`
You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2024-6751a6f242

See also https://fedoraproject.org/wiki/QA:Updates_Testing for more information on how to test updates.

Comment 6 Fedora Update System 2024-01-16 01:18:17 UTC
FEDORA-2024-6751a6f242 has been pushed to the Fedora 39 stable repository.
If problem still persists, please make note of it in this bug report.

Comment 7 Matt Fagnani 2024-01-16 01:19:07 UTC
Thanks. I updated my F39 installation to Rawhide in the meantime in which I upgraded to gdb-14.1-2.fc39. I used the steps I gave with pkill -6 plasmashell three times. gdb didn't crash when I created traces of plasmashell in drkonqi. I think the patch should fix the gdb crashes though I'm not certain because the crashes didn't always happen gdb-14.1-1.fc39.

bug 2252382 and bug 2252514 were due to the reasons I reported at https://bugzilla.redhat.com/show_bug.cgi?id=2252382#c14 The gdb, drkonqi, kioslave5 aborts were due to the 40 s timeout for /usr/lib/systemd/user/plasma-plasmashell.service, Fedora services using the drop-in configuration file /usr/lib/systemd/user/service.d/10-timeout-abort.conf which has TimeoutStopFailureMode=abort, and gdb taking 40-45 s to create the plasmashell traces with the qt5 debuginfo packages installed which exceeded the plasma-plasmashell.service timeout. Such crashes still happened with gdb 14.1.

Comment 8 Fedora Update System 2024-01-16 02:25:36 UTC
FEDORA-2024-6a0d961146 has been submitted as an update to Fedora 38. https://bodhi.fedoraproject.org/updates/FEDORA-2024-6a0d961146

Comment 9 Fedora Update System 2024-01-17 01:43:31 UTC
FEDORA-2024-6a0d961146 has been pushed to the Fedora 38 testing repository.
Soon you'll be able to install the update with the following command:
`sudo dnf upgrade --enablerepo=updates-testing --refresh --advisory=FEDORA-2024-6a0d961146`
You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2024-6a0d961146

See also https://fedoraproject.org/wiki/QA:Updates_Testing for more information on how to test updates.

Comment 10 Fedora Update System 2024-01-31 01:32:57 UTC
FEDORA-2024-ee7cb0e0a5 has been pushed to the Fedora 38 testing repository.
Soon you'll be able to install the update with the following command:
`sudo dnf upgrade --enablerepo=updates-testing --refresh --advisory=FEDORA-2024-ee7cb0e0a5`
You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2024-ee7cb0e0a5

See also https://fedoraproject.org/wiki/QA:Updates_Testing for more information on how to test updates.

Comment 11 Fedora Update System 2024-02-15 01:42:08 UTC
FEDORA-2024-ee7cb0e0a5 (low) has been pushed to the Fedora 38 stable repository.
If problem still persists, please make note of it in this bug report.


Note You need to log in before you can comment on or make changes to this bug.