disable bug report when there are signs of an update
ClosedPublic

Authored by sitter on Oct 28 2019, 12:26 PM.

Details

Summary

this actually improves UX more than anything. when there was an update it
is fairly impossible to install debug symbols, so drkonqi may get stuck in
a loop between saying this crash is garbage and suggesting the user install
some more symbols. what's more is that the crash can be the result
of incompatibilities in runtime-loaded plugins (a notorious example are
KIO slaves, which get forked from klauncher which I think can lead
to problems when loading the newer libQt5Core.so etc.).

all in all crashes coming from a half-update runtime are hard to trace
and also at risk of being worthless. so, instead disable the report and
the install symbols features and inform the user about what
went wrong in both cases.

this is pretty much exclusively working for linux where the kernel will
actually add " (deleted)" hints to all symlinks in procfs and have a
map_files directory where all mmap'd regions are symlinked to their
respective paths... also with that suffix as needed.

the way it works is super easy: iter all map_files, get all deleted paths,
make sure none of the .so or the executable itself are marked deleted.
if anything is marked deleted, the report feature gets disabled

Test Plan

update dolphin -> attach drkonqi -> drkonqi whines about dolphin being updated

Diff Detail

Repository
R871 DrKonqi
Lint
Automatic diff as part of commit; lint not applicable.
Unit
Automatic diff as part of commit; unit tests not applicable.
sitter created this revision.Oct 28 2019, 12:26 PM
Restricted Application added a project: Plasma. · View Herald TranscriptOct 28 2019, 12:26 PM
Restricted Application added a subscriber: plasma-devel. · View Herald Transcript
sitter requested review of this revision.Oct 28 2019, 12:26 PM
apol added a subscriber: apol.Oct 28 2019, 3:33 PM
apol added inline comments.
src/drkonqibackends.cpp
172

Maybe we don't need to store all of them? I only see it used as "isEmpty()".

sitter planned changes to this revision.Oct 28 2019, 3:57 PM
sitter added inline comments.
src/drkonqibackends.cpp
172

I suppose, my plan was actually to list the changed files but I've seen abandoned that idea because it's largely useless information. I'll change it to a bool.

172

*since abandoned

sitter updated this revision to Diff 68965.Oct 29 2019, 11:19 AM

switch from list to bool since we don't actually use the list anyway

apol accepted this revision.Nov 5 2019, 11:30 AM
This revision is now accepted and ready to land.Nov 5 2019, 11:30 AM
This revision was automatically updated to reflect the committed changes.