Add a bin/files purge workflow
Summary: We can lose file data through various means; one reasonable way is if files get deleted from disk with 'local-disk' storage. If data goes missing, Ref T3265. Also, reduce some code duplication. Test Plan: Ran `bin/files purge`, `bin/files migrate`, `bin/files rebuild` with various args. Deleted a file with "local-disk" storage, ran `bin/files purge`, made sure it got picked up. Reviewers: dctrwatson, btrahan Reviewed By: btrahan CC: aran Maniphest Tasks: T3265 Differential Revision: https://secure.phabricator.com/D6068
This commit is contained in:
@@ -429,7 +429,13 @@ final class PhabricatorFile extends PhabricatorFileDAO
|
||||
// If this is the only file using the storage, delete storage
|
||||
if (!$other_file) {
|
||||
$engine = $this->instantiateStorageEngine();
|
||||
$engine->deleteFile($this->getStorageHandle());
|
||||
try {
|
||||
$engine->deleteFile($this->getStorageHandle());
|
||||
} catch (Exception $ex) {
|
||||
// In the worst case, we're leaving some data stranded in a storage
|
||||
// engine, which is fine.
|
||||
phlog($ex);
|
||||
}
|
||||
}
|
||||
|
||||
return $ret;
|
||||
|
||||
Reference in New Issue
Block a user