[qt/qt/qtapplicationmanager]: Summary of bulk changes made

KDE Git Services - Bulk Change <[email protected]>
Newsgroups gmane.comp.kde.cvs
Message-ID <[email protected]>
Git repository change summary for qt/qt/qtapplicationmanager
Pushed by mirror-service into branch '6.11'.
Changed from 24efcdafb0dad94a73e56dbe0967896b3ef9095e to d216b5a0fd4daa0a43e454f504afdd0d468ab8d6
Acknowledgement was received that this change introduces only existing code that has been pushed to another public open source repository.

This change contains the following new commits:

Git commit 5a6b5819fdace3d7c697cfc0ffa3b5a1ce7cac19 by Qt Cherry-pick Bot (on behalf of Robert Griebl) on 21/07/2026 at 16:21..
NativeRuntime: recover from a lost process-exit notification

onProcessError() used to ignore every error while the runtime was Running or
ShuttingDown, assuming a finished() signal would always follow. That only holds
for the 'Crashed' error - FailedToStart, ReadError, WriteError and Timedout are
never followed by finished(). If such an error arrived while the runtime was in
ShuttingDown (e.g. a fork/exec failure under load during a rapid stop/restart
loop), shutdown() was never called: the runtime stayed wedged in ShuttingDown
forever and ApplicationManager refused to start the application again.

- onProcessError() now finishes the teardown for any non-Crashed error unless
  the runtime is still Running (where the process may legitimately still be
  alive). 'Crashed' continues to rely on the paired finished() so the real exit
  code is preserved.
- stop() additionally arms a last-resort timer that forces shutdown() if the
  runtime is still in ShuttingDown after a generous grace period, covering the
  case where neither finished() nor any error is ever delivered.

Change-Id: I08614e933721d0b4982a828b8d43e3ca20b917ca
Pick-to: 6.8
Reviewed-by: Bernd Weimer <[email protected]>
(cherry picked from commit 1b7d84b66848d917c2918af38bc6094ce25b5b5f)
Reviewed-by: Qt Cherry-pick Bot <[email protected]>
(cherry picked from commit 85d5d71944947c9d17a92e490283b8924a9b3218)
https://invent.kde.org/qt/qt/qtapplicationmanager/-/commit/5a6b5819fdace3d7c697cfc0ffa3b5a1ce7cac19

Git commit d216b5a0fd4daa0a43e454f504afdd0d468ab8d6 by Qt Cherry-pick Bot (on behalf of Robert Griebl) on 21/07/2026 at 16:21..
NativeRuntime: only run shutdown() once

A crashing or killed process makes the container process emit errorOccured()
immediately followed by finished() (QProcess sends Crashed and then finished).
If the runtime was still in StartingUp at that point, both onProcessError() and
onProcessFinished() would call shutdown() on the same runtime, one right after
the other.

The first shutdown() sets the state to NotRunning, which can immediately trigger
a restart from the System UI, creating a new runtime that then becomes the
current one for the application. The second shutdown() then ran again on the old,
now stale runtime and cleared Application::currentRuntime() - this time clearing
the freshly created runtime instead. That left its process orphaned and the
application's run-state inconsistent.

Fix this by making shutdown() return early when it has already run once (tracked
via m_shutdownDone).

Change-Id: I36fbe5d51e93ec6a74a161378505e05b6b75cc0a
Pick-to: 6.8
Reviewed-by: Bernd Weimer <[email protected]>
(cherry picked from commit e7c3d37a8005cf62229de08a9a23919ba9a89e8d)
Reviewed-by: Qt Cherry-pick Bot <[email protected]>
(cherry picked from commit eb0eca0c933967cd2dc50d22c199529579beb74e)
https://invent.kde.org/qt/qt/qtapplicationmanager/-/commit/d216b5a0fd4daa0a43e454f504afdd0d468ab8d6
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.