ID:               27810
 Comment by:       towerofpower at operamail dot com
 Reported By:      renato at galle dot com dot br
 Status:           Closed
 Bug Type:         Apache2 related
 Operating System: FreeBSD-5.2.1-RELEASE-p4
 PHP Version:      4.3.5
 New Comment:

You might want to take a look at...



http://nagoya.apache.org/bugzilla/show_bug.cgi?id=20462



http://nagoya.apache.org/bugzilla/show_bug.cgi?id=17055



This seems very similar.



Apache 2.0.49, mod_ssl (OpenSSL 0.9.7d), PHP 4.3.6, mod_perl 1.99_13,
mod_delfate (zlib 1.1.4), perl 5.8.3



Built with VS.NET 2002 under Win2k, SP4 (except PHP 4.3.6 -- official
binary)



After 'net stop Apache2'...



Apache.exe - Application Error



The instruction at "0x77f92373" referenced memory at "0x00000010". The
memory could not be "written".





We do have a workaround for this problem:

set "LogLevel" under httpd.conf from "warn" to "error"

(this only works for a select set of versions of Apache and PHP)



If Apache2 is not started with "-D SSL" and PHP 4.3.6 is used (over
4.3.5), the app error does not happen.


Previous Comments:
------------------------------------------------------------------------

[2004-04-15 17:45:01] danu at drydog dot com

Here's the diffs between the old (working) version of PCRE and the new
(broken) version of PCRE. Note changes in memory allocation code, which
I believe is causing the problem:



Note: 4.3.4 works (1.29.2.3, 1.132.2.10)

Note: 4.3.5 is broken (1.29.2.5, 1.132.2.16)



diff pcre.4.3.4/config.m4 pcre.4.3.5/config.m4

2c2

< dnl $Id: config.m4,v 1.29.2.3 2003/06/29 00:08:29 andrei Exp $

---

> dnl $Id: config.m4,v 1.29.2.5 2003/12/16 22:14:55 andrei Exp $

Only in pcre.4.3.4: pcrelib

diff pcre.4.3.4/php_pcre.c pcre.4.3.5/php_pcre.c

19c19

< /* $Id: php_pcre.c,v 1.132.2.10 2003/09/12 01:32:38 sniper Exp $ */

---

> /* $Id: php_pcre.c,v 1.132.2.16 2004/02/01 19:56:16 moriyoshi Exp $
*/

108a109,117

> 

>       pcre_malloc = php_pcre_malloc;

>       pcre_free = php_pcre_free;

> 

> #ifdef NO_RECURSE

>       pcre_stack_malloc = php_pcre_malloc;

>       pcre_stack_free = php_pcre_free;

> #endif

>       

124,133d132

< /* {{{ PHP_RINIT_FUNCTION(pcre) */

< static PHP_RINIT_FUNCTION(pcre)

< {

<       pcre_malloc = php_pcre_malloc;

<       pcre_free = php_pcre_free;

<       

<       return SUCCESS;

< }

< /* }}} */

< 

177c176

<       while (isspace((int)*p)) p++;

---

>       while (isspace((int)*(unsigned char *)p)) p++;

186c185

<       if (isalnum((int)delimiter) || delimiter == '\\') {

---

>       if (isalnum((int)*(unsigned char *)&delimiter) || delimiter == '\\')
{

351c350

<       int                              flags;                         /* Match 
control flags */

---

>       long                             flags;                         /* Match 
> control flags */

365c364

<       int                              start_offset = 0;      /* Where the new 
search starts */

---

>       long                             start_offset = 0;      /* Where the new 
> search starts */

432c431

<               int name_cnt, name_size, ni = 0;

---

>               int name_cnt = 0, name_size, ni = 0;

1394a1394,1398

>                       case '\0':

>                               *q++ = '\\';

>                               *q++ = '0';

>                               break;

> 

1526c1530

<       PHP_RINIT(pcre),

---

>       NULL

------------------------------------------------------------------------

[2004-04-15 16:10:22] danu at drydog dot com

NOT fixed with php-4.3.6



I just tried this and it isn't fixed with PHP 4.3.6 either.

------------------------------------------------------------------------

[2004-04-13 19:28:27] loki at arete dot cc

I also tried the latest php4 snapshot, as well as the 

latest php4 release candidate, and CVS HEAD for both 

php4-STABLE and php5.



None of them worked. This bug is not fixed in CVS, in 

snaps, or anywhere. It's not documented as being fixed, 

and the problem is still there.



I finally got fed up and took ext/pcre from php-4.3.4 

and used that instead of what you shipped with php

-5.0.0rc1, and that works fine.

------------------------------------------------------------------------

[2004-04-12 02:55:30] loki at arete dot cc

I just tried the latest php5 snapshot. Problem still 

present.



Is it only fixed in php4 cvs?



Can you tell us what the problem actually is? There's 

still no documentation of it in Changelog or in NEWS.

------------------------------------------------------------------------

[2004-04-11 13:45:25] tomdkat at comcast dot net

I'm seeing this same (or similar) problem with Apache 2.0.49 and
PHP-4.3.6RC3 on Linux.  I'm trying to test mod_perl-1.99-13 with Apache
2.0.49 and PHP-4.3.6RC3 and I get this:



t/perl/hash_attack......................ok                             
     

t/perl/ithreads.........................ok                             
     

t/perl/ithreads2........................ok                             
     

t/preconnection/note....................ok                             
     

t/protocol/echo.........................ok                             
     

t/protocol/echo_filter..................ok                             
     

t/vhost/config..........................ok                             
     

All tests successful, 4 tests skipped.

Files=174, Tests=1076, 277 wallclock secs (158.69 cusr + 18.64 csys =
177.33 CPU)

[warning] server linux:8529 shutdown

[warning] port 8529 still in use...

......done

[  error] oh golly, server dumped core 

[  error] for stacktrace, run: gdb /usr/local/apache-2.0.49/bin/httpd
-core /home/tom/mod_perl-1.99_13/t/core.17388



So, I run the gdb command above and get this backtrace:



(gdb) bt

#0  0x40300860 in ?? ()

#1  0x08071601 in regex_cleanup (preg=0x864c9c8) at util.c:258

#2  0x4011da0d in run_cleanups (cref=0x80a2f28) at apr_pools.c:1951

#3  0x4011d14d in apr_pool_destroy (pool=0x80a2f18) at apr_pools.c:730

#4  0x4011d208 in apr_pool_destroy (pool=0x80a0f10) at apr_pools.c:727

#5  0x0806efc3 in destroy_and_exit_process (process=0x864c9c8,
process_exit_value=140822984) at main.c:208

#6  0x0806fc33 in main (argc=9, argv=0xbfffdb44) at main.c:624

#7  0x42015574 in __libc_start_main () from /lib/tls/libc.so.6

(gdb) 



If I remove the loading of the PHP module in Apache 2.0.49, the
mod_perl_1.99-13 test runs cleanly and no core files get generated. 
:(



Peace...

------------------------------------------------------------------------

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/27810

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

Reply via email to