[php-maint] Bug#789702: Bug#789702: php5: SOAP when throwing exception server side causes Segmentation Fault
Ondřej Surý
ondrej at sury.org
Wed Jun 24 08:10:41 UTC 2015
Hi Joshua,
could you try to reproduce the segfault with 5.6.10 available from here:
http://packages.sury.org/php5-5.6/
And if that doesn't help it would be best to report thisdirectly to the
upstream: https://bugs.php.net/how-to-report.php
Cheers,
Ondrej
On Tue, Jun 23, 2015, at 17:10, Joshua Dennis wrote:
> 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
>
> _______________________________________________
> pkg-php-maint mailing list
> pkg-php-maint at lists.alioth.debian.org
> http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/pkg-php-maint
--
Ondřej Surý <ondrej at sury.org>
Knot DNS (https://www.knot-dns.cz/) – a high-performance DNS server
More information about the pkg-php-maint
mailing list