From:             TorokAlpar at Gmail dot com
Operating system: Windows Xp
PHP version:      5.2.6
PHP Bug Type:     Streams related
Bug description:  data is not transmmited throught pipes created by proc_open 

Description:
------------
 After starting a program (Written in C) with proc_open the pipes opened
seem to be invalid. It looks like no data is transmitted over to the childs
stdin, On a read the script blocks.

Please bear with me, this is my firs bug report, and i am debugging this
for 7 hours now.

here are my modules: 

 [PHP Modules]
bcmath
calendar
com_dotnet
ctype
date
dom
domxml
exif
filter
ftp
gd
gettext
hash
iconv
imap
json
libxml
mbstring
mcrypt
mime_magic
ming
mssql
mysql
mysqli
odbc
paradox
pcre
pdf
PDO
pdo_mssql
pdo_mysql
ps
Reflection
session
SimpleXML
soap
sockets
SPL
SQLite
standard
tokenizer
wddx
xdebug
xml
xmlreader
xmlrpc
xmlwriter
xsl
zip
zlib

[Zend Modules]
Xdebug

Note tha i also tried without Xdebug

Reproduce code:
---------------
$aDescriptorspec = array(
                   0 => array("pipe", "r"),  // stdin is a pipe that the
child will read from
                   1 => array("pipe", "w"),  // stdout is a pipe that the
child will write to
                   2 => array("pipe", "w")   // stderr is a file to write
to
                );
         $aOptions = array('bypass_shell' => true); // doesn't influence
the behavior         
         $rProcess = proc_open('F:\\checkpe-debug2.exe validpe',
$aDescriptorspec, $aPipes, null,null, $aOptions);         
         // $aPipes now looks like this:
         // 0 => writeable handle connected to child stdin
         // 1 => readable handle connected to child stdout       
         if (! is_resource($rProcess)) {

//               stream_set_write_buffer($aPipes[0], 0);
//                fputs($aPipes[0],$sPath."\n",strlen($sPath)+1);
                fwrite($aPipes[0],$sPath."\n");                
//                fflush($aPipes[0]);
                
                sleep(1);                                           
                $sResponse = fread($aPipes[1],2);
                var_dump($sResponse);            
         }   

/*
   NOTE : Commented lines don't influence the result if they are not
commented 
   The executable does work right, tested on the command line
   If you swap the executable with a php script that does the same thing
(reads in file paths separated with \n and writes 2 character responses)
everything functions as expected 
*/


Expected result:
----------------
var_dump  the 2 characters read from the output of the child

Actual result:
--------------
Script hangs , hang caused by the lien that reads: 

$sResponse = fread($aPipes[1],2);



-- 
Edit bug report at http://bugs.php.net/?id=45922&edit=1
-- 
Try a CVS snapshot (PHP 5.2): 
http://bugs.php.net/fix.php?id=45922&r=trysnapshot52
Try a CVS snapshot (PHP 5.3): 
http://bugs.php.net/fix.php?id=45922&r=trysnapshot53
Try a CVS snapshot (PHP 6.0): 
http://bugs.php.net/fix.php?id=45922&r=trysnapshot60
Fixed in CVS:                 http://bugs.php.net/fix.php?id=45922&r=fixedcvs
Fixed in release:             
http://bugs.php.net/fix.php?id=45922&r=alreadyfixed
Need backtrace:               http://bugs.php.net/fix.php?id=45922&r=needtrace
Need Reproduce Script:        http://bugs.php.net/fix.php?id=45922&r=needscript
Try newer version:            http://bugs.php.net/fix.php?id=45922&r=oldversion
Not developer issue:          http://bugs.php.net/fix.php?id=45922&r=support
Expected behavior:            http://bugs.php.net/fix.php?id=45922&r=notwrong
Not enough info:              
http://bugs.php.net/fix.php?id=45922&r=notenoughinfo
Submitted twice:              
http://bugs.php.net/fix.php?id=45922&r=submittedtwice
register_globals:             http://bugs.php.net/fix.php?id=45922&r=globals
PHP 4 support discontinued:   http://bugs.php.net/fix.php?id=45922&r=php4
Daylight Savings:             http://bugs.php.net/fix.php?id=45922&r=dst
IIS Stability:                http://bugs.php.net/fix.php?id=45922&r=isapi
Install GNU Sed:              http://bugs.php.net/fix.php?id=45922&r=gnused
Floating point limitations:   http://bugs.php.net/fix.php?id=45922&r=float
No Zend Extensions:           http://bugs.php.net/fix.php?id=45922&r=nozend
MySQL Configuration Error:    http://bugs.php.net/fix.php?id=45922&r=mysqlcfg

Reply via email to