[php-maint] Bug#789702: php5: SOAP when throwing exception server side causes Segmentation Fault

Joshua Dennis bugs at rhsonline.net
Tue Jun 23 15:10:03 UTC 2015


Package: libapache2-mod-php5
Version: 5.6.9+dfsg-0+deb8u1
Severity: normal

Dear Maintainer,

*** Reporter, please consider answering these questions, where appropriate ***

   * What led up to the situation?
A client application connection to a SOAP server running this version of PHP on Debian Jessie was randomly getting the following error
"Error Fetching http headers".  This caused major issues with our client application.

After further investigation I looked at the apache error logs and saw the following error every time this happened.(a lot)
[Tue Jun 23 08:28:57.841494 2015] [core:notice] [pid 4038] AH00052: child pid 4085 exit signal Segmentation fault (11)

   * What exactly did you do (or not do) that was effective (or
     ineffective)?
I triangulated this issue to when the SOAP server side running this version of PHP throws an exception, that is causing this Segmentation fault to occur.  I modified my SOAP server side script for now
to no longer "throw" any exceptions to work around this.

   * What was the outcome of this action?
I am no longer getting Segmentation Faults in the scenarios where I knew I was getting them for sure prior.

   * What outcome did you expect instead?
I didn't expect PHP to Segmentation Fault when "throwing" and exception over SOAP.

I tried getting a coredump of this, but wasn't able to succefully do that.  I did have apache running with gdb, here is a copy/paste of what I saw in there
when I triggered this Segfault.

----
(gdb) run -X
The program being debugged has been started already.
Start it from the beginning? (y or n) n
Program not restarted.
(gdb) backtrace
#0  0x00007ffff3c9bd5f in instanceof_function_ex () from /usr/lib/apache2/modules/libphp5.so
#1  0x00007ffff3b47597 in ?? () from /usr/lib/apache2/modules/libphp5.so
#2  0x00007ffff3ca085c in zend_error_noreturn () from /usr/lib/apache2/modules/libphp5.so
#3  0x00007ffff3c48ad8 in php_default_post_reader () from /usr/lib/apache2/modules/libphp5.so
#4  0x00007ffff3c44ea2 in sapi_activate () from /usr/lib/apache2/modules/libphp5.so
#5  0x00007ffff3c3ba0a in php_request_startup () from /usr/lib/apache2/modules/libphp5.so
#6  0x00007ffff3d5021a in ?? () from /usr/lib/apache2/modules/libphp5.so
#7  0x00005555555abf20 in ap_run_handler ()
#8  0x00005555555ac469 in ap_invoke_handler ()
#9  0x00005555555c2302 in ap_process_async_request ()
#10 0x00005555555c24a0 in ap_process_request ()
#11 0x00005555555beda2 in ?? ()
#12 0x00005555555b5790 in ap_run_process_connection ()
#13 0x00007ffff46727ba in ?? () from /usr/lib/apache2/modules/mod_mpm_prefork.so
#14 0x00007ffff46729c7 in ?? () from /usr/lib/apache2/modules/mod_mpm_prefork.so
#15 0x00007ffff467370d in ?? () from /usr/lib/apache2/modules/mod_mpm_prefork.so
#16 0x0000555555591cae in ap_run_mpm ()
#17 0x000055555558b1f3 in main ()
(gdb) backtrace full
#0  0x00007ffff3c9bd5f in instanceof_function_ex () from /usr/lib/apache2/modules/libphp5.so
No symbol table info available.
#1  0x00007ffff3b47597 in ?? () from /usr/lib/apache2/modules/libphp5.so
No symbol table info available.
#2  0x00007ffff3ca085c in zend_error_noreturn () from /usr/lib/apache2/modules/libphp5.so
No symbol table info available.
#3  0x00007ffff3c48ad8 in php_default_post_reader () from /usr/lib/apache2/modules/libphp5.so
No symbol table info available.
#4  0x00007ffff3c44ea2 in sapi_activate () from /usr/lib/apache2/modules/libphp5.so
No symbol table info available.
#5  0x00007ffff3c3ba0a in php_request_startup () from /usr/lib/apache2/modules/libphp5.so
No symbol table info available.
#6  0x00007ffff3d5021a in ?? () from /usr/lib/apache2/modules/libphp5.so
No symbol table info available.
#7  0x00005555555abf20 in ap_run_handler ()
No symbol table info available.
#8  0x00005555555ac469 in ap_invoke_handler ()
No symbol table info available.
#9  0x00005555555c2302 in ap_process_async_request ()
No symbol table info available.
#10 0x00005555555c24a0 in ap_process_request ()
No symbol table info available.
#11 0x00005555555beda2 in ?? ()
No symbol table info available.
#12 0x00005555555b5790 in ap_run_process_connection ()
No symbol table info available.
#13 0x00007ffff46727ba in ?? () from /usr/lib/apache2/modules/mod_mpm_prefork.so
No symbol table info available.
#14 0x00007ffff46729c7 in ?? () from /usr/lib/apache2/modules/mod_mpm_prefork.so
No symbol table info available.
#15 0x00007ffff467370d in ?? () from /usr/lib/apache2/modules/mod_mpm_prefork.so
No symbol table info available.
#16 0x0000555555591cae in ap_run_mpm ()
No symbol table info available.
#17 0x000055555558b1f3 in main ()
No symbol table info available.
----



