Page MenuHomePhabricator

D13504.id32659.diff
No OneTemporary

D13504.id32659.diff

Index: src/applications/drydock/worker/DrydockAllocatorWorker.php
===================================================================
--- src/applications/drydock/worker/DrydockAllocatorWorker.php
+++ src/applications/drydock/worker/DrydockAllocatorWorker.php
@@ -104,6 +104,12 @@
continue;
}
+ if ($lease->getAttribute('resourceID') !== null &&
+ $candidate->getID() !== $lease->getAttribute('resourceID')) {
+ unset($pool[$key]);
+ continue;
+ }
+
$blueprint = $blueprints[$candidate->getBlueprintPHID()];
$implementation = $blueprint->getImplementation();
@@ -144,6 +150,12 @@
continue;
}
+ if ($lease->getAttribute('resourceID') !== null &&
+ $candidate->getID() !== $lease->getAttribute('resourceID')) {
+ unset($pool[$key]);
+ continue;
+ }
+
$blueprint = $blueprints[$candidate->getBlueprintPHID()];
$implementation = $blueprint->getImplementation();
@@ -173,6 +185,21 @@
if ($resource) {
$lock->unlock();
} else {
+ if ($lease->getAttribute('resourceID') !== null) {
+ $reason = pht(
+ 'Could not lease against specific resource %d.',
+ $lease->getAttribute('resourceID'));
+
+ $lease->setStatus(DrydockLeaseStatus::STATUS_BROKEN);
+ $lease->setBrokenReason($reason);
+ $lease->save();
+
+ $this->logToDrydock($reason);
+
+ $lock->unlock();
+ return;
+ }
+
$blueprints = id(new DrydockBlueprintQuery())
->setViewer(PhabricatorUser::getOmnipotentUser())
->execute();

File Metadata

Mime Type
text/plain
Expires
Tue, Mar 18, 12:58 PM (2 w, 1 d ago)
Storage Engine
blob
Storage Format
Encrypted (AES-256-CBC)
Storage Handle
7709866
Default Alt Text
D13504.id32659.diff (1 KB)

Event Timeline