php.net |  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Bug #70041 segfaults due tests
Submitted: 2015-07-10 13:34 UTC Modified: 2017-12-23 12:10 UTC
From: spam2 at rhsoft dot net Assigned: nikic (profile)
Status: Closed Package: Testing related
PHP Version: 5.6.11 OS: Linux
Private report: No CVE-ID: None
Welcome back! If you're the original bug submitter, here's where you can edit the bug or add additional notes.
If you forgot your password, you can retrieve your password here.
Password:
Status:
Package:
Bug Type:
Summary:
From: spam2 at rhsoft dot net
New email:
PHP Version: OS:

 

 [2015-07-10 13:34 UTC] spam2 at rhsoft dot net
Description:
------------
Jul 10 14:20:25 testserver phpt[31378]: Basic syslog test
Jul 10 14:53:28 testserver kernel: conftest[68039]: segfault at 1 ip 00007f23f66b8f19 sp 00007ffe875e97c0 error 4 in libc-client.so.2007[7f23f6676000+108000]
Jul 10 14:53:28 testserver systemd-coredump: Process 68039 (conftest) of user 5000 dumped core.

Stack trace of thread 68039:
#0  0x00007f23f66b8f19 utf8_to_mutf7 (libc-client.so.2007)
#1  0x00007f23f6baea6b n/a (/home/builduser/rpmbuild/BUILD/php-5.6.11/build-apache/conftest)

Jul 10 14:53:37 testserver kernel: conftest[70332]: segfault at 0 ip 00007f04a2ff7886 sp 00007ffff639aec0 error 4 in conftest[7f04a2ff7000+1000]
Jul 10 14:53:37 testserver kernel: conftest[70356]: segfault at 0 ip 00007f001f8c1266 sp 00007ffe890ced88 error 4 in libc-2.20.so[7f001f77b000+1b3000]
Jul 10 14:53:37 testserver systemd-coredump: Process 70332 (conftest) of user 5000 dumped core.

Stack trace of thread 70332:
#0  0x00007f04a2ff7886 n/a (/home/builduser/rpmbuild/BUILD/php-5.6.11/build-apache/conftest)

Jul 10 14:53:38 testserver systemd-coredump: Process 70356 (conftest) of user 5000 dumped core.

Stack trace of thread 70356:
#0  0x00007f001f8c1266 __GI___strcmp_ssse3 (libc.so.6)
#1  0x00007f0023701a29 n/a (/home/builduser/rpmbuild/BUILD/php-5.6.11/build-apache/conftest)

Jul 10 15:04:06 testserver systemd-coredump: Process 121367 (php) of user 5000 dumped core.

Stack trace of thread 121367:
#0  0x00007f3d148ae8d7 raise (libc.so.6)
#1  0x00007f3d148b053a abort (libc.so.6)
#2  0x00007f3d148a747d __assert_fail_base (libc.so.6)
#3  0x00007f3d148a7532 __assert_fail (libc.so.6)
#4  0x00007f3d18da0a76 encoding_filter_script_to_internal (php)
#5  0x00007f3d18da47f7 lex_scan (php)
#6  0x00007f3d18dca422 zendlex (php)
#7  0x00007f3d18d9be94 zendparse (php)
#8  0x00007f3d18da16d5 compile_file (php)
#9  0x00007f3d0d4ea1e6 phar_compile_file (phar.so)
#10 0x00007f3d18de937b zend_execute_scripts (php)
#11 0x00007f3d18d6fe10 php_execute_script (php)
#12 0x00007f3d18ea31db do_cli (php)
#13 0x00007f3d18b2602d main (php)
#14 0x00007f3d14899fe0 __libc_start_main (libc.so.6)
#15 0x00007f3d18b2616d _start (php)

Jul 10 15:04:07 testserver systemd-coredump: Process 121376 (php) of user 5000 dumped core.

Stack trace of thread 121376:
#0  0x00007f4397e8f8d7 raise (libc.so.6)
#1  0x00007f4397e9153a abort (libc.so.6)
#2  0x00007f4397e8847d __assert_fail_base (libc.so.6)
#3  0x00007f4397e88532 __assert_fail (libc.so.6)
#4  0x00007f439c381a76 encoding_filter_script_to_internal (php)
#5  0x00007f439c3857f7 lex_scan (php)
#6  0x00007f439c3ab422 zendlex (php)
#7  0x00007f439c37ce94 zendparse (php)
#8  0x00007f439c3826d5 compile_file (php)
#9  0x00007f4390acb1e6 phar_compile_file (phar.so)
#10 0x00007f439c3ca37b zend_execute_scripts (php)
#11 0x00007f439c350e10 php_execute_script (php)
#12 0x00007f439c4841db do_cli (php)
#13 0x00007f439c10702d main (php)
#14 0x00007f4397e7afe0 __libc_start_main (libc.so.6)
#15 0x00007f439c10716d _start (php)


