#28396 [Opn]: crash when memory limit reached

From: Date: Fri, 14 May 2004 15:05:34 +0000
Subject: #28396 [Opn]: crash when memory limit reached
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-59634@lists.php.net to get a copy of this message
ID: 28396 User updated by: operator at infomaniak dot ch Reported By: operator at infomaniak dot ch Status: Open Bug Type: Reproducible crash Operating System: linux glibc 2.2 PHP Version: 4.3.6 New Comment: Finaly, this won't segfault, you were right. Then, it appears that in some rare conditions, just after memory_limit reached, segfault comes. But, this may be because of any other extension. For this, could you tell how to compile seperate extensions (ala phpize etc...) with debug enabled ? with a core compiled with --enable-debug, extensions still get build without debug... Previous Comments: ------------------------------------------------------------------------ [2004-05-14 16:41:46] operator at infomaniak dot ch Have you really tried to put this script and run it with a php_admin_value memory_limit 512000 ? ------------------------------------------------------------------------ [2004-05-14 15:33:46] iliaa@php.net No crashes here and memory analysis tools show no suspicious operations. ------------------------------------------------------------------------ [2004-05-14 14:05:59] operator at infomaniak dot ch Alright. This is not true. Memory allocation failing due to external bad behaviour must cause segfault, not because of memory_limit reached. Then, I get exactly the same result without --enable-debug . For info, crash occurs exactly when memory_limit is reached. (output just before crash: 509528 510552 511576 with a memory limit at 512000 output got without --enable-debug) ) ------------------------------------------------------------------------ [2004-05-14 13:46:19] wez@php.net This is expected behaviour; in a debug build, when memory allocation fails, we force a segfault. Don't run debug builds in production. ------------------------------------------------------------------------ [2004-05-14 13:23:01] operator at infomaniak dot ch Description: ------------ When memory limit is reached, this irremdiably cause a segfault. -- php with no extensions at all compiled with: --disable-all \ --with-apxs=/usr/sbin/apxs \ --enable-sigchild \ --disable-ipv6 \ --enable-memory-limit \ --with-config-file-path=/etc/httpd \ --disable-static \ --enable-shared \ --enable-debug reproductible with any memory_limit value (tried from 512 bytes to 8M) Reproduce code: --------------- <? $i=1; while($i++) { $a .= "."; if (($i % 1024) == 0) { echo memory_get_usage() . "<br/>\n"; flush(); } } ?> Expected result: ---------------- some kind of "memory exhausted" message Actual result: -------------- apache thread segfault ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/?id=28396&edit=1

« previous php.bugs (#59634) next »