Skip to content

Commit 9e06419

Browse files
author
Dmytro Voskoboinikov
committed
Merge branch 'MAGETWO-81431' into 2.2-bugfixes-280218
2 parents 42fec58 + 00558bb commit 9e06419

File tree

1 file changed

+22
-3
lines changed

1 file changed

+22
-3
lines changed

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

Lines changed: 22 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -182,20 +182,39 @@ public function process()
182182
* @param array $packages
183183
* @param array $packageJob
184184
* @return void
185+
*
186+
* @SuppressWarnings(PHPMD.CyclomaticComplexity)
185187
*/
186188
private function assertAndExecute($name, array & $packages, array $packageJob)
187189
{
188190
/** @var Package $package */
189191
$package = $packageJob['package'];
192+
$dependenciesNotFinished = false;
190193
if ($package->getParent() && $package->getParent() !== $package) {
191194
foreach ($packageJob['dependencies'] as $dependencyName => $dependency) {
192195
if (!$this->isDeployed($dependency)) {
193-
$this->assertAndExecute($dependencyName, $packages, $packages[$dependencyName]);
196+
//If it's not present in $packages then it's already
197+
//in progress so just waiting...
198+
if (!array_key_exists($dependencyName, $packages)) {
199+
$dependenciesNotFinished = true;
200+
} else {
201+
$this->assertAndExecute(
202+
$dependencyName,
203+
$packages,
204+
$packages[$dependencyName]
205+
);
206+
}
194207
}
195208
}
196209
}
197-
if (!$this->isDeployed($package)
198-
&& ($this->maxProcesses < 2 || (count($this->inProgress) < $this->maxProcesses))) {
210+
211+
if (!$dependenciesNotFinished
212+
&& !$this->isDeployed($package)
213+
&& (
214+
$this->maxProcesses < 2
215+
|| (count($this->inProgress) < $this->maxProcesses)
216+
)
217+
) {
199218
unset($packages[$name]);
200219
$this->execute($package);
201220
}

0 commit comments

Comments
 (0)