Test script:
---------------
________________________________________________________________

environment for rpmbuild:

* gcc-4.9.2-6.fc21.x86_64
* optflags: x86_64 -m64 -O2 -march=westmere -mtune=westmere -fopenmp -mfpmath=sse -pipe -fno-strict-aliasing -fomit-frame-pointer -finline-functions -finline-limit=60 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=6 -D_FORTIFY_SOURCE=2 -Wstack-protector -Wformat -Werror=format-sec
* export CFLAGS="%{optflags} -O3 -fPIC -fPIE -funroll-loops -funswitch-loops -Wno-pointer-sign"
* export CXXFLAGS="%{optflags} -O3 -fPIC -fPIE -funroll-loops -funswitch-loops -Wno-pointer-sign"
* export LDFLAGS="-Wl,-z,now -Wl,-z,relro,-z,noexecstack -pie %{optflags} -O3 -funroll-loops -funswitch-loops -Wno-pointer-sign"
* export SH_LDFLAGS="-Wl,-z,now -Wl,-z,relro,-z,noexecstack -pie %{optflags} -O3 -funroll-loops -funswitch-loops -Wno-pointer-sign"
________________________________________________________________

as part of the rpm-spec

%check
%if %runselftest
 ulimit -s 32712
 cd build-apache
 export MYSQL_TEST_PARAM="php_autotest"
 export NO_INTERACTION=1 REPORT_EXIT_STATUS=1 MALLOC_CHECK_=2 MYSQL_TEST_HOST="localhost" MYSQL_TEST_PORT="3306" MYSQL_TEST_USER="$MYSQL_TEST_PARAM" MYSQL_TEST_PASSWD="$MYSQL_TEST_PARAM" MYSQL_TEST_DB="$MYSQL_TEST_PARAM" PDO_MYSQL_TEST_DSN="mysql:host=localhost;dbname=$MYSQL_TEST_PARAM" PDO_MYSQL_TEST_SOCKET="%{_sharedstatedir}/mysql/mysql.sock" PDO_MYSQL_TEST_USER="$MYSQL_TEST_PARAM" PDO_MYSQL_TEST_PASS="$MYSQL_TEST_PARAM" PDO_MYSQL_TEST_ENGINE="MyISAM"
 export LANG=C
 if ! make test; then
  set +x
  for f in `find .. -name \*.diff -type f -print`; do
   echo "TEST FAILURE: $f --"
   cat "$f"
   echo "-- $f result ends."
  done
  set -x
 fi
%endif

Expected result:
----------------
no segfaults and failing tests

Actual result:
--------------
segfaults above and too much failing tests, some of them for years

