Skip to content

fix(socketapi): defer move item dialog out of socket read loop. - #10552

Open
camilasan wants to merge 3 commits into
masterfrom
bugfix/10519/conflict-resolve-crash
Open

fix(socketapi): defer move item dialog out of socket read loop.#10552
camilasan wants to merge 3 commits into
masterfrom
bugfix/10519/conflict-resolve-crash

Conversation

@camilasan

@camilasan camilasan commented Aug 6, 2026

Copy link
Copy Markdown
Member

Resolves

#10519

Summary

command_MOVE_ITEM showed QFileDialog::getSaveFileUrl as a nested modal loop
from the Qt::DirectConnection socket dispatch. Defer the dialog to the
next event loop iteration after computing the default path.

One extra change: now the notification for conflicts in the activity list opens the conflict dialog directly.

TODO

Checklist

AI (if applicable)

@camilasan camilasan added this to the 34.0.2 milestone Aug 6, 2026
@camilasan

Copy link
Copy Markdown
Member Author

/backport to stable-34.0

@camilasan
camilasan force-pushed the bugfix/10519/conflict-resolve-crash branch from 43db3bd to b7294ce Compare August 6, 2026 20:45
@camilasan
camilasan marked this pull request as ready for review August 6, 2026 21:12
Fixes #10519

Running ConflictDialog::exec() from the Qt::DirectConnection socket dispatch
spun a nested modal loop inside slotReadSocket. If the socket disconnected
while the dialog was open, the QLocalSocket was freed and the read loop
dereferenced it again at socketapi.cpp:385, crashing with an access violation.

Assisted-by: Claude:claude-opus-4-8
Signed-off-by: Camila Ayres <hello@camilasan.com>
command_MOVE_ITEM showed QFileDialog::getSaveFileUrl as a nested
modal loop from the Qt::DirectConnection socket dispatch, the same
reentrancy that can free the socket underneath the handler
causing a crash.

Assisted-by: Claude:claude-opus-4-8
Signed-off-by: Camila Ayres <hello@camilasan.com>
…cked.

Clicking a conflict entry brought the user to the activity log.

Assisted-by: Claude:claude-opus-4-8
Signed-off-by: Camila Ayres <hello@camilasan.com>
@camilasan
camilasan force-pushed the bugfix/10519/conflict-resolve-crash branch from b7294ce to 56e6b06 Compare August 7, 2026 09:27
@github-actions

github-actions Bot commented Aug 7, 2026

Copy link
Copy Markdown
Contributor

Artifact containing the AppImage: nextcloud-appimage-pr-10552.zip

Digest: sha256:990f25b5e44be509f0ba42c09dfd563362e1e91a893026278292814aace39e26

To test this change/fix you can download the above artifact file, unzip it, and run it.

Please make sure to quit your existing Nextcloud app and backup your data.

@sonarqubecloud

sonarqubecloud Bot commented Aug 7, 2026

Copy link
Copy Markdown

Quality Gate Failed Quality Gate failed

Failed conditions
0.0% Coverage on New Code (required ≥ 80%)

See analysis details on SonarQube Cloud

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant