#32979 [Com]: socket stream opened with stream_socket_client doesnt work with stream_select

2008-03-29 Thread stotty at tvnet dot hu
 ID:   32979
 Comment by:   stotty at tvnet dot hu
 Reported By:  mjpph at stardust dot fi
 Status:   Assigned
 Bug Type: Streams related
 Operating System: Linux (Fedora Core 3)
 PHP Version:  5CVS-2006-01-18 (dev)
 Assigned To:  wez
 New Comment:

Joe Orton has analyzed the bug and found the root cause, see here:

http://marc.info/?l=php-internals&m=120522857529781&w=2


Previous Comments:


[2007-10-08 06:03:08] roberto at spadim dot com dot br

without openssl everythink work ok now, socket and stream
where could i send .php files to develop team check it?



[2007-10-08 05:37:14] roberto at spadim dot com dot br

the problem occur with php 5.2.4



[2007-10-08 05:32:50] roberto at spadim dot com dot br

i'm having the same problem with xeon quad core (prolian HP) on linux
socket_select work ok
but stream_select don't work
i will recompile php without openssl and check what happen



[2006-08-25 19:19:54] stotty at tvnet dot hu

Bug is still present in 5.1.4



[2006-01-31 23:08:00] stotty at tvnet dot hu

I have compared the original socket operations code, and the one in the
xp_ssl.x file, and it seems that even in the non-ssl path the code is
not identical. 

I have fixed four differences, two of which caused some functions to be
called twice, and two of which are casting to *(int*)

I do not claim to know the real cause for the bug, and how these
changes fix the problem, but they do, and they make the code more
consistent, and faster, so I think they should be committed.

Here is the patch that solves this problem form me (against 5.1.2)

cut here---
*** php-5.1.2/ext/openssl/xp_ssl.c  2006-01-01 13:50:10.0 +0100
--- php-5.1.2ssl/ext/openssl/xp_ssl.c   2006-01-31 23:00:58.0
+0100
***
*** 188,194 
} while(retry);

} else {
!   didwrite = php_stream_socket_ops.write(stream, buf, count
TSRMLS_CC);
}

if (didwrite > 0) {
--- 188,195 
} while(retry);

} else {
!   didwrite = php_stream_socket_ops.write(stream, buf, count
TSRMLS_CC); 
!   return didwrite;
}

if (didwrite > 0) {
***
*** 226,231 
--- 227,233 
else
{
nr_bytes = php_stream_socket_ops.read(stream, buf, count
TSRMLS_CC);
+   return nr_bytes;
}
  
if (nr_bytes > 0) {
***
*** 636,642 
  
case PHP_STREAM_AS_FD_FOR_SELECT:
if (ret) {
!   *ret = (void*)sslsock->s.socket;
}
return SUCCESS;
  
--- 638,644 
  
case PHP_STREAM_AS_FD_FOR_SELECT:
if (ret) {
!   *(int*)ret = (void*)sslsock->s.socket;
}
return SUCCESS;
  
***
*** 646,652 
return FAILURE;
}
if (ret) {
!   *ret = (void*)sslsock->s.socket;
}
return SUCCESS;
default:
--- 648,654 
return FAILURE;
}
if (ret) {
!   *(int*)ret = (void*)sslsock->s.socket;
}
return SUCCESS;
default:

cut here---



The remainder of the comments for this report are too long. To view
the rest of the comments, please view the bug report online at
http://bugs.php.net/32979

-- 
Edit this bug report at http://bugs.php.net/?id=32979&edit=1



#32979 [Com]: socket stream opened with stream_socket_client doesnt work with stream_select

2006-08-25 Thread stotty at tvnet dot hu
 ID:   32979
 Comment by:   stotty at tvnet dot hu
 Reported By:  mjpph at stardust dot fi
 Status:   Assigned
 Bug Type: Streams related
 Operating System: Linux (Fedora Core 3)
 PHP Version:  5CVS-2006-01-18 (dev)
 Assigned To:  wez
 New Comment:

Bug is still present in 5.1.4


Previous Comments:


[2006-01-31 23:08:00] stotty at tvnet dot hu

I have compared the original socket operations code, and the one in the
xp_ssl.x file, and it seems that even in the non-ssl path the code is
not identical. 

I have fixed four differences, two of which caused some functions to be
called twice, and two of which are casting to *(int*)

I do not claim to know the real cause for the bug, and how these
changes fix the problem, but they do, and they make the code more
consistent, and faster, so I think they should be committed.

Here is the patch that solves this problem form me (against 5.1.2)

cut here---
*** php-5.1.2/ext/openssl/xp_ssl.c  2006-01-01 13:50:10.0 +0100
--- php-5.1.2ssl/ext/openssl/xp_ssl.c   2006-01-31 23:00:58.0
+0100
***
*** 188,194 
} while(retry);

} else {
!   didwrite = php_stream_socket_ops.write(stream, buf, count
TSRMLS_CC);
}

if (didwrite > 0) {
--- 188,195 
} while(retry);

} else {
!   didwrite = php_stream_socket_ops.write(stream, buf, count
TSRMLS_CC); 
!   return didwrite;
}

if (didwrite > 0) {
***
*** 226,231 
--- 227,233 
else
{
nr_bytes = php_stream_socket_ops.read(stream, buf, count
TSRMLS_CC);
+   return nr_bytes;
}
  
if (nr_bytes > 0) {
***
*** 636,642 
  
case PHP_STREAM_AS_FD_FOR_SELECT:
if (ret) {
!   *ret = (void*)sslsock->s.socket;
}
return SUCCESS;
  
--- 638,644 
  
case PHP_STREAM_AS_FD_FOR_SELECT:
if (ret) {
!   *(int*)ret = (void*)sslsock->s.socket;
}
return SUCCESS;
  
***
*** 646,652 
return FAILURE;
}
if (ret) {
!   *ret = (void*)sslsock->s.socket;
}
return SUCCESS;
default:
--- 648,654 
return FAILURE;
}
if (ret) {
!   *(int*)ret = (void*)sslsock->s.socket;
}
return SUCCESS;
default:

cut here---



[2006-01-30 09:41:28] stotty at tvnet dot hu

I've done some testing, and this bug is definitely triggered by 64 bit+
SSL support.

Bug triggers:
FC4 64 bit + PHP5.1.2 (configure --with-openssl)
FC4 64 bit + PHP 5.1Jan 29 snapshot (configure --with-openssl)

Bug does not trigger:
FC4 64 bit + PHP 5.1.2 (configure)
FC4 64 bit + PHP 5.1Jan29 snapshot (configure)
FC4 32 bit + PHP 5.1.2 (configure --with-openssl)
FC4 32 bit + PHP 5.0.4-10.5 (stock FC RPM)



[2006-01-17 23:08:59] mjpph at stardust dot fi

Doesn't work with the php5.1-200601172130.tar.gz snapshot nor with
5.1.2.



[2005-11-07 00:08:49] [EMAIL PROTECTED]

Please try using this CVS snapshot:

  http://snaps.php.net/php5-latest.tar.gz
 
For Windows:
 
  http://snaps.php.net/win32/php5-win32-latest.zip





[2005-07-28 01:50:49] lew at mailduct dot com

wez -- the problems reported here are all due to a previously fixed bug
which has crept back into PHP.  It has to do with how the PHP library
treats EOF under FreeBSD vs Linux.

You worked on this problem previously...  please take a look at the
currently active Bug #32858 reported by me, as well as your prior fix
in Bug #25649.

Thanks
Lew Payne



The remainder of the comments for this report are too long. To view
the rest of the comments, please view the bug report online at
http://bugs.php.net/32979

-- 
Edit this bug report at http://bugs.php.net/?id=32979&edit=1


#32979 [Com]: socket stream opened with stream_socket_client doesnt work with stream_select

2006-01-31 Thread stotty at tvnet dot hu
 ID:   32979
 Comment by:   stotty at tvnet dot hu
 Reported By:  mjpph at stardust dot fi
 Status:   Assigned
 Bug Type: Streams related
 Operating System: Linux (Fedora Core 3)
 PHP Version:  5CVS-2006-01-18 (dev)
 Assigned To:  wez
 New Comment:

