|
php.net | support | documentation | report a bug | advanced search | search howto | statistics | random bug | login |
[2021-06-18 09:18 UTC] kochnorman at rocketmail dot com
Description:
------------
Sorry first, I use PHP 7.3.19-1~deb10u1, but I could not choose this version.
I encountered problems with a very larges script I have. The minimal (not-)working example I could create can be created and tested with
perl -e 'sub rstr { my $len = shift; return join("", map { (a..z,A..Z,0..9)[rand 67] } 0..$len) }; print "<?php\n"; my $subname = "a"; foreach (1 .. 1000) { print qq#function test_$subname () { return "#.rstr(100).qq#"; }\n#; $subname++; }' > test.php; php -l test.php
The file compiles, but then crashes with
[1] 32247 segmentation fault php -l test.php
I believe a 1000-line-file should not cause this error.
Trying to reduce the length of the file, I even get another message:
perl -e 'sub rstr { my $len = shift; return join("", map { (a..z,A..Z,0..9)[rand 67] } 0..$len) }; print "<?php\n"; my $subname = "a"; foreach (1 .. 1000) { print qq#function test_$subname () { return "#.rstr(100).qq#"; }\n#; $subname++; }' > test.php; php -l test.php
No syntax errors detected in test.php
zend_mm_heap corrupted
I have no idea why this happens.
I can work around this problem by splitting a large file into several smaller ones and then including the smaller files.
Test script:
---------------
Segfault:
perl -e 'sub rstr { my $len = shift; return join("", map { (a..z,A..Z,0..9)[rand 67] } 0..$len) }; print "<?php\n"; my $subname = "a"; foreach (1 .. 1000) { print qq#function test_$subname () { return "#.rstr(100).qq#"; }\n#; $subname++; }' > test.php; php -l test.php
zend_mm_heap corrupted:
perl -e 'sub rstr { my $len = shift; return join("", map { (a..z,A..Z,0..9)[rand 67] } 0..$len) }; print "<?php\n"; my $subname = "a"; foreach (1 .. 1000) { print qq#function test_$subname () { return "#.rstr(100).qq#"; }\n#; $subname++; }' > test.php; php -l test.php
PatchesPull RequestsHistoryAllCommentsChangesGit/SVN commits
|
|||||||||||||||||||||||||||||||||||||
Copyright © 2001-2025 The PHP GroupAll rights reserved. |
Last updated: Sun Nov 02 18:00:01 2025 UTC |
I cannot easily update, though I will try and will post when I'm done. I've disabled xdebug and it doesn't appear in the list anymore. But the segfault still persists. The bt is: Core was generated by `php -l test.php'. Program terminated with signal SIGSEGV, Segmentation fault. #0 0x0000556d88639bb7 in destroy_op_array () (gdb) bt #0 0x0000556d88639bb7 in destroy_op_array () #1 0x0000556d8865410d in zend_hash_destroy () #2 0x0000556d8864498d in ?? () #3 0x0000556d885e52aa in php_module_shutdown () #4 0x0000556d884aab77 in ?? () #5 0x00007fdad0e7809b in __libc_start_main (main=0x556d884aa6d0, argc=3, argv=0x7fff647f6918, init=<optimized out>, fini=<optimized out>, rtld_fini=<optimized out>, stack_end=0x7fff647f6908) at ../csu/libc-start.c:308 #6 0x0000556d884aac7a in _start ()