Details
-
Bug
-
Resolution: Done
-
P0: Blocker
-
None
-
5.12.0, 5.12.8
-
None
-
-
ed9428330b6f43acd2817bcdb44c6f4ca7506d28 (qt/qtapplicationmanager/dev) 0020dfa6e753f4699db669ed5bb002874808b9d2 (qt/qtapplicationmanager/5.15) 624513810c997afb12b56a674b41e4af0a0a87cf (qt/qtapplicationmanager/5.12)
Description
Issue Description
Parallel requests to install und deinstall an application package leads to a crash due to null pointer calls.
1 std::__atomic_base<int>::load atomic_base.h 396 0x55df5c4e4fbe 2 QAtomicOps<int>::load<int> qatomic_cxx11.h 227 0x55df5c4e4fbe 3 QBasicAtomicInteger<int>::load qbasicatomic.h 103 0x55df5c4e4fbe 4 QtPrivate::RefCount::ref qrefcount.h 55 0x55df5c4e4fbe 5 QString::QString qstring.h 958 0x55df5c4e4fbe 6 QtAM::AbstractApplicationInfo::id applicationinfo.cpp 138 0x55df5c4e4fbe 7 QtAM::DeinstallationTask::execute deinstallationtask.cpp 90 0x55df5c42224c 8 QtAM::AsynchronousTask::run asynchronoustask.cpp 120 0x55df5c4199c0 9 QThreadPrivate::start qthread_unix.cpp 361 0x7ff2ea30b6e7 10 start_thread pthread_create.c 463 0x7ff2ea04c6db 11 clone clone.S 95 0x7ff2e95c171f
Reproduce
The issue could be reproduces by using the "appman-controller" and place in parallal calls to
appman-controller remove-package -f <PACKAGE_ID> appman-controller install-package <PACKAGE_PATH>
Be aware that calls should be parallel, so for instance I used two different bash scripts in infinite loop to reproduce the issue.