php.net |  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Bug #33379 Running a freshly compiled PHP 5.1 snapshot from command line gives segfault.
Submitted: 2005-06-17 05:11 UTC Modified: 2005-06-18 00:19 UTC
From: nickj-phpbugs at nickj dot org Assigned:
Status: Not a bug Package: Reproducible crash
PHP Version: 5CVS-2005-06-17 (dev) OS: Debian Woody GNU/Linux 3.0r6
Private report: No CVE-ID: None
 [2005-06-17 05:11 UTC] nickj-phpbugs at nickj dot org
Description:
------------
Compiling PHP 5.1-dev on Woody:

[Machine is an Pentium-3 running Debian GNU/Linux Woody 3.0r6, plus the backport of the 2.6 kernel from backports.org]

wget http://snaps.php.net/php5-200506170030.tar.bz2
bunzip2 php5-200506170030.tar.bz2
tar xfv php5-200506170030.tar 

# steps for building the standalone PHP executable:
cd php5-200506170030

# configure: 
# Note: need to disable all the xml stuff as wants a quite recent version on libxml that an old debian/woody server install simply doesn't have.
./configure --disable-libxml -disable-dom -disable-simplexml -disable-xml --without-pear

# Now compile:
make clean
make 

# use the recommended php.ini
cp ./php.ini-recommended ./sapi/cli/php.ini

# Finally update ownership to stop "unowned files" error messages:

chown -R root.root ~/tmp/

# Should get a compiled PHP5.1 executable in sapi/cli/php
# Run it:
./sapi/cli/php

Results in a seg fault:
========================================================
ludo:~/tmp/php-5.1-dev/php5-200506170030/sapi/cli# ./php
Segmentation fault
ludo:~/tmp/php-5.1-dev/php5-200506170030/sapi/cli# 
========================================================

