Hello, we recently updated our OC installation from 5.0.14 to 5.0.17. Since then we noticed a lot of new failures in our owncloud.log. Those errors are also visible in / propagated to the users sync client. So the user gets a sync problem notification and scaring error messages in the activity log. I did not see those errors for browser based access.
There are two categories of failures, Deadlocks and "Duplicate entries for
key“. I’d already logged a bit more verbose … sorry but this will take some
lines. User- and filenames are replaced.
Case 1: Duplicate Entries in oc_permissions
####################################
owncloud-06 - [Aug 4 13:48:28] {webdav} no permissions found, fileid:
113065191 user:userA
owncloud-06 - [Aug 4 13:48:28] {webdav} no permissions found, fileid:
113065191 user:userA
owncloud-06 - [Aug 4 13:48:28] {webdav} no permissions found, fileid:
113065191 user:userA
owncloud-06 - [Aug 4 13:48:28] {webdav} no permissions found, fileid:
113065191 user:userA
=> those lines come from lib/file/cache/permissions.php
public function get($fileId, $user)
There I added an errorlog in case no permissions where found. This results in
an Insert statement rather than an Update statement on oc_permissions.
owncloud-06 - [Aug 4 13:48:28] {webdav} PDOException: SQLSTATE[23000]:
Integrity constraint violation: 1062 Duplicate entry '113065191-userA' for key
'PRIMARY' [23000]
owncloud-06 - [Aug 4 13:48:28] {webdav} Exception: #1
/WEBROOT/lib/files/cache/permissions.php(61):
PDOStatementWrapper->execute(Array)
owncloud-06 - [Aug 4 13:48:28] {webdav} Exception: #2
/WEBROOT/lib/files/view.php(811): OC\Files\Cache\Permissions->set(113065191,
‚user…‘A, 31)
owncloud-06 - [Aug 4 13:48:28] {webdav} Exception: #3
/WEBROOT/lib/files/filesystem.php(640): OC\Files\View->getFileInfo('/file1...',
true)
owncloud-06 - [Aug 4 13:48:28] {webdav} Exception: #4
/WEBROOT/lib/connector/sabre/directory.php(145):
OC\Files\Filesystem::getFileInfo(‚file1…‘)
owncloud-06 - [Aug 4 13:48:28] {webdav} Exception: #5
/WEBROOT/3rdparty/Sabre/DAV/ObjectTree.php(64):
OC_Connector_Sabre_Directory->getChild('file1...')
owncloud-06 - [Aug 4 13:48:28] {webdav} Exception: #6
/WEBROOT/3rdparty/Sabre/DAV/ObjectTree.php(67):
Sabre_DAV_ObjectTree->getNodeForPath('/file1...')
owncloud-06 - [Aug 4 13:48:28] {webdav} Exception: #7
/WEBROOT/3rdparty/Sabre/DAV/ObjectTree.php(67):
Sabre_DAV_ObjectTree->getNodeForPath('/file1...')
owncloud-06 - [Aug 4 13:48:28] {webdav} Exception: #8
/WEBROOT/3rdparty/Sabre/DAV/ObjectTree.php(96):
Sabre_DAV_ObjectTree->getNodeForPath('/file1...')
owncloud-06 - [Aug 4 13:48:28] {webdav} Exception: #9
/WEBROOT/3rdparty/Sabre/DAV/Server.php(874):
Sabre_DAV_ObjectTree->nodeExists('/file1...')
owncloud-06 - [Aug 4 13:48:28] {webdav} Exception: #10 [internal function]:
Sabre_DAV_Server->httpPut('/file1...')
owncloud-06 - [Aug 4 13:48:28] {webdav} Exception: #11
/WEBROOT/3rdparty/Sabre/DAV/Server.php(473): call_user_func(Array, 'file1...')
owncloud-06 - [Aug 4 13:48:28] {webdav} Exception: #12
/WEBROOT/3rdparty/Sabre/DAV/Server.php(213):
Sabre_DAV_Server->invokeMethod('PUT', 'file1...')
owncloud-06 - [Aug 4 13:48:28] {webdav} Exception: #13
/WEBROOT/apps/files/appinfo/remote.php(56): Sabre_DAV_Server->exec()
owncloud-06 - [Aug 4 13:48:28] {webdav} Exception: #14
/WEBROOT/remote.php(40): require_once(‚/WEBROOT/...')
owncloud-06 - [Aug 4 13:48:28] {webdav} Exception: #15 {main}
=> Although there was no entry found in the previous check, the database moans
about an duplicate entry for PRIMARY key in the oc_permissions table. I had a
look in the table a minute after the logentry was created, and there actually
was no entry for this key. Some more minutes later, the entry exists.
Case 2: Deadlock in oc_filecache
###########################
The same user is getting a Deadlock on oc_filecache in the very same second.
This time it seems to be from a background tasks.
owncloud-06 - [Aug 4 13:48:28] {webdav} no permissions found, fileid:
113067062 user:userA
owncloud-06 - [Aug 4 13:48:28] {webdav} no permissions found, fileid:
113067062 user:userA
owncloud-06 - [Aug 4 13:48:28] {webdav} no permissions found, fileid:
113067063 user:userA
owncloud-06 - [Aug 4 13:48:28] {webdav} no permissions found, fileid:
113067063 user:userA
owncloud-06 - [Aug 4 13:48:28] {webdav} PDOException: SQLSTATE[40001]:
Serialization failure: 1213 Deadlock found when trying to get lock; try
restarting transaction [40001]
owncloud-06 - [Aug 4 13:48:28] {webdav} Exception: #1
/WEBROOT/lib/db.php(467): PDOStatementWrapper->execute(Array)
owncloud-06 - [Aug 4 13:48:28] {webdav} Exception: #2
/WEBROOT/lib/files/cache/cache.php(175): OC_DB::executeAudited('SELECT
`fileid`...', Array)
owncloud-06 - [Aug 4 13:48:28] {webdav} Exception: #3
/WEBROOT/lib/files/cache/scanner.php(107): OC\Files\Cache\Cache->get('file1')
owncloud-06 - [Aug 4 13:48:28] {webdav} Exception: #4
/WEBROOT/lib/files/cache/scanner.php(203):
OC\Files\Cache\Scanner->scanFile(‚file1', 3, true)
owncloud-06 - [Aug 4 13:48:28] {webdav} Exception: #5
/WEBROOT/lib/files/cache/scanner.php(170):
OC\Files\Cache\Scanner->scanChildren('files', false, 3)
owncloud-06 - [Aug 4 13:48:28] {webdav} Exception: #6
/WEBROOT/lib/files/cache/watcher.php(48): OC\Files\Cache\Scanner->scan('files',
false)
owncloud-06 - [Aug 4 13:48:28] {webdav} Exception: #7
/WEBROOT/lib/files/view.php(789): OC\Files\Cache\Watcher->checkUpdate('files')
owncloud-06 - [Aug 4 13:48:28] {webdav} Exception: #8
/WEBROOT/lib/fileproxy/quota.php(82): OC\Files\View->getFileInfo('/', false)
owncloud-06 - [Aug 4 13:48:28] {webdav} Exception: #9
/WEBROOT/lib/fileproxy/quota.php(91):
OC_FileProxy_Quota->getFreeSpace('/userA-...')
owncloud-06 - [Aug 4 13:48:28] {webdav} Exception: #10
/WEBROOT/lib/fileproxy.php(107):
OC_FileProxy_Quota->postFree_space('/userA-...', 6.5323421663232E+14)
owncloud-06 - [Aug 4 13:48:28] {webdav} Exception: #11
/WEBROOT/lib/files/view.php(674): OC_FileProxy::runPostProxies('free_space',
'/userA-...', 6.5323421663232E+14)
owncloud-06 - [Aug 4 13:48:28] {webdav} Exception: #12
/WEBROOT/lib/files/view.php(639): OC\Files\View->basicOperation('free_space',
‚/file1...')
owncloud-06 - [Aug 4 13:48:28] {webdav} Exception: #13
/WEBROOT/lib/connector/sabre/quotaplugin.php(94):
OC\Files\View->free_space('/file1...')
owncloud-06 - [Aug 4 13:48:28] {webdav} Exception: #14
/WEBROOT/lib/connector/sabre/quotaplugin.php(59):
OC_Connector_Sabre_QuotaPlugin->getFreeSpace('/file1...')
owncloud-06 - [Aug 4 13:48:28] {webdav} Exception: #15 [internal function]:
OC_Connector_Sabre_QuotaPlugin->checkQuota('file1...', Resource id #125,
Object(OC_Connector_Sabre_Directory))
owncloud-06 - [Aug 4 13:48:28] {webdav} Exception: #16
/WEBROOT/3rdparty/Sabre/DAV/Server.php(432): call_user_func_array(Array, Array)
owncloud-06 - [Aug 4 13:48:28] {webdav} Exception: #17
/WEBROOT/3rdparty/Sabre/DAV/Server.php(1635):
Sabre_DAV_Server->broadcastEvent('beforeCreateFil...', Array)
owncloud-06 - [Aug 4 13:48:28] {webdav} Exception: #18
/WEBROOT/3rdparty/Sabre/DAV/Server.php(897):
Sabre_DAV_Server->createFile('file1...', Resource id #125, NULL)
owncloud-06 - [Aug 4 13:48:28] {webdav} Exception: #19 [internal function]:
Sabre_DAV_Server->httpPut('file1...')
owncloud-06 - [Aug 4 13:48:28] {webdav} Exception: #20
/WEBROOT/3rdparty/Sabre/DAV/Server.php(473): call_user_func(Array, 'file1...')
owncloud-06 - [Aug 4 13:48:28] {webdav} Exception: #21
/WEBROOT/3rdparty/Sabre/DAV/Server.php(213):
Sabre_DAV_Server->invokeMethod('PUT', 'file1...')
owncloud-06 - [Aug 4 13:48:28] {webdav} Exception: #22
/WEBROOT/apps/files/appinfo/remote.php(56): Sabre_DAV_Server->exec()
owncloud-06 - [Aug 4 13:48:28] {webdav} Exception: #23
/WEBROOT/remote.php(40): require_once('/WEBROOT/...')
owncloud-06 - [Aug 4 13:48:28] {webdav} Exception: #24 {main}
owncloud-06 - [Aug 4 13:48:28] {webdav} no permissions found, fileid: 5030749
user:userA
owncloud-06 - [Aug 4 13:48:28] {webdav} no permissions found, fileid: 5030749
user:userA
Case 3: Duplicate entry in oc_filecache
################################
owncloud-06 - [Aug 4 13:58:24] {webdav} PDOException: SQLSTATE[23000]:
Integrity constraint violation: 1062 Duplicate entry '967-userB' for key
'fs_storage_path_hash' [23000]
owncloud-06 - [Aug 4 13:58:24] {webdav} Exception: #1
/WEBROOT/lib/db.php(467): PDOStatementWrapper->execute(Array)
owncloud-06 - [Aug 4 13:58:24] {webdav} Exception: #2
/WEBROOT/lib/files/cache/cache.php(276): OC_DB::executeAudited('?????INSERT
INT...', Array)
owncloud-06 - [Aug 4 13:58:24] {webdav} Exception: #3
/WEBROOT/lib/files/cache/scanner.php(145):
OC\Files\Cache\Cache->put('file2...', Array)
owncloud-06 - [Aug 4 13:58:24] {webdav} Exception: #4
/WEBROOT/lib/files/cache/scanner.php(203):
OC\Files\Cache\Scanner->scanFile('file2...', 3, true)
owncloud-06 - [Aug 4 13:58:24] {webdav} Exception: #5
/WEBROOT/lib/files/cache/scanner.php(170):
OC\Files\Cache\Scanner->scanChildren('file2...', false, 3)
owncloud-06 - [Aug 4 13:58:24] {webdav} Exception: #6
/WEBROOT/lib/files/cache/watcher.php(48):
OC\Files\Cache\Scanner->scan('file2...', false)
owncloud-06 - [Aug 4 13:58:24] {webdav} Exception: #7
/WEBROOT/lib/files/view.php(789):
OC\Files\Cache\Watcher->checkUpdate('file2...')
owncloud-06 - [Aug 4 13:58:24] {webdav} Exception: #8
/WEBROOT/lib/files/filesystem.php(640): OC\Files\View->getFileInfo('/file2...',
true)
owncloud-06 - [Aug 4 13:58:24] {webdav} Exception: #9
/WEBROOT/lib/connector/sabre/directory.php(145):
OC\Files\Filesystem::getFileInfo('/file2...')
owncloud-06 - [Aug 4 13:58:24] {webdav} Exception: #10
/WEBROOT/3rdparty/Sabre/DAV/ObjectTree.php(72):
OC_Connector_Sabre_Directory->getChild('xxx')
owncloud-06 - [Aug 4 13:58:24] {webdav} Exception: #11
/WEBROOT/3rdparty/Sabre/DAV/ObjectTree.php(96):
Sabre_DAV_ObjectTree->getNodeForPath('file2 ...')
owncloud-06 - [Aug 4 13:58:24] {webdav} Exception: #12
/WEBROOT/3rdparty/Sabre/DAV/Server.php(874):
Sabre_DAV_ObjectTree->nodeExists('file2 ...')
owncloud-06 - [Aug 4 13:58:24] {webdav} Exception: #13 [internal function]:
Sabre_DAV_Server->httpPut('file2 ...')
owncloud-06 - [Aug 4 13:58:24] {webdav} Exception: #14
/WEBROOT/3rdparty/Sabre/DAV/Server.php(473): call_user_func(Array, 'file2 ...')
owncloud-06 - [Aug 4 13:58:24] {webdav} Exception: #15
/WEBROOT/3rdparty/Sabre/DAV/Server.php(213):
Sabre_DAV_Server->invokeMethod('PUT', 'file2 ...')
owncloud-06 - [Aug 4 13:58:24] {webdav} Exception: #16
/WEBROOT/apps/files/appinfo/remote.php(56): Sabre_DAV_Server->exec()
owncloud-06 - [Aug 4 13:58:24] {webdav} Exception: #17
/WEBROOT/remote.php(40): require_once(‚/WEBROOT/...')
owncloud-06 - [Aug 4 13:58:24] {webdav} Exception: #18 {main}
The errors occurs on all webservers and for different users. It seems that
there are some users (~100) that are affected more often, where the majority
(~6500) is not affected. Affected users seem to be quite active having more
than several thousand files / directories and some of them even more than
several 100.000 files / directories. Affected users seem to have entries in
oc_filecache with a size of „-1“, which also leads to a wrong quota being
displayed, and in general less entries than files in filesystem. After using
"./occ files:scan“ for the affected users the size and number of entries has
been corrected and the error messages disappeared for some time, but came back
after a while. There seem to be certain conditions triggering those errors but
I could not reproduce or identify them yet. Maybe there are some long running
background tasks (file scans?) interfering with user actions? The "./occ
files:scan“ command took up to 30 - 60 minutes for some users.
I’d like to ask around before opening an issue on github. Maybe someone has an
idea how to solve that?
Some additional infos about our setup:
OC-Version: 5.0.17 (upgraded from 5.0.14)
Database: 3-node MySQL Galera Cluster (Percona XtraDB Cluster Ver 5.5.37), OS:
RHEL 6
Webserver: Apache 2.0 with mod-php 5.3.27, OS: RHEL 6
Apps: Deleted files, Image Viewer, LDAP user and group backend, Media, ODF
Viewer, PDF Viewer, Pictures, Share Files, Text Editor, Updatere, Versions,
Video Viewer, ownCloud Instance Migration, ownCloud dependencies info
Sync clients: At least two of the affected users are using the windows client
v1.6.1
Thanks in advance
Roland Hager
smime.p7s
Description: S/MIME cryptographic signature
_______________________________________________ Devel mailing list [email protected] http://mailman.owncloud.org/mailman/listinfo/devel
