Diffusion KIO 830c56744f2b

assert slave command finality

Authored by sitter on Aug 22 2019, 10:49 AM.


assert slave command finality

this changes existing qwarnings in state verification logic to be assertive
in order to crash misbehaving slaves so git users can report bugs about
them and we can fix them.
release builds are not affected and will continue to not crash albeit
without warnings. I am not sure it's worth the effort to assert and qwarn.

additionally when no finality was expected we no longer verify this after
the fact but instead at the time finished/error gets called. this, combined
with the assert aborting, has the advantage that we'll see the actual
call chain that resulted in the unexpected finality call. it's still not
ideal since we'd also want to know the previous caller but unfortunately
we have no way to get that reliable (e.g. backtrace() is woefully incapable
of resolving symbols from the slave - probably because it is a module).

lastly, force a misbehaving slave into finished state when it
should have been finished or error'd but didn't. this prevents slaves
getting stuck ad infinitum on account of them not finishing.

Test Plan: misbehaving ftp slave now crashes

Reviewers: dfaure

Reviewed By: dfaure

Subscribers: kde-frameworks-devel

Tags: Frameworks

Differential Revision: https://phabricator.kde.org/D23344


sitterAug 28 2019, 3:04 PM
Differential Revision
D23344: assert slave command finality
R241:933887dc334f: [KFilePlacesView] Use asynchronous KIO::FileSystemFreeSpaceJob