Skip to content

Commit 4926817

Browse files
committed
MAGETWO-90139: Static content deployment failed with compact strategy and several jobs
1 parent eb09566 commit 4926817

File tree

1 file changed

+28
-3
lines changed

1 file changed

+28
-3
lines changed

app/code/Magento/Deploy/Process/Queue.php

Lines changed: 28 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -187,15 +187,40 @@ private function assertAndExecute($name, array & $packages, array $packageJob)
187187
{
188188
/** @var Package $package */
189189
$package = $packageJob['package'];
190+
$dependenciesNotFinished = false;
190191
if ($package->getParent() && $package->getParent() !== $package) {
191192
foreach ($packageJob['dependencies'] as $dependencyName => $dependency) {
192193
if (!$this->isDeployed($dependency)) {
193-
$this->assertAndExecute($dependencyName, $packages, $packages[$dependencyName]);
194+
//If it's not present in $packages then it's already
195+
//in progress so just waiting...
196+
if (!array_key_exists($dependencyName, $packages)) {
197+
$dependenciesNotFinished = true;
198+
} else {
199+
$this->assertAndExecute(
200+
$dependencyName,
201+
$packages,
202+
$packages[$dependencyName]
203+
);
204+
}
194205
}
195206
}
196207
}
197-
if (!$this->isDeployed($package)
198-
&& ($this->maxProcesses < 2 || (count($this->inProgress) < $this->maxProcesses))) {
208+
$this->executePackage($package, $name, $packages, $dependenciesNotFinished);
209+
}
210+
211+
/**
212+
* @param Package $package
213+
* @param string $name
214+
* @param array $packages
215+
* @param bool $dependenciesNotFinished
216+
* @return void
217+
*/
218+
private function executePackage(Package $package, $name, array &$packages, $dependenciesNotFinished)
219+
{
220+
if (!$dependenciesNotFinished
221+
&& !$this->isDeployed($package)
222+
&& ($this->maxProcesses < 2 || (count($this->inProgress) < $this->maxProcesses))
223+
) {
199224
unset($packages[$name]);
200225
$this->execute($package);
201226
}

0 commit comments

Comments
 (0)