#23760 [WFx]: using virtual() causes segmentation faults
| From: | php-general at pennysaverusa dot net | Date: | Tue, 27 May 2003 18:43:19 +0000 |
| Subject: | #23760 [WFx]: using virtual() causes segmentation faults | ||
| References: | 1 | Groups: | php.bugs |
| Request: | Send a blank email to php-bugs+get-40515@lists.php.net to get a copy of this message | ||
ID: 23760
User updated by: php-general at pennysaverusa dot net
Reported By: php-general at pennysaverusa dot net
Status: Wont fix
Bug Type: Apache related
Operating System: RedHat 7.3
PHP Version: 4.3.2RC4
New Comment:
I am aware of that.
However, this was not a PHP file. It is merely an html file with a .php
extension.
There is no good reason for it to segfault.
If the policy is that .php files will not be loaded with virtual, then
DON'T LOAD IT. GIVE AN ERROR. DON'T RANDOMLY CRASH.
Random crashes are inexcusable. At least try to make the software
idiot-proof. Give the idiot an error or warning message.
At least, the documentation for virtual should mention this problem if
it's not going to be fixed.
Thank you,
Barry Gould
Previous Comments:
------------------------------------------------------------------------
[2003-05-23 20:53:22] sniper@php.net
FYI: Using virtual() for this is absolutely useless, you really should
be using include(). And as manual says:
"virtual() cannot be used to include a document which is itself a PHP
file."
As otherwise the results are unpredictable..
(I didn't get any crash anyway)
------------------------------------------------------------------------
[2003-05-23 20:38:23] php-general at pennysaverusa dot net
OK.
To reproduce this,
please download:
http://www2.pennysaverusa.com/barry/virtual_php_crash.tgz
Tested on RC3 and RC4 and php4-STABLE-200305222330
all segfault.
Notes:
1 unset session variable is _not_ enough to trigger the crash. 2
variables seems to be sufficient on my server.
The head and footer files are plain html. I named them with .php out of
habit. With .txt, it does not crash.
I know php won't (or at least shouldn't) parse them as php when using
virtual, so I see no reasonable excuse for it to crash.
As I mentioned before, with DBG enabled or disabled, it still
segfaults.
Thanks,
Barry Gould
------------------------------------------------------------------------
[2003-05-22 16:18:24] sniper@php.net
Please provide a complete, self-contained script(s) so we can try and
reproduce this ourselves.
------------------------------------------------------------------------
[2003-05-22 15:56:07] php-general at pennysaverusa dot net
After making a mistake (forgetting to set a session variable), one of
my pages started crashing apache ("child pid 7413 exit signal
Segmentation fault (11)" in apache error log).
After a lot of hair-pulling, it turns out that changing a virtual()
statement to an include() statement fixes the segfaulting. There is no
PHP code in the included file, only html & client-side JS.
This is the error that _should_ display if it doesn't segfault:
Notice: Undefined index: product in
/var/www/html/mercury/order_review.php on line 122
line 122:
<?=$_SESSION["product"];?>
I tried using DBG, but it still segfaults!
This happens in 4.3.2RC4 and RC3
Configure command:
./configure --with-mysql --with-gd --with-zlib-dir=/usr/lib
--with-apxs=/usr/sbin/apxs --with-config-file-path=/etc
--enable-sockets
mysql is version 4.0.12 (mysql Ver 12.18 Distrib 4.0.12, for pc-linux
(i686))
I tried following the backtrace instructions, but I am unable to get a
core dump, and running inside of gdb doesn't seem to let me hit the
webserver.
Server is SMP (Dual P4 Xeon).
Apache is
apache-1.3.27-2 from RedHat's RPM.
/usr/sbin/httpd -DHAVE_ACCESS -DHAVE_PROXY -DHAVE_AUTH_ANON
-DHAVE_ACTIONS -DHAVE_ALIAS -DHAVE_ASIS -DHAVE_AUTH -DHAVE_AUTOINDEX
-DHAVE_AUTH_DB -DHAVE_AUTH_DBM -DHAVE_PHP4 -DHAVE_CERN_META -DHAVE_CGI
-DHAVE_DIGEST -DHAVE_DIR -DHAVE_ENV -DHAVE_EXAMPLE -DHAVE_EXPIRES
-DHAVE_HEADERS -DHAVE_IMAP -DHAVE_INCLUDE -DHAVE_INFO -DHAVE_LOG_AGENT
-DHAVE_LOG_CONFIG -DHAVE_LOG_REFERER -DHAVE_MIME -DHAVE_MIME_MAGIC
-DHAVE_MMAP_STATIC -DHAVE_NEGOTIATION -DHAVE_REWRITE -DHAVE_SETENVIF
-DHAVE_SPELING -DHAVE_STATUS -DHAVE_UNIQUE_ID -DHAVE_USERDIR
-DHAVE_USERTRACK -DHAVE_VHOST_ALIAS -DHAVE_SSL
Thanks,
Barry Gould
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/?id=23760&edit=1