Strace output:
========================================================
ludo:~/tmp/php-5.1-dev/php5-200506170030/sapi/cli# strace ./php
execve("./php", ["./php"], [/* 18 vars */]) = 0
uname({sys="Linux", node="ludo", ...})  = 0
brk(0)                                  = 0x82e9000
open("/etc/ld.so.preload", O_RDONLY)    = -1 ENOENT (No such file or directory)
open("/etc/ld.so.cache", O_RDONLY)      = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=10970, ...}) = 0
old_mmap(NULL, 10970, PROT_READ, MAP_PRIVATE, 3, 0) = 0x40014000
close(3)                                = 0
open("/lib/libcrypt.so.1", O_RDONLY)    = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\320\t\0"..., 1024) = 1024
fstat64(3, {st_mode=S_IFREG|0644, st_size=19136, ...}) = 0
old_mmap(NULL, 182044, PROT_READ|PROT_EXEC, MAP_PRIVATE, 3, 0) = 0x40017000
mprotect(0x4001c000, 161564, PROT_NONE) = 0
old_mmap(0x4001c000, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3, 0x4000) = 0x4001c000
old_mmap(0x4001d000, 157468, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x4001d000
close(3)                                = 0
open("/lib/libresolv.so.2", O_RDONLY)   = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\300\'\0"..., 1024) = 1024
fstat64(3, {st_mode=S_IFREG|0644, st_size=56480, ...}) = 0
old_mmap(NULL, 65312, PROT_READ|PROT_EXEC, MAP_PRIVATE, 3, 0) = 0x40044000
mprotect(0x40051000, 12064, PROT_NONE)  = 0
old_mmap(0x40051000, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3, 0xd000) = 0x40051000
old_mmap(0x40052000, 7968, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x40052000
close(3)                                = 0
open("/lib/libm.so.6", O_RDONLY)        = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\2007\0"..., 1024) = 1024
fstat64(3, {st_mode=S_IFREG|0644, st_size=130088, ...}) = 0
old_mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x40054000
old_mmap(NULL, 132708, PROT_READ|PROT_EXEC, MAP_PRIVATE, 3, 0) = 0x40055000
mprotect(0x40075000, 1636, PROT_NONE)   = 0
old_mmap(0x40075000, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3, 0x1f000) = 0x40075000
close(3)                                = 0
open("/lib/libdl.so.2", O_RDONLY)       = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0T\27\0\000"..., 1024) = 1024
fstat64(3, {st_mode=S_IFREG|0644, st_size=8008, ...}) = 0
old_mmap(NULL, 11004, PROT_READ|PROT_EXEC, MAP_PRIVATE, 3, 0) = 0x40076000
mprotect(0x40078000, 2812, PROT_NONE)   = 0
old_mmap(0x40078000, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3, 0x1000) = 0x40078000
close(3)                                = 0
open("/lib/libnsl.so.1", O_RDONLY)      = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0 ;\0\000"..., 1024) = 1024
fstat64(3, {st_mode=S_IFREG|0644, st_size=69472, ...}) = 0
old_mmap(NULL, 80988, PROT_READ|PROT_EXEC, MAP_PRIVATE, 3, 0) = 0x40079000
mprotect(0x4008a000, 11356, PROT_NONE)  = 0
old_mmap(0x4008a000, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3, 0x10000) = 0x4008a000
old_mmap(0x4008b000, 7260, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x4008b000
close(3)                                = 0
open("/lib/libc.so.6", O_RDONLY)        = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\30\222"..., 1024) = 1024
fstat64(3, {st_mode=S_IFREG|0755, st_size=1153784, ...}) = 0
old_mmap(NULL, 1166560, PROT_READ|PROT_EXEC, MAP_PRIVATE, 3, 0) = 0x4008d000
mprotect(0x401a0000, 40160, PROT_NONE)  = 0
old_mmap(0x401a0000, 24576, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3, 0x113000) = 0x401a0000
old_mmap(0x401a6000, 15584, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x401a6000
close(3)                                = 0
munmap(0x40014000, 10970)               = 0
rt_sigaction(SIGPIPE, {SIG_IGN}, {SIG_DFL}, 8) = 0
brk(0)                                  = 0x82e9000
brk(0x82e9038)                          = 0x82e9038
brk(0x82ea000)                          = 0x82ea000
getcwd("/root/tmp/php-5.1-dev/php5-200506170030/sapi/cli", 4096) = 49
brk(0x82eb000)                          = 0x82eb000
brk(0x82ec000)                          = 0x82ec000
brk(0x82ed000)                          = 0x82ed000
open("/etc/localtime", O_RDONLY)        = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=785, ...}) = 0
old_mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x40014000
read(3, "TZif\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\4\0\0\0\4\0"..., 4096) = 785
close(3)                                = 0
munmap(0x40014000, 4096)                = 0
brk(0x82f2000)                          = 0x82f2000
open(".//php-cli.ini", O_RDONLY)        = -1 ENOENT (No such file or directory)
open("/usr/local/lib/php-cli.ini", O_RDONLY) = -1 ENOENT (No such file or directory)

open(".//php.ini", O_RDONLY)            = 3
getcwd("/root/tmp/php-5.1-dev/php5-200506170030/sapi/cli", 4096) = 49
lstat64("/root", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
lstat64("/root/tmp", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
lstat64("/root/tmp/php-5.1-dev", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
lstat64("/root/tmp/php-5.1-dev/php5-200506170030", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
lstat64("/root/tmp/php-5.1-dev/php5-200506170030/sapi", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
lstat64("/root/tmp/php-5.1-dev/php5-200506170030/sapi/cli", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
lstat64("/root/tmp/php-5.1-dev/php5-200506170030/sapi/cli/php.ini", {st_mode=S_IFREG|0644, st_size=46023, ...}) = 0
ioctl(3, SNDCTL_TMR_TIMEBASE, 0xbfffe6a8) = -1 ENOTTY (Inappropriate ioctl for device)
brk(0x82f7000)                          = 0x82f7000
fstat64(3, {st_mode=S_IFREG|0644, st_size=46023, ...}) = 0
old_mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x40014000
read(3, "[PHP]\n\n;;;;;;;;;;;;;;;;;;;\n; Abo"..., 8192) = 8192
read(3, "of the output of your scripts to"..., 8192) = 8192
read(3, "ALL & ~E_NOTICE\n;\n;   - Show onl"..., 8192) = 8192
read(3, "allow HTTP file uploads.\nfile_up"..., 8192) = 8192
read(3, "ity to display.\nsybase.min_messa"..., 8192) = 8192
read(3, ".textlimit = 4096\n\n; Valid range"..., 8192) = 5063
read(3, "", 4096)                       = 0
read(3, "", 8192)                       = 0
close(3)                                = 0
munmap(0x40014000, 4096)                = 0
brk(0x82f8000)                          = 0x82f8000
brk(0x82f9000)                          = 0x82f9000
brk(0x82fa000)                          = 0x82fa000
brk(0x82fb000)                          = 0x82fb000
brk(0x82fc000)                          = 0x82fc000
brk(0x82fd000)                          = 0x82fd000
brk(0x82fe000)                          = 0x82fe000
brk(0x82ff000)                          = 0x82ff000
brk(0x8300000)                          = 0x8300000
brk(0x8301000)                          = 0x8301000
brk(0x8302000)                          = 0x8302000
brk(0x8303000)                          = 0x8303000
brk(0x8304000)                          = 0x8304000
brk(0x8305000)                          = 0x8305000
brk(0x8306000)                          = 0x8306000
brk(0x8307000)                          = 0x8307000
brk(0x8308000)                          = 0x8308000
brk(0x8309000)                          = 0x8309000
brk(0x830a000)                          = 0x830a000
brk(0x830b000)                          = 0x830b000
brk(0x830c000)                          = 0x830c000
brk(0x830d000)                          = 0x830d000
brk(0x830e000)                          = 0x830e000
brk(0x830f000)                          = 0x830f000
brk(0x8310000)                          = 0x8310000
brk(0x8311000)                          = 0x8311000
brk(0x8312000)                          = 0x8312000
brk(0x8313000)                          = 0x8313000
brk(0x8314000)                          = 0x8314000
brk(0x8315000)                          = 0x8315000
brk(0x8316000)                          = 0x8316000
brk(0x8317000)                          = 0x8317000
brk(0x8318000)                          = 0x8318000
brk(0x8319000)                          = 0x8319000
brk(0x831a000)                          = 0x831a000
brk(0x831b000)                          = 0x831b000
brk(0x831c000)                          = 0x831c000

brk(0x831d000)                          = 0x831d000
brk(0x831e000)                          = 0x831e000
brk(0x8320000)                          = 0x8320000
brk(0x8321000)                          = 0x8321000
brk(0x8322000)                          = 0x8322000
brk(0x8323000)                          = 0x8323000
brk(0x8324000)                          = 0x8324000
brk(0x8325000)                          = 0x8325000
brk(0x8326000)                          = 0x8326000
brk(0x8327000)                          = 0x8327000
brk(0x8328000)                          = 0x8328000
brk(0x8329000)                          = 0x8329000
brk(0x832a000)                          = 0x832a000
brk(0x832b000)                          = 0x832b000
brk(0x832c000)                          = 0x832c000
brk(0x832d000)                          = 0x832d000
brk(0x832e000)                          = 0x832e000
brk(0x832f000)                          = 0x832f000
brk(0x8330000)                          = 0x8330000
--- SIGSEGV (Segmentation fault) ---
+++ killed by SIGSEGV +++
ludo:~/tmp/php-5.1-dev/php5-200506170030/sapi/cli# 
========================================================

The GDB backtrace:
========================================================
ludo:~/tmp/php-5.1-dev/php5-200506170030/sapi/cli# ./php
Segmentation fault (core dumped)
ludo:~/tmp/php-5.1-dev/php5-200506170030/sapi/cli# ls -al core
-rw-------    1 root     root      1003520 Jun 17 13:12 core
ludo:~/tmp/php-5.1-dev/php5-200506170030/sapi/cli# gdb ./php core
GNU gdb 2002-04-01-cvs
Copyright 2002 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB.  Type "show warranty" for details.
This GDB was configured as "i386-linux"...
Core was generated by `./php'.
Program terminated with signal 11, Segmentation fault.
Reading symbols from /lib/libcrypt.so.1...done.
Loaded symbols for /lib/libcrypt.so.1
Reading symbols from /lib/libresolv.so.2...done.
Loaded symbols for /lib/libresolv.so.2
Reading symbols from /lib/libm.so.6...done.
Loaded symbols for /lib/libm.so.6
Reading symbols from /lib/libdl.so.2...done.
Loaded symbols for /lib/libdl.so.2
Reading symbols from /lib/libnsl.so.1...done.
Loaded symbols for /lib/libnsl.so.1
Reading symbols from /lib/libc.so.6...done.
Loaded symbols for /lib/libc.so.6
Reading symbols from /lib/ld-linux.so.2...done.
Loaded symbols for /lib/ld-linux.so.2
#0  zend_hash_merge_ex (target=0x832d5e0, source=0x98, pCopyConstructor=0x819f524 <zval_add_ref>, size=4, pMergeSource=0x8192390 <do_inherit_constant_check>, 
    pParam=0x0) at /root/tmp/php-5.1-dev/php5-200506170030/Zend/zend_hash.c:818
818             p = source->pListHead;
(gdb) bt
#0  zend_hash_merge_ex (target=0x832d5e0, source=0x98, pCopyConstructor=0x819f524 <zval_add_ref>, size=4, pMergeSource=0x8192390 <do_inherit_constant_check>, 
    pParam=0x0) at /root/tmp/php-5.1-dev/php5-200506170030/Zend/zend_hash.c:818
#1  0x08192405 in zend_do_implement_interface (ce=0x832d548, iface=0x0) at /root/tmp/php-5.1-dev/php5-200506170030/Zend/zend_compile.c:2145
#2  0x081a4489 in zend_class_implements (class_entry=0x832d548, num_interfaces=2) at /root/tmp/php-5.1-dev/php5-200506170030/Zend/zend_API.c:1665
#3  0x080dbbcb in zm_startup_sqlite (type=1, module_number=3) at /root/tmp/php-5.1-dev/php5-200506170030/ext/sqlite/sqlite.c:1028
#4  0x081a36f2 in zend_register_module_ex (module=0x82d3f60) at /root/tmp/php-5.1-dev/php5-200506170030/Zend/zend_API.c:1246
#5  0x081a375b in zend_startup_module (module=0x82d3f60) at /root/tmp/php-5.1-dev/php5-200506170030/Zend/zend_API.c:1265
#6  0x0816ff5f in php_startup_extensions (ptr=0x82e2268, count=12) at /root/tmp/php-5.1-dev/php5-200506170030/main/main.c:1298
#7  0x0822cf85 in php_startup_internal_extensions () at main/internal_functions_cli.c:65
#8  0x081703fa in php_module_startup (sf=0x82e21c0, additional_modules=0x0, num_additional_modules=0)
    at /root/tmp/php-5.1-dev/php5-200506170030/main/main.c:1483
#9  0x0822c026 in main (argc=1, argv=0xbffffb44) at /root/tmp/php-5.1-dev/php5-200506170030/sapi/cli/php_cli.c:653
(gdb) 
========================================================


Patches

Add a Patch

Pull Requests

Add a Pull Request

History

AllCommentsChangesGit/SVN commitsRelated reports
 [2005-06-17 10:15 UTC] sniper@php.net
Install gawk for now. (see also bug #32144 which is about to be fixed soon)

 [2005-06-18 00:19 UTC] nickj-phpbugs at nickj dot org
That fixed it - Thank you!

I.e., for anyone who experiences the same problem:

ludo:~# dpkg -l | grep awk
ii  mawk           1.3.3-8        a pattern scanning and text processing langu
ludo:~# apt-get install gawk
ludo:~# apt-get remove --purge mawk


Then configure, make clean, make, and then ran without segfault.
 
PHP Copyright © 2001-2024 The PHP Group
All rights reserved.
Last updated: Sun May 05 14:01:31 2024 UTC