dépôts
/
lhc
/
web
/
wiklou.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge "Revised styling of sister-search sidebar."
[lhc/web/wiklou.git]
/
maintenance
/
deleteArchivedFiles.php
diff --git
a/maintenance/deleteArchivedFiles.php
b/maintenance/deleteArchivedFiles.php
index
d07a8d4
..
af05a81
100644
(file)
--- a/
maintenance/deleteArchivedFiles.php
+++ b/
maintenance/deleteArchivedFiles.php
@@
-54,7
+54,7
@@
class DeleteArchivedFiles extends Maintenance {
$this->output( "Searching for and deleting archived files...\n" );
$res = $dbw->select(
'filearchive',
$this->output( "Searching for and deleting archived files...\n" );
$res = $dbw->select(
'filearchive',
- [ 'fa_id', 'fa_storage_group', 'fa_storage_key', 'fa_sha1' ],
+ [ 'fa_id', 'fa_storage_group', 'fa_storage_key', 'fa_sha1'
, 'fa_name'
],
'',
__METHOD__
);
'',
__METHOD__
);
@@
-67,9
+67,19
@@
class DeleteArchivedFiles extends Maintenance {
continue;
}
continue;
}
+ /** @var LocalFile $file */
+ $file = $repo->newFile( $row->fa_name );
+ try {
+ $file->lock();
+ } catch ( LocalFileLockError $e ) {
+ $this->error( "Could not acquire lock on '{$row->fa_name}', skipping\n" );
+ continue;
+ }
+
$group = $row->fa_storage_group;
$id = $row->fa_id;
$group = $row->fa_storage_group;
$id = $row->fa_id;
- $path = $repo->getZonePath( 'deleted' ) . '/' . $repo->getDeletedHashPath( $key ) . $key;
+ $path = $repo->getZonePath( 'deleted' ) .
+ '/' . $repo->getDeletedHashPath( $key ) . $key;
if ( isset( $row->fa_sha1 ) ) {
$sha1 = $row->fa_sha1;
} else {
if ( isset( $row->fa_sha1 ) ) {
$sha1 = $row->fa_sha1;
} else {
@@
-96,6
+106,7
@@
class DeleteArchivedFiles extends Maintenance {
$this->output( "Notice - file '$key' is still in use\n" );
} elseif ( !$repo->quickPurge( $path ) ) {
$this->output( "Unable to remove file $path, skipping\n" );
$this->output( "Notice - file '$key' is still in use\n" );
} elseif ( !$repo->quickPurge( $path ) ) {
$this->output( "Unable to remove file $path, skipping\n" );
+ $file->unlock();
continue; // don't delete even with --force
} else {
$needForce = false;
continue; // don't delete even with --force
} else {
$needForce = false;
@@
-105,12
+116,14
@@
class DeleteArchivedFiles extends Maintenance {
if ( $this->hasOption( 'force' ) ) {
$this->output( "Got --force, deleting DB entry\n" );
} else {
if ( $this->hasOption( 'force' ) ) {
$this->output( "Got --force, deleting DB entry\n" );
} else {
+ $file->unlock();
continue;
}
}
$count++;
$dbw->delete( 'filearchive', [ 'fa_id' => $id ], __METHOD__ );
continue;
}
}
$count++;
$dbw->delete( 'filearchive', [ 'fa_id' => $id ], __METHOD__ );
+ $file->unlock();
}
$this->commitTransaction( $dbw, __METHOD__ );
}
$this->commitTransaction( $dbw, __METHOD__ );