I have compared the original socket operations code, and the one in the
xp_ssl.x file, and it seems that even in the non-ssl path the code is
not identical. 

I have fixed four differences, two of which caused some functions to be
called twice, and two of which are casting to *(int*)

I do not claim to know the real cause for the bug, and how these
changes fix the problem, but they do, and they make the code more
consistent, and faster, so I think they should be committed.

Here is the patch that solves this problem form me (against 5.1.2)

cut here---
*** php-5.1.2/ext/openssl/xp_ssl.c  2006-01-01 13:50:10.0 +0100
--- php-5.1.2ssl/ext/openssl/xp_ssl.c   2006-01-31 23:00:58.0
+0100
***
*** 188,194 
} while(retry);

} else {
!   didwrite = php_stream_socket_ops.write(stream, buf, count
TSRMLS_CC);
}

if (didwrite > 0) {
--- 188,195 
} while(retry);

} else {
!   didwrite = php_stream_socket_ops.write(stream, buf, count
TSRMLS_CC); 
!   return didwrite;
}

if (didwrite > 0) {
***
*** 226,231 
--- 227,233 
else
{
nr_bytes = php_stream_socket_ops.read(stream, buf, count
TSRMLS_CC);
+   return nr_bytes;
}
  
if (nr_bytes > 0) {
***
*** 636,642 
  
case PHP_STREAM_AS_FD_FOR_SELECT:
if (ret) {
!   *ret = (void*)sslsock->s.socket;
}
return SUCCESS;
  
--- 638,644 
  
case PHP_STREAM_AS_FD_FOR_SELECT:
if (ret) {
!   *(int*)ret = (void*)sslsock->s.socket;
}
return SUCCESS;
  
***
*** 646,652 
return FAILURE;
}
if (ret) {
!   *ret = (void*)sslsock->s.socket;
}
return SUCCESS;
default:
--- 648,654 
return FAILURE;
}
if (ret) {
!   *(int*)ret = (void*)sslsock->s.socket;
}
return SUCCESS;
default:

cut here---


Previous Comments:


[2006-01-30 09:41:28] stotty at tvnet dot hu

I've done some testing, and this bug is definitely triggered by 64 bit+
SSL support.

Bug triggers:
FC4 64 bit + PHP5.1.2 (configure --with-openssl)
FC4 64 bit + PHP 5.1Jan 29 snapshot (configure --with-openssl)

Bug does not trigger:
FC4 64 bit + PHP 5.1.2 (configure)
FC4 64 bit + PHP 5.1Jan29 snapshot (configure)
FC4 32 bit + PHP 5.1.2 (configure --with-openssl)
FC4 32 bit + PHP 5.0.4-10.5 (stock FC RPM)



[2006-01-17 23:08:59] mjpph at stardust dot fi

Doesn't work with the php5.1-200601172130.tar.gz snapshot nor with
5.1.2.



[2005-11-07 00:08:49] [EMAIL PROTECTED]

Please try using this CVS snapshot:

  http://snaps.php.net/php5-latest.tar.gz
 
For Windows:
 
  http://snaps.php.net/win32/php5-win32-latest.zip





[2005-07-28 01:50:49] lew at mailduct dot com

wez -- the problems reported here are all due to a previously fixed bug
which has crept back into PHP.  It has to do with how the PHP library
treats EOF under FreeBSD vs Linux.

You worked on this problem previously...  please take a look at the
currently active Bug #32858 reported by me, as well as your prior fix
in Bug #25649.

Thanks
Lew Payne



[2005-05-30 22:11:28] mjpph at stardust dot fi

I haven't had problems with different kernels. Only the combination of
x86_64, stream_socket_client() or stream_socket_server(),
stream_select() and PHP OpenSSL-support seem to reproduce this every
time.



The remainder of the comments for this report are too long. To view
the rest of the comments, please view the bug report online at
http://bugs.php.net/329

#32979 [Com]: socket stream opened with stream_socket_client doesnt work with stream_select

2006-01-30 Thread stotty at tvnet dot hu
 ID:   32979
 Comment by:   stotty at tvnet dot hu
 Reported By:  mjpph at stardust dot fi
 Status:   Assigned
 Bug Type: Streams related
 Operating System: Linux (Fedora Core 3)
 PHP Version:  5CVS-2006-01-18 (dev)
 Assigned To:  wez
 New Comment:

