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