-- Package-specific info:
==== Additional PHP 5 information ====

++++ PHP 5 SAPI (php5query -S): ++++
apache2
cli

++++ PHP 5 Extensions (php5query -M -v): ++++
mysql (Enabled for apache2 by maintainer script)
mysql (Enabled for cli by maintainer script)
mysqli (Enabled for apache2 by maintainer script)
mysqli (Enabled for cli by maintainer script)
mcrypt (Enabled for apache2 by maintainer script)
mcrypt (Enabled for cli by maintainer script)
json (Enabled for apache2 by maintainer script)
json (Enabled for cli by maintainer script)
opcache (Enabled for apache2 by maintainer script)
opcache (Enabled for cli by maintainer script)
ssh2 (Enabled for apache2 by local administrator)
ssh2 (Enabled for cli by local administrator)
readline (Enabled for apache2 by maintainer script)
readline (Enabled for cli by maintainer script)
pdo (Enabled for apache2 by maintainer script)
pdo (Enabled for cli by maintainer script)
pdo_mysql (Enabled for apache2 by maintainer script)
pdo_mysql (Enabled for cli by maintainer script)
curl (Enabled for apache2 by maintainer script)
curl (Enabled for cli by maintainer script)

++++ Configuration files: ++++
[PHP]
engine = On
short_open_tag = On
asp_tags = Off
precision = 14
output_buffering = 4096
zlib.output_compression = Off
implicit_flush = Off
unserialize_callback_func =
serialize_precision = 17
disable_functions = pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,
disable_classes =
zend.enable_gc = On
expose_php = Off
max_execution_time = 30
max_input_time = 60
memory_limit = 128M
error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT & ~E_NOTICE
display_errors = On
display_startup_errors = Off
log_errors = On
log_errors_max_len = 1024
ignore_repeated_errors = Off
ignore_repeated_source = Off
report_memleaks = On
track_errors = Off
html_errors = On
error_log = /tmp/php_errors.log
variables_order = "GPCS"
request_order = "GP"
register_argc_argv = Off
auto_globals_jit = On
post_max_size = 8M
auto_prepend_file =
auto_append_file =
default_mimetype = "text/html"
default_charset = "UTF-8"
doc_root =
user_dir =
enable_dl = Off
file_uploads = On
upload_max_filesize = 2M
max_file_uploads = 20
allow_url_fopen = On
allow_url_include = Off
default_socket_timeout = 60
[CLI Server]
cli_server.color = On
[Date]
[filter]
[iconv]
[intl]
[sqlite]
[sqlite3]
[Pcre]
[Pdo]
[Pdo_mysql]
pdo_mysql.cache_size = 2000
pdo_mysql.default_socket=
[Phar]
[mail function]
SMTP = localhost
smtp_port = 25
mail.add_x_header = On
[SQL]
sql.safe_mode = Off
[ODBC]
odbc.allow_persistent = On
odbc.check_persistent = On
odbc.max_persistent = -1
odbc.max_links = -1
odbc.defaultlrl = 4096
odbc.defaultbinmode = 1
[Interbase]
ibase.allow_persistent = 1
ibase.max_persistent = -1
ibase.max_links = -1
ibase.timestampformat = "%Y-%m-%d %H:%M:%S"
ibase.dateformat = "%Y-%m-%d"
ibase.timeformat = "%H:%M:%S"
[MySQL]
mysql.allow_local_infile = On
mysql.allow_persistent = On
mysql.cache_size = 2000
mysql.max_persistent = -1
mysql.max_links = -1
mysql.default_port =
mysql.default_socket =
mysql.default_host =
mysql.default_user =
mysql.default_password =
mysql.connect_timeout = 60
mysql.trace_mode = Off
[MySQLi]
mysqli.max_persistent = -1
mysqli.allow_persistent = On
mysqli.max_links = -1
mysqli.cache_size = 2000
mysqli.default_port = 3306
mysqli.default_socket =
mysqli.default_host =
mysqli.default_user =
mysqli.default_pw =
mysqli.reconnect = Off
[mysqlnd]
mysqlnd.collect_statistics = On
mysqlnd.collect_memory_statistics = Off
[OCI8]
[PostgreSQL]
pgsql.allow_persistent = On
pgsql.auto_reset_persistent = Off
pgsql.max_persistent = -1
pgsql.max_links = -1
pgsql.ignore_notice = 0
pgsql.log_notice = 0
[Sybase-CT]
sybct.allow_persistent = On
sybct.max_persistent = -1
sybct.max_links = -1
sybct.min_server_severity = 10
sybct.min_client_severity = 10
[bcmath]
bcmath.scale = 0
[browscap]
[Session]
session.save_handler = files
session.use_strict_mode = 0
session.use_cookies = 1
session.use_only_cookies = 1
session.name = PHPSESSID
session.auto_start = 0
session.cookie_lifetime = 0
session.cookie_path = /
session.cookie_domain =
session.cookie_httponly =
session.serialize_handler = php
session.gc_probability = 0
session.gc_divisor = 1000
session.gc_maxlifetime = 1440
session.referer_check =
session.cache_limiter = nocache
session.cache_expire = 180
session.use_trans_sid = 0
session.hash_function = 0
session.hash_bits_per_character = 5
url_rewriter.tags = "a=href,area=href,frame=src,input=src,form=fakeentry"
[MSSQL]
mssql.allow_persistent = On
mssql.max_persistent = -1
mssql.max_links = -1
mssql.min_error_severity = 10
mssql.min_message_severity = 10
mssql.compatibility_mode = Off
mssql.secure_connection = Off
[Assertion]
[COM]
[mbstring]
[gd]
[exif]
[Tidy]
tidy.clean_output = Off
[soap]
soap.wsdl_cache_enabled=1
soap.wsdl_cache_dir="/tmp"
soap.wsdl_cache_ttl=86400
soap.wsdl_cache_limit = 5
[sysvshm]
[ldap]
ldap.max_links = -1
[mcrypt]
[dba]
[opcache]
[curl]
[openssl]

