ID:               31558
 User updated by:  jdw at nearlyfreespeech dot net
 Reported By:      jdw at nearlyfreespeech dot net
-Status:           Feedback
+Status:           Open
 Bug Type:         Reproducible crash
 Operating System: FreeBSD
 PHP Version:      4.3.10
 New Comment:

We have put the -stable code into place on part of our network.  We'll
see what happens.  

I observed the following in "make test."

=====================================================================
FAILED TEST SUMMARY
---------------------------------------------------------------------
pspell basic tests (warning: may fail with pspell/aspell < GNU Aspell
0.50.3) [e
xt/pspell/tests/01pspell_basic.phpt]
Bug #31213 (Sideeffects caused by bug #29493)
[ext/standard/tests/array/bug31213.phpt]                
Bug #30069 (floats as strings used in calculations do not work)
[ext/standard/tests/math/bug30069.phpt]
Bug #27780 (strtotime(+1 xxx) returns a wrong date/time)
[ext/standard/tests/time/bug27780.phpt]
=====================================================================

Of these, only the last one also fails on identical hardware /config
under 4.3.10.  If this matters for a "LATEST" release, I'll report it
separately; not sure of the protocol there.  Otherwise, I'll report
back when we see the problem again.


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

[2005-01-15 00:16:00] [EMAIL PROTECTED]

Please try using this CVS snapshot:

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

First get the stable snapshot.

Configure with --enable-debug (that will actually make PHP more stable
in some cases..)

Then see if you get any weird leaks or something in your logs.
And/or crashes -> generate a GDB backtrace and paste it here.


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

[2005-01-14 23:47:03] jdw at nearlyfreespeech dot net

Our PHP config is at:

http://example.nfshost.com/phpinfo.php

If you need anything beyond that, let me know what, and I'll add it
here.  I'll put the php.ini at the bottom, along with example per-site
overrides.

It's pretty stock.  They only Zend module I've heard of is the
optimizer, and I know we don't use that.  The config line is at the top
of the phpinfo page.

strace does not appear on these FreeBSD boxes and 'httpd -?' does not
show -X as an option, so I may need some guidance as to what you're
hoping to accomplish with that to find the equivalent.  If strace is
like ktrace, then I have to assume that the output generated by the
parent and all child processes would be problematically large.

>From the source code, it looks like we can define a flag that will SEGV
the httpd when this occurs.  Is it possible that this would generate a
useful backtrace?  Would defining this  flag (ZEND_DEBUG, I think) have
other dreadful consequences not consistent with running in production?

Thanks for looking at this!

php.ini:

auto_prepend_file = nfsn_umask_hack.php
upload_tmp_dir = /tmp
max_execution_time = 180
browscap = /nfsn/apps/php/lib/browscap.ini
post_max_size = 10M
safe_mode_exec_dir = ""
safe_mode_include_dir = "/nfsn/apps/php/lib/php/";
safe_mode_allowed_env_vars = TZ
safe_mode_gid = true
upload_max_filesize = 10M
sendmail_path = /nfsn/bin/sendmail -t -i

Example from httpd.conf:
  php_admin_value open_basedir (3 dirs) 
  php_admin_value safe_mode 1
  php_admin_value upload_tmp_dir /nfsn/content/example/tmp
  php_admin_value max_execution_time 180

The file referenced in auto_prepend_file has one line:

<?php umask(0); ?>

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

[2005-01-14 21:39:53] [EMAIL PROTECTED]

What's your PHP configuration? Any Zend modules enabled?
Any chance to replicate the problem with `strace httpd -X`?
The info you've provided is pretty useless ATM as we don't have your
configuration and we're unable to reproduce the problem.

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

[2005-01-14 19:44:06] jdw at nearlyfreespeech dot net

Description:
------------
We have seen this error under the following conditions

- FreeBSD 4-STABLE
- Using Apache 1.3.33
- PHP 4.3.10
- multiple servers
- servers have hundreds of megs of available RAM and gigs of free swap
- httpd processes are well within resource limits
- happens with random PHP scripts, even simple pages that don't use
much memory
- pages that generate the error may work if immediately reloaded
(unchanged with respect to code and data), suggesting that this is not
a per-request memory limit being exceeded
- almost always happens *before* headers are sent
- occurs on pages not using gzip or zlib or output compression or
anything else that would defer content output
- happens with alloc amounts from 7500 bytes to about 1meg, averaging
between 100-300k.
- happens in repetitive "clusters"

Problem persists across "apachectl graceful" but "goes away" (for
awhile at least) after "apachectl restart" so the Apache parent process
may tie in somehow.

Is there a way I can obtain more helpful debug information about this
in a production environment?

Thanks for any help with this!







Reproduce code:
---------------
n/a... virtually any PHP page appears susceptible, which is consistent
with the observation that it occurs before headers are sent.


Expected result:
----------------
PHP script should run.

Actual result:
--------------
Example from Apache error log: (all messages appear in immediate
succession)
FATAL:  erealloc():  Unable to allocate 7500 bytes
FATAL:  erealloc():  Unable to allocate 7500 bytes
FATAL:  erealloc():  Unable to allocate 7500 bytes
FATAL:  erealloc():  Unable to allocate 7500 bytes
FATAL:  erealloc():  Unable to allocate 7500 bytes
FATAL:  erealloc():  Unable to allocate 7500 bytes



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


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

Reply via email to