Details
-
Bug
-
Resolution: Done
-
P1: Critical
-
5.0.0
-
None
-
dacc222d5a3327fb27d69e57d99111cdf9084304
Description
Assertion Q_ASSERT(!isShared) failed. The problem happened when append was called from qt_watch_adopted_thread. The isShared variable is set when reallocData is entered, but qt_adopted_thread_watcher_function in other thread release its copy before reallocation finished. Therefore data are no longer shared at end of reallocData when dereference is performed. The function correctly try to deallocate old data, but fail in assertion as isShared value is no longer valid. The assertion in current form is probably incorrect, it can fail for any multi-threads applications that share QVectors between threads.