From:             fmuller at cisco dot com
Operating system: Red Hat 7.3.1
PHP version:      4.3.3
PHP Bug Type:     Program Execution
Bug description:  ping of a non responding host hangs when run from php invoked from 
apache

Description:
------------
The -w [deadline] argument to Red Hat's ping command doesn't work when
apache runs a php page that invokes the ping command that attempts to ping
an unreachable host.

The ping command works fine(it times out) when I run the php script from
the command line, and if I run a similiar perl cgi, but the ping command
doesn't timeout, so the php script hangs when invoked via apache.

I'm hoping that some how apache/php disables the mechanism the ping
command uses to time it's self out, and that there is a work around, or a
fix.

Reproduce code:
---------------
<?
print "<plaintext>\n";
$hosts[] = "127.0.0.1";
$hosts[] = "good address";
$hosts[] = "bad address";
foreach ( $hosts as $host ) {
  $cmd = "/bin/ping -c2 -w2 -q '$host'";  # Red Hat
  print "$cmd\n";
  $ph = popen($cmd,"r");
  while ( $line = fgets($ph,2048) ) {
  }
  $status = pclose($ph);
  if ( $status == 0 ) {
    print "$host: SUCCESS($status)\n";
  }
  else {
    print "$host: FAIL($status)\n";
  }
}
?>

Expected result:
----------------
When run from commandline:
<plaintext>
/bin/ping -c2 -w2 -q '127.0.0.1'
127.0.0.1: SUCCESS(0)
/bin/ping -c2 -w2 -q 'good address'
64.102.40.165: SUCCESS(0)
/bin/ping -c2 -w2 -q 'bad address'
64.102.40.167: FAIL(1)

I'd expect the same thing when run from apache

Actual result:
--------------
When run from apache:
I process associated with the ping hangs and needs to 
be killed.


-- 
Edit bug report at http://bugs.php.net/?id=26648&edit=1
-- 
Try a CVS snapshot (php4):  http://bugs.php.net/fix.php?id=26648&r=trysnapshot4
Try a CVS snapshot (php5):  http://bugs.php.net/fix.php?id=26648&r=trysnapshot5
Fixed in CVS:               http://bugs.php.net/fix.php?id=26648&r=fixedcvs
Fixed in release:           http://bugs.php.net/fix.php?id=26648&r=alreadyfixed
Need backtrace:             http://bugs.php.net/fix.php?id=26648&r=needtrace
Need Reproduce Script:      http://bugs.php.net/fix.php?id=26648&r=needscript
Try newer version:          http://bugs.php.net/fix.php?id=26648&r=oldversion
Not developer issue:        http://bugs.php.net/fix.php?id=26648&r=support
Expected behavior:          http://bugs.php.net/fix.php?id=26648&r=notwrong
Not enough info:            http://bugs.php.net/fix.php?id=26648&r=notenoughinfo
Submitted twice:            http://bugs.php.net/fix.php?id=26648&r=submittedtwice
register_globals:           http://bugs.php.net/fix.php?id=26648&r=globals
PHP 3 support discontinued: http://bugs.php.net/fix.php?id=26648&r=php3
Daylight Savings:           http://bugs.php.net/fix.php?id=26648&r=dst
IIS Stability:              http://bugs.php.net/fix.php?id=26648&r=isapi
Install GNU Sed:            http://bugs.php.net/fix.php?id=26648&r=gnused
Floating point limitations: http://bugs.php.net/fix.php?id=26648&r=float

Reply via email to