FAILED TEST SUMMARY
---------------------------------------------------------------------
PHP encoding setting test [tests/basic/encoding.phpt]
Zend Multibyte and UTF-8 BOM [Zend/tests/multibyte/multibyte_encoding_002.phpt]
Zend Multibyte and UTF-16 BOM [Zend/tests/multibyte/multibyte_encoding_003.phpt]
Test iconv_set_encoding() function : error functionality [ext/iconv/tests/iconv_set_encoding_variation.phpt]
mysqli autocommit/commit/rollback [ext/mysqli/tests/014.phpt]
mysqli autocommit/commit/rollback with innodb [ext/mysqli/tests/015.phpt]
Bug #42548 PROCEDURE xxx can't return a result set in the given context (works in 5.2.3!!) [ext/mysqli/tests/bug42548.phpt]
Bug #44879 (failed to prepare statement) [ext/mysqli/tests/bug44897.phpt]
Bug #51647 (Certificate file without private key (pk in another file) doesn't work) [ext/mysqli/tests/bug51647.phpt]
Bug #55283 (SSL options set by mysqli_ssl_set ignored for MySQLi persistent connections) [ext/mysqli/tests/bug55283.phpt]
mysqli_autocommit() [ext/mysqli/tests/mysqli_autocommit.phpt]
mysqli->autocommit() [ext/mysqli/tests/mysqli_autocommit_oo.phpt]
mysqli_begin_transaction() [ext/mysqli/tests/mysqli_begin_transaction.phpt]
mysqli_change_user() - ROLLBACK [ext/mysqli/tests/mysqli_change_user_rollback.phpt]
Interface of the class mysqli_driver [ext/mysqli/tests/mysqli_class_mysqli_driver_interface.phpt]
Interface of the class mysqli [ext/mysqli/tests/mysqli_class_mysqli_properties_no_conn.phpt]
mysqli_fetch_field() - flags/field->flags [ext/mysqli/tests/mysqli_fetch_field_flags.phpt]
mysqli_query() [ext/mysqli/tests/mysqli_query.phpt]
mysqli_query() - Stored Procedures [ext/mysqli/tests/mysqli_query_stored_proc.phpt]
mysqli_query() - unicode (cyrillic) [ext/mysqli/tests/mysqli_query_unicode.phpt]
mysqli_real_query() [ext/mysqli/tests/mysqli_real_query.phpt]
mysqli_report() [ext/mysqli/tests/mysqli_report.phpt]
mysqli_rollback() [ext/mysqli/tests/mysqli_rollback.phpt]
mysqli_stmt_execute() - Stored Procedures [ext/mysqli/tests/mysqli_stmt_execute_stored_proc.phpt]
Multiple result set with PS [ext/mysqli/tests/mysqli_stmt_multires.phpt]
mysqli_store_result() [ext/mysqli/tests/mysqli_store_result_copy.phpt]
Bug #54929 (Parse error with single quote in sql comment (pdo-mysql)) [ext/pdo_mysql/tests/bug54929.phpt]
MySQL PDO->__construct() - Generic + DSN [ext/pdo_mysql/tests/pdo_mysql___construct.phpt]
MySQL PDO->exec(), affected rows [ext/pdo_mysql/tests/pdo_mysql_exec_load_data.phpt]
MySQL PDOStatement->nextRowSet() with PDO::MYSQL_ATTR_MULTI_STATEMENTS either true or false [ext/pdo_mysql/tests/pdo_mysql_multi_stmt_nextrowset.phpt]
use_trans_sid should not affect SID [ext/session/tests/015.phpt]
rewriter correctly handles attribute names which contain dashes [ext/session/tests/018.phpt]
rewriter uses arg_separator.output for modifying URLs [ext/session/tests/020.phpt]
Bug #26862 (ob_flush() before output_reset_rewrite_vars() results in data loss) [ext/session/tests/bug26862.phpt]
Bug #31454 (Incorrect adding PHPSESSID to links, which contains \r\n) [ext/session/tests/bug36459.phpt]
Bug #41600 (url rewriter tags doesn't work with namespaced tags) [ext/session/tests/bug41600.phpt]
Bug #50308 (session id not appended properly for empty anchor tags) [ext/session/tests/bug50308.phpt]
Bug #66481: Calls to session_name() segfault when session.name is null. [ext/session/tests/bug66481.phpt]
Test session.hash_function ini setting : basic functionality [ext/session/tests/session_hash_function_basic.phpt]
Bug #44394 (Last two bytes missing from output) [ext/standard/tests/general_functions/bug44394.phpt]
Bug #44394 (Last two bytes missing from output) with session.use_trans_id [ext/standard/tests/general_functions/bug44394_2.phpt]
Bug #38802 (ignore_errors and max_redirects) [ext/standard/tests/http/bug38802.phpt]
Bug #48929 (duplicate \r\n sent after last header line) [ext/standard/tests/http/bug48929.phpt]
Bug #53198 (From: header cannot be changed with ini_set) [ext/standard/tests/http/bug53198.phpt]
Bug #61548 (content-type must appear at the end of headers) [ext/standard/tests/http/bug61548.phpt]
Bug #65634 (HTTP wrapper is very slow with protocol_version 1.1) [ext/standard/tests/http/bug65634.phpt]
Bug #67430 (http:// wrapper doesn't follow 308 redirects) [ext/standard/tests/http/bug67430.phpt]
http:// and ignore_errors [ext/standard/tests/http/ignore_errors.phpt]
Bug #26817 (http_build_query() did not handle private & protected object properties) [ext/standard/tests/strings/bug26817.phpt]
Test htmlentities() function [ext/standard/tests/strings/htmlentities24.phpt]
http_build_query() function [ext/standard/tests/strings/http_build_query.phpt]
Test http_build_query() function: usage variations - first arguments as object [ext/standard/tests/strings/http_build_query_variation1.phpt]
Test http_build_query() function: usage variations - first arguments as multidimensional array and second argument present/not present [ext/standard/tests/strings/http_build_query_variation2.phpt]
Test http_build_query() function: usage variations - testing four parameter added in PHP 5.4.0 [ext/standard/tests/strings/http_build_query_variation3.phpt]
Test function show_source() by calling it with its expected arguments, more test for highlight_file() [ext/standard/tests/strings/show_source_basic.phpt]
Test function show_source() by calling it with its expected arguments and php output, more test for highlight_file() [ext/standard/tests/strings/show_source_variation1.phpt]
Test function show_source() by calling it with its expected arguments and output to variable, more test for highlight_file() [ext/standard/tests/strings/show_source_variation2.phpt]

