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
 [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

Add a Patch

Pull Requests

Add a Pull Request

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-2020 The PHP Group
All rights reserved.
Last updated: Tue Oct 27 01:01:23 2020 UTC