Skip to content

[stable-34.0] fix(socketapi): defer move item dialog out of socket read loop. - #10578

Merged
camilasan merged 4 commits into
stable-34.0from
backport/10552/stable-34.0
Aug 12, 2026
Merged

[stable-34.0] fix(socketapi): defer move item dialog out of socket read loop.#10578
camilasan merged 4 commits into
stable-34.0from
backport/10552/stable-34.0

Conversation

@backportbot

@backportbot backportbot Bot commented Aug 11, 2026

Copy link
Copy Markdown

Backport of PR #10552

@backportbot
backportbot Bot requested review from camilasan and i2h3 as code owners August 11, 2026 08:43
@backportbot
backportbot Bot requested a review from nilsding August 11, 2026 08:43
@backportbot backportbot Bot added this to the 34.0.2 milestone Aug 11, 2026
@camilasan
camilasan force-pushed the backport/10552/stable-34.0 branch from b60ccba to 4e1797a Compare August 11, 2026 10:29
@github-actions

Copy link
Copy Markdown
Contributor

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

Digest: sha256:ebb50dc23107fd0f7d69d2c40f9060d7569c151565a0623f2f931dd431f30815

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.

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>
…als.

SocketApi built the conflict and move dialogs inline inside the socket read loop.
This keeps UI out of SocketApi and removes the modal loop that ran under slotReadSocket.

Assisted-by: Claude:claude-opus-4-8
Signed-off-by: Camila Ayres <hello@camilasan.com>
@camilasan
camilasan force-pushed the backport/10552/stable-34.0 branch from 4e1797a to ec45815 Compare August 12, 2026 13:20
@camilasan
camilasan merged commit b66fd8b into stable-34.0 Aug 12, 2026
15 checks passed
@camilasan
camilasan deleted the backport/10552/stable-34.0 branch August 12, 2026 13:21
@sonarqubecloud

Copy link
Copy Markdown

bmwiedemann pushed a commit to bmwiedemann/openSUSE that referenced this pull request Aug 20, 2026
https://build.opensuse.org/request/show/1372114
by user stacheldrahtje + anag_factory
- Update to version 34.0.2:
  * [stable-34.0] fix(file-provider): Deletion of server-side item
    for items excluded from sync
    (gh#nextcloud/desktop#10540)
  * [stable-34.0] fix(tray): activate tray window also on right
    click (macOS)
    (gh#nextcloud/desktop#10542)
  * [stable-34.0] fix(file-provider): preserve special characters
    in chunked upload paths
    (gh#nextcloud/desktop#10544)
  * [stable-34.0] fix(discovery): use QString to avoid dangling
    QStringBuilder.
    (gh#nextcloud/desktop#10557)
  * [stable-34.0] fix(socketapi): defer move item dialog out of
    socket read loop.
    (gh#nextcloud/desktop#10578)
  * [stable-34.0] fix(windows): Prevent reupload of placeholder
    dirs deleted remotely
    (gh#nextcloud/desktop#10585)
  * [stable-34.0] fix(macOS): present
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.

2 participants