Work around HHVM bug with stdin/stdout in proc_open()
authorChad Horohoe <chadh@wikimedia.org>
Wed, 6 Nov 2013 23:31:25 +0000 (15:31 -0800)
committerTim Starling <tstarling@wikimedia.org>
Fri, 8 Nov 2013 04:48:04 +0000 (04:48 +0000)
Bug: 56597
Change-Id: I06122d82fce4567be110ca25010c244dd9269c57

includes/GlobalFunctions.php

index 93a2b02..1eb5c3e 100644 (file)
@@ -2855,6 +2855,15 @@ function wfShellExec( $cmd, &$retval = null, $environ = array(),
        if ( $useLogPipe ) {
                $desc[3] = array( 'pipe', 'w' );
        }
+
+       # TODO/FIXME: This is a bad hack to workaround an HHVM bug that prevents
+       # proc_open() from opening stdin/stdout, so use /dev/null *for now*
+       # See bug 56597 / https://github.com/facebook/hhvm/issues/1247 for more info
+       if ( wfIsHHVM() ) {
+               $desc[0] = array( 'file', '/dev/null', 'r' );
+               $desc[2] = array( 'file', '/dev/null', 'w' );
+       }
+
        $pipes = null;
        $proc = proc_open( $cmd, $desc, $pipes );
        if ( !$proc ) {