I've done some testing, and this bug is definitely triggered by 64 bit+
SSL support.

Bug triggers:
FC4 64 bit + PHP5.1.2 (configure --with-openssl)
FC4 64 bit + PHP 5.1Jan 29 snapshot (configure --with-openssl)

Bug does not trigger:
FC4 64 bit + PHP 5.1.2 (configure)
FC4 64 bit + PHP 5.1Jan29 snapshot (configure)
FC4 32 bit + PHP 5.1.2 (configure --with-openssl)
FC4 32 bit + PHP 5.0.4-10.5 (stock FC RPM)


Previous Comments:


[2006-01-17 23:08:59] mjpph at stardust dot fi

Doesn't work with the php5.1-200601172130.tar.gz snapshot nor with
5.1.2.



[2005-11-07 00:08:49] [EMAIL PROTECTED]

Please try using this CVS snapshot:

  http://snaps.php.net/php5-latest.tar.gz
 
For Windows:
 
  http://snaps.php.net/win32/php5-win32-latest.zip





[2005-07-28 01:50:49] lew at mailduct dot com

wez -- the problems reported here are all due to a previously fixed bug
which has crept back into PHP.  It has to do with how the PHP library
treats EOF under FreeBSD vs Linux.

You worked on this problem previously...  please take a look at the
currently active Bug #32858 reported by me, as well as your prior fix
in Bug #25649.

Thanks
Lew Payne



[2005-05-30 22:11:28] mjpph at stardust dot fi

I haven't had problems with different kernels. Only the combination of
x86_64, stream_socket_client() or stream_socket_server(),
stream_select() and PHP OpenSSL-support seem to reproduce this every
time.



[2005-05-30 21:57:34] fox dot 69 at gmx dot net

i experience a similar problem since the latest standard kernel update
with yum (host.domain.com point to the main server IP) :

http://host.domain.com";;
$fp = fopen ($url,"r");
$buffer=fread($fp,8192);
fclose($fp);
echo $buffer;
?>

booted with kernel-2.6.11-1.14_FC3 package: OK
booted with kernel-2.6.11-1.27_FC3 package: NOT OK (timeout)

NOTE: but only if "host.domain.com" point to the executing host itself
- same with "localhost" - for all others it seem to be fine



The remainder of the comments for this report are too long. To view
the rest of the comments, please view the bug report online at
http://bugs.php.net/32979

-- 
Edit this bug report at http://bugs.php.net/?id=32979&edit=1


#34203 [NEW]: PHP crashes on PDO prepared query

2005-08-21 Thread stotty at tvnet dot hu
From: stotty at tvnet dot hu
Operating system: Linux Fedora Core 4
PHP version:  5.1.0RC1
PHP Bug Type: PDO related
Bug description:  PHP crashes on PDO prepared query

Description:

If a prepared query with named parameters has one of the paramteres used
more than once, then PHP fails with a realloc failure, without giving any
useable error message.

This bug triggers only if called from within a class member function

Reproduce code:
---
setAttribute(PDO_ATTR_ERRMODE, PDO_ERRMODE_EXCEPTION);
  
  class Crashme {
 
public function crashfunction($one, $two) {
global $dbc;
$weight_check_stmt=$dbc->prepare("
select 
(select total_cpu_weight from domain0 where id= :domain0_id) -
(select cpu_weight from domain_template where id= :template_id) 
-
sum(cpu_weight)
as result 
from domain where domain0_id = :domain0_id");
$weight_check_stmt->bindParam(":domain0_id", $one);
$weight_check_stmt->bindParam(":template_id", $two);
$weight_check_stmt->execute();
}
  }
  
  $crashclass = new Crashme;
  $crashclass->crashfunction(1,2);
?>


Expected result:

I exepected to get a meaningfull error message, describing the problem,
like I get when the above query is not run from a member function) (like
in bug 33886)


Actual result:
--
I get this in the http error log:

FATAL:  erealloc():  Unable to allocate 4 bytes


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