diff options
author | Vincent Petry <pvince81@owncloud.com> | 2015-07-01 07:08:47 +0200 |
---|---|---|
committer | Vincent Petry <pvince81@owncloud.com> | 2015-07-01 07:08:47 +0200 |
commit | f76773bd4c7816ffedf3e7b09029367ad82e3093 (patch) | |
tree | 027514d3fd46cfbfcef6b52d8f5d8a6978b94039 /lib | |
parent | 02331652d1b1704a992357735f52e174cea5c341 (diff) | |
parent | 2fe677d0edc40615c3a1af43872058c7539655af (diff) | |
download | nextcloud-server-f76773bd4c7816ffedf3e7b09029367ad82e3093.tar.gz nextcloud-server-f76773bd4c7816ffedf3e7b09029367ad82e3093.zip |
Merge pull request #17259 from owncloud/chunk-cleanupgracefulonlock
Do not try clearing locked files in cache folder
Diffstat (limited to 'lib')
-rw-r--r-- | lib/base.php | 10 | ||||
-rw-r--r-- | lib/private/cache/file.php | 13 |
2 files changed, 18 insertions, 5 deletions
diff --git a/lib/base.php b/lib/base.php index 829c2bcb866..8812d5698f1 100644 --- a/lib/base.php +++ b/lib/base.php @@ -730,8 +730,14 @@ class OC { // NOTE: This will be replaced to use OCP $userSession = self::$server->getUserSession(); $userSession->listen('\OC\User', 'postLogin', function () { - $cache = new \OC\Cache\File(); - $cache->gc(); + try { + $cache = new \OC\Cache\File(); + $cache->gc(); + } catch (\Exception $e) { + // a GC exception should not prevent users from using OC, + // so log the exception + \OC::$server->getLogger()->warning('Exception when running cache gc: ' . $e->getMessage(), array('app' => 'core')); + } }); } } diff --git a/lib/private/cache/file.php b/lib/private/cache/file.php index 32c00125764..69008c7fab5 100644 --- a/lib/private/cache/file.php +++ b/lib/private/cache/file.php @@ -177,9 +177,16 @@ class File implements ICache { } while (($file = readdir($dh)) !== false) { if ($file != '.' and $file != '..') { - $mtime = $storage->filemtime('/' . $file); - if ($mtime < $now) { - $storage->unlink('/' . $file); + try { + $mtime = $storage->filemtime('/' . $file); + if ($mtime < $now) { + $storage->unlink('/' . $file); + } + } catch (\OCP\Lock\LockedException $e) { + // ignore locked chunks + \OC::$server->getLogger()->debug('Could not cleanup locked chunk "' . $file . '"', array('app' => 'core')); + } catch (\OCP\Files\LockNotAcquiredException $e) { + \OC::$server->getLogger()->debug('Could not cleanup locked chunk "' . $file . '"', array('app' => 'core')); } } } |