Patches

Pull Requests

History

AllCommentsChangesGit/SVN commitsRelated reports
 [2015-07-10 17:40 UTC] cmb@php.net
Please, do not post failed test summaries in this bug tracker,
because these are worse than useless. Instead send the summary
generated by `make test` to the QA team.

Of course, patches to fix broken test cases and other help are
welcome, see <https://qa.php.net/howtohelp.php>.
 [2015-07-13 09:38 UTC] spam2 at rhsoft dot net
that's only "useless" because this is the only bugtracker on this planet without a attachment option, otherwise https://bugs.php.net/bug.php?id=67516 would had attached the jpeg file

> Instead send the summary generated by `make test` to the QA team

uhm is there a way *without* register permanently to a maling-list?

frankly i have here the complete build-log including configure, build, options, the full testrun and all outputs (stdout/stderr), the syslog with the crashes and even coredumps for them

[harry@rh:/mnt/data/downloads]$ ls
insgesamt 3,3M
drwxr-x--- 3 harry verwaltung 4,0K 2015-07-13 11:32 test-crashes
-rw-r----- 1 harry verwaltung 3,3M 2015-07-13 11:37 test-crashes.tar.xz
[harry@rh:/mnt/data/downloads]$ ls -R test-crashes/
test-crashes/:
insgesamt 3,8M
drwxr-x--- 2 harry verwaltung 4,0K 2015-07-13 11:31 coredumps
-rw-r----- 1 harry verwaltung 3,8M 2015-07-13 11:28 build-php.log
-rw------- 1 harry verwaltung 3,1K 2015-07-13 11:29 crashes.log

test-crashes/coredumps:
insgesamt 39M
-rw-r----- 1 harry verwaltung 1,4M 2015-07-13 11:31 core.conftest.5000.4936a6c8165f43d885b71dc10f6c2c4e.4114.1436778184000000
-rw-r----- 1 harry verwaltung 1,7M 2015-07-13 11:31 core.conftest.5000.4936a6c8165f43d885b71dc10f6c2c4e.6407.1436778193000000
-rw-r----- 1 harry verwaltung 1,7M 2015-07-13 11:31 core.conftest.5000.4936a6c8165f43d885b71dc10f6c2c4e.6431.1436778193000000
-rw-r----- 1 harry verwaltung  17M 2015-07-13 11:31 core.php.5000.4936a6c8165f43d885b71dc10f6c2c4e.57299.1436778804000000
-rw-r----- 1 harry verwaltung  17M 2015-07-13 11:31 core.php.5000.4936a6c8165f43d885b71dc10f6c2c4e.57308.1436778805000000
 [2015-07-13 10:02 UTC] cmb@php.net
After running `make test`, you should be offered to send the
generated test summary via email. That is not supposed to require
any registration at all, AFAIK.

Regarding the coredumps: these would make only sense if it is
clear which test is segfaulting. That doesn't seem to be evident
from what you've posted above.
 [2015-07-13 10:11 UTC] spam2 at rhsoft dot net
> After running `make test`, you should be offered to 
> send the generated test summary via email

that's impossible in context of rpmbuild which runs the testsuite inside of %tests section, gives out all results and finally genearte rpm packages
 [2017-12-23 12:10 UTC] nikic@php.net
-Status: Open +Status: Closed -Assigned To: +Assigned To: nikic
 [2017-12-23 12:10 UTC] nikic@php.net
The assertion failures in the multibyte tests have been fixed by https://github.com/php/php-src/commit/f017843df37028aab161e42368aaa1caaa548322 in 7.0, so closing here.
 
PHP Copyright © 2001-2025 The PHP Group
All rights reserved.
Last updated: Thu Jul 03 19:01:35 2025 UTC