https://bugs.kde.org/show_bug.cgi?id=507625

            Bug ID: 507625
           Summary: `add symbol table from file "None"` error fails
                    sending actual crash report in DrKonqi
    Classification: Applications
           Product: drkonqi
      Version First 6.4.3
       Reported In:
          Platform: Fedora RPMs
                OS: Linux
            Status: REPORTED
          Severity: normal
          Priority: NOR
         Component: backtraceparsing
          Assignee: [email protected]
          Reporter: [email protected]
  Target Milestone: ---

Created attachment 183620
  --> https://bugs.kde.org/attachment.cgi?id=183620&action=edit
Whole DrKonqi log with the problem

SUMMARY
Encountered a rather bad situation, where a crash reporter project gets an
exception itself, failing to report the actual crash it was supposed to handle.


STEPS TO REPRODUCE
1. Use Fedora Kinoite -> Universal Blue -> Aurora (getaurora.dev) derivative
atomic distro, rather regular KDE installation
2. Have DrKonqi configured to auto-send reports and grab symbols (both
checkboxes checked after first random app crash, in drkonqirc
DownloadSymbols=true and Sentry=true)
3. Have a random app crash
4. Have a DrKonqi notification displayed that a crash will be auto-send, and
you can either add a comment, restart the app or do nothing
5. Now everything should be okay, but you can also click Add a Comment which I
do

OBSERVED RESULT
If you open the DrKonqi window in step #5, it will report with a message at the
top that it's failed reporting the error, giving you an option to view log or
retry. The progress bar keeps moving. You have the option to enter crash
comment, but doing so and confirming **WILL NOT HAVE IT SENT ANYWHERE**
critically from UX-standpoint (which you could consider a separate UX bug on
its own, it sucks to pour some heart into descriptive bug report, but that
comment gets discarded, yikes). Besides said window also crashed on one attempt
as I finished writing the bug comment, which is also not nice.

Anyway, the real problem is the log has a bunch of lines like:
warning: Can't open file
/65/2cadaf974cb4dae6fd6815eb3913aaad7ae7dccf6bd922db9df17a10d4222a.file during
file-backed mapping note processing

Then DrKonqi ends up with `add symbol table from file "None"` trying to grab a
symbol from non-existent file, this throws a Python error (in
/usr/share/drkonqi/gdb/python/gdb_preamble/preamble.py, see whole log
attachment), which in turn shows `gdb.error: None: No such file or directory.`
and the whole script reports exit code 1 at the end. This causes Sentry crash
not to be sent. Neither of the Sentry envelopes dirs exist in ~/.cache/drkonqi
at all!

Note that if I view the actual crash dump's info in DrKonqi's browser, I do
generally see the crash info and symbols just fine. These suspicious files are
just at the bottom in what seems to be the way the actual executables were
launched in the stack:
[...]
                #35 0x00007fe6677d7419 _ZN16QCoreApplication4execEv
(libQt6Core.so.6 + 0x103419)
                #36 0x00005605367877ad n/a
(/29/5c45f94ee5681696fb209cb4d505ca67b966d2dab16859fe5ff361ed48e991.file +
0xf7ad)
                #37 0x00007fe66726e5f5 __libc_start_call_main (libc.so.6 +
0x35f5)
                #38 0x00007fe66726e6a8 __libc_start_main@@GLIBC_2.34 (libc.so.6
+ 0x36a8)
                #39 0x0000560536788a45 n/a
(/29/5c45f94ee5681696fb209cb4d505ca67b966d2dab16859fe5ff361ed48e991.file +
0x10a45)

EXPECTED RESULT
The crash report should go through, even if not all symbols could be loaded.

SOFTWARE/OS VERSIONS
Windows: 
macOS: 
(available in the Info Center app, or by running `kinfo` in a terminal window)
Linux/KDE Plasma: 6.14.11-300.fc42.x86_64
KDE Plasma Version: 6.4.3
KDE Frameworks Version: 6.16.0
Qt Version: 6.9.1

ADDITIONAL INFORMATION

Glimpse of the DrKonqi bug (I suspect "None" is the suspicious files without
path):

Core was generated by `/usr/bin/dolphin'.
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 0x7fbb28b37080 (LWP 22679))]
Cannot QML trace cores :(
add symbol table from file "/lib64/libc.so.6"
add symbol table from file "/lib64/libKF6Crash.so.6"
add symbol table from file "/lib64/libQt6Quick.so.6"
add symbol table from file "/lib64/libQt6QuickWidgets.so.6"
add symbol table from file "/lib64/libQt6Core.so.6"
add symbol table from file "/lib64/libQt6Widgets.so.6"
add symbol table from file "/lib64/libglib-2.0.so.0"
add symbol table from file "None"
Traceback (most recent call last):
  File "/usr/share/drkonqi/gdb/python/gdb_preamble/preamble.py", line 812, in
print_preamble
    print_preamble_internal()
    ~~~~~~~~~~~~~~~~~~~~~~~^^
  File "/usr/share/drkonqi/gdb/python/gdb_preamble/preamble.py", line 803, in
print_preamble_internal
    print_sentry_payload(thread)
    ~~~~~~~~~~~~~~~~~~~~^^^^^^^^
  File "/usr/share/drkonqi/gdb/python/gdb_preamble/preamble.py", line 727, in
print_sentry_payload
    payload = SentryEvent().make(program, thread)
  File "/usr/share/drkonqi/gdb/python/gdb_preamble/preamble.py", line 520, in
make
    stacktrace = SentryTrace(crash_thread, True).to_dict()
  File "/usr/share/drkonqi/gdb/python/gdb_preamble/preamble.py", line 367, in
to_dict
    SentryTrace.load_solib(self.thread, cramped_memory)
    ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/share/drkonqi/gdb/python/gdb_preamble/preamble.py", line 349, in
load_solib
    gdb.execute(f'add-symbol-file {solib}')
    ~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^
gdb.error: None: No such file or directory.
None: No such file or directory.
Sentry is attempting to send 2 pending events
Waiting up to 30 seconds
Press Ctrl-C to quit
Debugging ended with exit code '1' and exit status 'NormalExit'

-- 
You are receiving this mail because:
You are watching all bug changes.

Reply via email to