D23344: assert slave command finality

Harald Sitter noreply at phabricator.kde.org
Thu Aug 22 12:19:48 BST 2019


sitter created this revision.
sitter added a reviewer: dfaure.
Herald added a project: Frameworks.
Herald added a subscriber: kde-frameworks-devel.
sitter requested review of this revision.

REVISION SUMMARY
  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 finshing.

TEST PLAN
  misehaving ftp slave now crashes

REPOSITORY
  R241 KIO

BRANCH
  master

REVISION DETAIL
  https://phabricator.kde.org/D23344

AFFECTED FILES
  src/core/slavebase.cpp

To: sitter, dfaure
Cc: kde-frameworks-devel, LeGast00n, GB_2, michaelh, ngraham, bruns
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/kde-frameworks-devel/attachments/20190822/c3118825/attachment.html>


More information about the Kde-frameworks-devel mailing list