nextcloud / nextcloud/ios

WebDAV sync OCP\Lock\LockedException

Open
#788 4 comments 1 reaction 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Swift
Stars
2.5k
Forks
1k
Avg merge
2d 18h
Merged PRs (30d)
13

Description

Expected behaviour

I want to synchronize my whole image library on my iPhone to Nextcloud

Actual behaviour

When synchronizing via iOS I get error messages like these:

[no app in context] Error: OCP\Lock\LockedException: "files/928bd4ce0d95f3e4e8fc51dc7815c1a1" is locked at <<closure>>

0. /var/www/nextcloud/lib/private/Files/Storage/Common.php line 778 changeLock("files/928bd4ce0d95f3e4e8fc51dc7815c1a1", 2)
1. /var/www/nextcloud/lib/private/Files/Storage/Wrapper/Wrapper.php line 615 changeLock("files/Photos/20 ... g", 2, OC\Lock\DBLockingProvider {})
2. /var/www/nextcloud/lib/private/Files/View.php line 1970 changeLock("files/Photos/20 ... g", 2, OC\Lock\DBLockingProvider {})
3. /var/www/nextcloud/apps/dav/lib/Connector/Sabre/Node.php line 359 changeLock("/Photos/2018/06 ... g", 2)
4. /var/www/nextcloud/apps/dav/lib/Connector/Sabre/File.php line 219 changeLock(2)
5. /var/www/nextcloud/3rdparty/sabre/dav/lib/DAV/Server.php line 1130 put(null)
6. /var/www/nextcloud/3rdparty/sabre/dav/lib/DAV/CorePlugin.php line 513 updateFile("Photos/2018/06/ ... g", null, null)
7. <<closure>> httpPut(Sabre\HTTP\Reque ... "}, Sabre\HTTP\Response {})
8. /var/www/nextcloud/3rdparty/sabre/event/lib/EventEmitterTrait.php line 105 call_user_func_array([Sabre\DAV\CorePlugin {},"httpPut"], [Sabre\HTTP\Requ ... }])
9. /var/www/nextcloud/3rdparty/sabre/dav/lib/DAV/Server.php line 479 emit("method:PUT", [Sabre\HTTP\Requ ... }])
10. /var/www/nextcloud/3rdparty/sabre/dav/lib/DAV/Server.php line 254 invokeMethod(Sabre\HTTP\Reque ... "}, Sabre\HTTP\Response {})
11. /var/www/nextcloud/apps/dav/appinfo/v1/webdav.php line 80 exec()
12. /var/www/nextcloud/remote.php line 163 require_once("/var/www/nextcl ... p")

PUT /remote.php/webdav/Photos/2018/06/18-06-06%2018-07-49%200757.jpg from x.x.x.x by HR_c at 2019-02-11T15:15:35+01:00

Steps to reproduce
  1. Install and configure Nextcloud
  2. Downlaod iOS App and connect to Nextcloud
  3. Enable "Auto upload photos" and "Update the whole camera roll"
iOS version

12.1.4

App version

2.22.820 (2018)

Server configuration

Operating system:
Ubuntu 18.04 LTS

Web server:
Apache 2.4.29

Database:
MySQL version 5.7.25

PHP version:
php7.2

Nextcloud version: (see Nextcloud admin page)
15.0.4

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reproducing the iOS auto-upload flow described in the issue, focusing on the PUT request to /remote.php/webdav and the LockedException stack through apps/dav. Trace how the app handles the server response during whole-camera-roll synchronization. Done means the reported upload flow completes without the lock error.

Written by the indexing model from the issue text.

Assessment

Tech stack
ios, swift
Domain
mobile-dev, networking
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
32/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.