{"action":"created","issue":{"url":"https://api.github.com/repos/owncloud/core/issues/16576","labels_url":"https://api.github.com/repos/owncloud/core/issues/16576/labels{/name}","comments_url":"https://api.github.com/repos/owncloud/core/issues/16576/comments","events_url":"https://api.github.com/repos/owncloud/core/issues/16576/events","html_url":"https://github.com/owncloud/core/pull/16576","id":81404177,"number":16576,"title":"Wrap cache entries removal in a transaction","user":{"login":"PVince81","id":277525,"avatar_url":"https://avatars.githubusercontent.com/u/277525?v=3","gravatar_id":"","url":"https://api.github.com/users/PVince81","html_url":"https://github.com/PVince81","followers_url":"https://api.github.com/users/PVince81/followers","following_url":"https://api.github.com/users/PVince81/following{/other_user}","gists_url":"https://api.github.com/users/PVince81/gists{/gist_id}","starred_url":"https://api.github.com/users/PVince81/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/PVince81/subscriptions","organizations_url":"https://api.github.com/users/PVince81/orgs","repos_url":"https://api.github.com/users/PVince81/repos","events_url":"https://api.github.com/users/PVince81/events{/privacy}","received_events_url":"https://api.github.com/users/PVince81/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/owncloud/core/labels/3%20-%20To%20Review","name":"3 - To Review","color":"ededed"}],"state":"open","locked":false,"assignee":null,"milestone":{"url":"https://api.github.com/repos/owncloud/core/milestones/31","html_url":"https://github.com/owncloud/core/milestones/8.1-current","labels_url":"https://api.github.com/repos/owncloud/core/milestones/31/labels","id":912160,"number":31,"title":"8.1-current","description":"","creator":{"login":"MorrisJobke","id":245432,"avatar_url":"https://avatars.githubusercontent.com/u/245432?v=3","gravatar_id":"","url":"https://api.github.com/users/MorrisJobke","html_url":"https://github.com/MorrisJobke","followers_url":"https://api.github.com/users/MorrisJobke/followers","following_url":"https://api.github.com/users/MorrisJobke/following{/other_user}","gists_url":"https://api.github.com/users/MorrisJobke/gists{/gist_id}","starred_url":"https://api.github.com/users/MorrisJobke/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/MorrisJobke/subscriptions","organizations_url":"https://api.github.com/users/MorrisJobke/orgs","repos_url":"https://api.github.com/users/MorrisJobke/repos","events_url":"https://api.github.com/users/MorrisJobke/events{/privacy}","received_events_url":"https://api.github.com/users/MorrisJobke/received_events","type":"User","site_admin":false},"open_issues":107,"closed_issues":1237,"state":"open","created_at":"2014-12-22T12:04:01Z","updated_at":"2015-05-27T11:11:51Z","due_on":"2015-04-02T22:00:00Z","closed_at":null},"comments":3,"created_at":"2015-05-27T11:10:14Z","updated_at":"2015-05-27T11:21:04Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/owncloud/core/pulls/16576","html_url":"https://github.com/owncloud/core/pull/16576","diff_url":"https://github.com/owncloud/core/pull/16576.diff","patch_url":"https://github.com/owncloud/core/pull/16576.patch"},"body":"In case there is a rename transaction in progress, the scanner will not\r\nbe able to delete the affected entries in case it detects the discrepancy\r\non disk.\r\n\r\nAlso fixed scanner to fail gracefully in case an error occurs during the\r\nremoval of a cache entry.\r\n\r\nSteps to reproduce here: https://github.com/owncloud/core/issues/13391#issuecomment-105525369\r\nFixes https://github.com/owncloud/core/issues/13391\r\n\r\nThis helps preventing the data loss, but might not be the optimal solution in case the race condition happens outside of the DB code. But the DB code seems to be the most likely to cause the cache entries to disappear.\r\n\r\nNote: we'll still need to invest some time to handle the failure cases https://github.com/owncloud/core/issues/16445.\r\n\r\nPlease review @icewind1991 @MorrisJobke @karlitschek @DeepDiver1975 @nickvergessen @LukasReschke \r\n"},"comment":{"url":"https://api.github.com/repos/owncloud/core/issues/comments/105874669","html_url":"https://github.com/owncloud/core/pull/16576#issuecomment-105874669","issue_url":"https://api.github.com/repos/owncloud/core/issues/16576","id":105874669,"user":{"login":"PVince81","id":277525,"avatar_url":"https://avatars.githubusercontent.com/u/277525?v=3","gravatar_id":"","url":"https://api.github.com/users/PVince81","html_url":"https://github.com/PVince81","followers_url":"https://api.github.com/users/PVince81/followers","following_url":"https://api.github.com/users/PVince81/following{/other_user}","gists_url":"https://api.github.com/users/PVince81/gists{/gist_id}","starred_url":"https://api.github.com/users/PVince81/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/PVince81/subscriptions","organizations_url":"https://api.github.com/users/PVince81/orgs","repos_url":"https://api.github.com/users/PVince81/repos","events_url":"https://api.github.com/users/PVince81/events{/privacy}","received_events_url":"https://api.github.com/users/PVince81/received_events","type":"User","site_admin":false},"created_at":"2015-05-27T11:21:04Z","updated_at":"2015-05-27T11:21:04Z","body":"If we had used transactions in the first place, that's probably the way we'd have done it: group the updates that match together within a transaction.\r\n\r\nYes, curious to see how this works with SQLite and co.\r\nThis will need extensive testing.\r\n\r\nI did my tests on MariaDB and it worked fine there."}}