**** /etc/php5/apache2/conf.d/20-curl.ini ****
extension=curl.so

**** /etc/php5/apache2/conf.d/20-readline.ini ****
extension=readline.so

**** /etc/php5/apache2/conf.d/20-mcrypt.ini ****
extension=mcrypt.so

**** /etc/php5/apache2/conf.d/10-pdo.ini ****
extension=pdo.so

**** /etc/php5/apache2/conf.d/20-json.ini ****
extension=json.so

**** /etc/php5/apache2/conf.d/20-mysql.ini ****
extension=mysql.so

**** /etc/php5/apache2/conf.d/05-opcache.ini ****
zend_extension=opcache.so

**** /etc/php5/apache2/conf.d/20-mysqli.ini ****
extension=mysqli.so

**** /etc/php5/apache2/conf.d/20-ssh2.ini ****
extension=ssh2.so

**** /etc/php5/apache2/conf.d/20-pdo_mysql.ini ****
extension=pdo_mysql.so


-- System Information:
Debian Release: 8.1
  APT prefers stable
  APT policy: (500, 'stable')
Architecture: amd64 (x86_64)

Kernel: Linux 3.16.0-4-amd64 (SMP w/8 CPU cores)
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Init: systemd (via /run/systemd/system)

Versions of packages libapache2-mod-php5 depends on:
ii  apache2                             2.4.10-10
ii  apache2-bin [apache2-api-20120211]  2.4.10-10
ii  libbz2-1.0                          1.0.6-7+b3
ii  libc6                               2.19-18
ii  libcomerr2                          1.42.12-1.1
ii  libdb5.3                            5.3.28-9
ii  libgssapi-krb5-2                    1.12.1+dfsg-19
ii  libk5crypto3                        1.12.1+dfsg-19
ii  libkrb5-3                           1.12.1+dfsg-19
ii  libmagic1                           1:5.22+15-2
ii  libonig2                            5.9.5-3.2
ii  libpcre3                            2:8.35-3.3
ii  libqdbm14                           1.8.78-5+b1
ii  libssl1.0.0                         1.0.1k-3+deb8u1
ii  libstdc++6                          4.9.2-10
ii  libxml2                             2.9.1+dfsg1-5
ii  mime-support                        3.58
ii  php5-cli                            5.6.9+dfsg-0+deb8u1
ii  php5-common                         5.6.9+dfsg-0+deb8u1
ii  php5-json                           1.3.6-1
ii  tzdata                              2015d-0+deb8u1
ii  ucf                                 3.0030
ii  zlib1g                              1:1.2.8.dfsg-2+b1

libapache2-mod-php5 recommends no packages.

Versions of packages libapache2-mod-php5 suggests:
ii  php-pear  5.6.9+dfsg-0+deb8u1

Versions of packages php5-common depends on:
ii  libc6   2.19-18
ii  lsof    4.86+dfsg-1
ii  psmisc  22.21-2
ii  sed     4.2.2-4+b1
ii  ucf     3.0030

Versions of packages php5-common suggests:
pn  php5-user-cache  <none>

-- no debconf information



More information about the pkg-php-maint mailing list