Shell\Command: Better walltime fallback
authorMax Semenik <maxsem.wiki@gmail.com>
Mon, 16 Oct 2017 22:30:49 +0000 (15:30 -0700)
committerLegoktm <legoktm@member.fsf.org>
Tue, 17 Oct 2017 03:43:09 +0000 (03:43 +0000)
Previously, it assumed that the only way times could be overridden is to
reduce the limits - which isn't the case for video transcoding.

Bug: T178314
Change-Id: I492a44f280a36ee666e9963788caac2bbc6bc6f3

includes/shell/Command.php

index d5a1bb3..4fc282c 100644 (file)
@@ -135,6 +135,11 @@ class Command {
         * @return $this
         */
        public function limits( array $limits ) {
+               if ( !isset( $limits['walltime'] ) && isset( $limits['time'] ) ) {
+                       // Emulate the behavior of old wfShellExec() where walltime fell back on time
+                       // if the latter was overridden and the former wasn't
+                       $limits['walltime'] = $limits['time'];
+               }
                $this->limits = $limits + $this->limits;
 
                return $this;
@@ -227,8 +232,6 @@ class Command {
                if ( is_executable( '/bin/bash' ) ) {
                        $time = intval( $this->limits['time'] );
                        $wallTime = intval( $this->limits['walltime'] );
-                       // for b/c, wall time falls back to time
-                       $wallTime = min( $time, $wallTime );
                        $mem = intval( $this->limits['memory'] );
                        $filesize = intval( $this->limits['filesize'] );