Bug #70805 [Fbk]: Segmentation faults whilst running Drupal 8 test suite
| From: | ab@php.net | Date: | Mon, 02 Nov 2015 09:45:54 +0000 |
| Subject: | Bug #70805 [Fbk]: Segmentation faults whilst running Drupal 8 test suite | ||
| References: | 1 | Groups: | php.bugs |
| Request: | Send a blank email to php-bugs+get-196969@lists.php.net to get a copy of this message | ||
Edit report at https://bugs.php.net/bug.php?id=70805&edit=1
ID: 70805
Updated by: ab@php.net
Reported by: alex dot a dot pott at gmail dot com
Summary: Segmentation faults whilst running Drupal 8 test
suite
Status: Feedback
Type: Bug
Package: Reproducible crash
Operating System: OS X & Linux
PHP Version: 7.0.0RC5
Block user comment: N
Private report: N
New Comment:
I've managed to get a bit more concrete BT
ntdll.dll!00007ff9b8e54b74() Unknown
ucrtbase.dll!free() + 27 bytes Unknown
> php7ts.dll!zend_gc_collect_cycles() Line 1124 C
php7ts.dll!gc_possible_root(_zend_refcounted * ref=0x000000d059641220) Line 244 C
php7ts.dll!zend_leave_helper_SPEC(_zend_execute_data * execute_data=0x000000d056501040) Line 497 C
php7ts.dll!execute_ex(_zend_execute_data * ex) Line 417 C
php7ts.dll!zend_call_function(_zend_fcall_info * fci=0x000000d05602d950, _zend_fcall_info_cache *
fci_cache=0x000000d05602d9a0) Line 855 C
php7ts.dll!zif_call_user_func_array(_zend_execute_data * execute_data=0x000000d0564fd990,
_zval_struct * return_value=0x000000d0564fd980) Line 4809 C
php7ts.dll!ZEND_DO_FCALL_BY_NAME_SPEC_HANDLER(_zend_execute_data *
execute_data=0x000000d0564fd8c0) Line 723 C
php7ts.dll!execute_ex(_zend_execute_data * ex) Line 417 C
php7ts.dll!zend_call_function(_zend_fcall_info * fci=0x000000d05602dbc0, _zend_fcall_info_cache *
fci_cache=0x000000d05602dc10) Line 855 C
php7ts.dll!zif_call_user_func_array(_zend_execute_data * execute_data=0x000000d0564fd3d0,
_zval_struct * return_value=0x000000d0564fd260) Line 4809 C
php7ts.dll!ZEND_DO_FCALL_BY_NAME_SPEC_HANDLER(_zend_execute_data *
execute_data=0x000000d0564fcfa0) Line 723 C
php7ts.dll!execute_ex(_zend_execute_data * ex) Line 417 C
php7ts.dll!zend_execute(_zend_op_array * op_array, _zval_struct * return_value=0x0000000000000000)
Line 459 C
php7ts.dll!zend_execute_scripts(int type=8, _zval_struct * retval=0x0000000000000000, int
file_count=3, ...) Line 1429 C
php7ts.dll!php_execute_script(_zend_file_handle * primary_file=0x000000d05602f2b0) Line 2471 C
php7apache2_4.dll!php_handler(request_rec * r=0x000000d05916e278) Line 679 C
It looks indeed like a GC issue, most likely function args passed to call_user_func_array() are
double free'd.
Thanks.
Previous Comments:
------------------------------------------------------------------------
[2015-11-01 10:08:40] laruence@php.net
@alex , maybe you can grant me a ssh access to the reproducible box? (via mail)
thanks
------------------------------------------------------------------------
[2015-10-30 18:38:12] fabian at tag1consulting dot com
Another test that often fails is:
Drupal\\config\\Tests\\ConfigEntityListTest
And yes it needs several runs of creating and destroying ContainerBuilder instances, which really
makes it hard to reproduce.
------------------------------------------------------------------------
[2015-10-30 10:07:52] ab@php.net
After the further investigation, I can now reproduce the crash with Apache/mod_php on Windows almost
always and it gives the backtrice I've posted above. Can confirm that it always has to do with
the Symfony\\Component\\DependencyInjection\\Compiler\\ServiceReferenceGraphNode component and
related Drupal code. However it is only reproducible with the complete
Drupal\basic_auth\Tests\Authentication\BasicAuthTest test, running parts of it like
Drupal\basic_auth\Tests\Authentication\BasicAuthTest::testBasicAuth doesn't reproduce. It seems
that it's only reproducible when some criticall mass was reached and has less to do with the
concrete codes. So guess it'll be quite hard to write a reproduce script :( But it'd be
great to at least simplify it, like getting rid of the server part. Digging further.
Thanks.
------------------------------------------------------------------------
[2015-10-30 09:27:30] fabian at tag1consulting dot com
Yes, this bug is really fragile, try the following one:
php7 ./core/scripts/run-tests.sh --color --non-html --url http://drupal.jx-lj-hxc.lianjia.com:8000/
--verbose --class 'Drupal\node\Tests\NodeSaveTest'
I am also in IRC again - if you want to chat.
------------------------------------------------------------------------
[2015-10-30 09:04:43] laruence@php.net
I can not reproduce the segfualt :<
$ php7 ./core/scripts/run-tests.sh --color --non-html --url http://drupal.jx-lj-hxc.lianjia.com:8000/
--verbose --class 'Drupal\basic_auth\Tests\Authentication\BasicAuthTest'
Drupal test run
---------------
Tests to be run:
- Drupal\basic_auth\Tests\Authentication\BasicAuthTest
Test run started:
Friday, October 30, 2015 - 09:02
Test summary
------------
Drupal\basic_auth\Tests\Authentication\BasicAuthTest 81 passes 20
messages
Test run duration: 1 min 5 sec
Detailed test results
---------------------
---- Drupal\basic_auth\Tests\Authentication\BasicAuthTest ----
Status Group Filename Line Function
--------------------------------------------------------------------------------
Pass Other run-tests.sh 656 simpletest_script_run_one_test()
Enabled modules: basic_auth, router_test, locale
Pass User login BasicAuthTest.php 41 Drupal\basic_auth\Tests\Authenticat
User created with name jXw1KEde and pass 7MK6dpzWSz
Pass Browser BasicAuthTestTrai 31 Drupal\basic_auth\Tests\Authenticat
GET http://drupal.jx-lj-hxc.lianjia.com:8000/router_test/test11
returned
200 (7.08 KB).
Pass Browser BasicAuthTestTrai 31 Drupal\basic_auth\Tests\Authenticat
Valid HTML found on
"http://drupal.jx-lj-hxc.lianjia.com:8000/router_test/test11"
Pass Other BasicAuthTest.php 45 Drupal\basic_auth\Tests\Authenticat
Account name is displayed.
Pass Browser BasicAuthTest.php 46 Drupal\basic_auth\Tests\Authenticat
HTTP response is OK
Pass Other BasicAuthTest.php 48 Drupal\basic_auth\Tests\Authenticat
Value false is FALSE.
Pass Other BasicAuthTest.php 49 Drupal\basic_auth\Tests\Authenticat
Cache-Control is not set to public
Pass Browser BasicAuthTestTrai 31 Drupal\basic_auth\Tests\Authenticat
GET http://drupal.jx-lj-hxc.lianjia.com:8000/router_test/test11
returned
403 (6.22 KB).
Pass Browser BasicAuthTestTrai 31 Drupal\basic_auth\Tests\Authenticat
Valid HTML found on
"http://drupal.jx-lj-hxc.lianjia.com:8000/router_test/test11"
Pass Other BasicAuthTest.php 52 Drupal\basic_auth\Tests\Authenticat
Bad basic auth credentials do not authenticate the user.
Pass Browser BasicAuthTest.php 53 Drupal\basic_auth\Tests\Authenticat
Access is not granted.
Pass Browser BasicAuthTest.php 56 Drupal\basic_auth\Tests\Authenticat
GET http://drupal.jx-lj-hxc.lianjia.com:8000/router_test/test11
returned
401 (6.21 KB).
Pass Browser BasicAuthTest.php 56 Drupal\basic_auth\Tests\Authenticat
Valid HTML found on
"http://drupal.jx-lj-hxc.lianjia.com:8000/router_test/test11"
Pass Other BasicAuthTest.php 57 Drupal\basic_auth\Tests\Authenticat
Value 'Basic realm="Drupal"' is equal to value 'Basic
realm="Drupal"'.
Pass Browser BasicAuthTest.php 58 Drupal\basic_auth\Tests\Authenticat
Not authenticated on the route that allows only basic_auth. Prompt to
authenticate received.
Pass Browser BasicAuthTest.php 60 Drupal\basic_auth\Tests\Authenticat
GET http://drupal.jx-lj-hxc.lianjia.com:8000/admin
returned 403 (6.22 KB).
Pass Browser BasicAuthTest.php 60 Drupal\basic_auth\Tests\Authenticat
Valid HTML found on "http://drupal.jx-lj-hxc.lianjia.com:8000/admin"
Pass Browser BasicAuthTest.php 61 Drupal\basic_auth\Tests\Authenticat
No authentication prompt for routes not explicitly defining authentication
providers.
Pass Role BasicAuthTest.php 63 Drupal\basic_auth\Tests\Authenticat
Created role ID 'gqgspyxm' with name 'H26<>&$0'.
Pass Role BasicAuthTest.php 63 Drupal\basic_auth\Tests\Authenticat
Created permissions: access administration pages
Pass User login BasicAuthTest.php 63 Drupal\basic_auth\Tests\Authenticat
User created with name ytJJEDdB and pass cnVErhuQKY
Pass Browser BasicAuthTestTrai 31 Drupal\basic_auth\Tests\Authenticat
GET http://drupal.jx-lj-hxc.lianjia.com:8000/admin
returned 403 (7.23 KB).
Pass Browser BasicAuthTestTrai 31 Drupal\basic_auth\Tests\Authenticat
Valid HTML found on "http://drupal.jx-lj-hxc.lianjia.com:8000/admin"
Pass Other BasicAuthTest.php 66 Drupal\basic_auth\Tests\Authenticat
User is not logged in
Pass Browser BasicAuthTest.php 67 Drupal\basic_auth\Tests\Authenticat
No basic authentication for routes not explicitly defining authentication
providers.
Pass Browser BasicAuthTest.php 73 Drupal\basic_auth\Tests\Authenticat
GET http://drupal.jx-lj-hxc.lianjia.com:8000/router_test/test10
returned
200 (6.13 KB).
Pass Browser BasicAuthTest.php 73 Drupal\basic_auth\Tests\Authenticat
Valid HTML found on
"http://drupal.jx-lj-hxc.lianjia.com:8000/router_test/test10"
Pass Other BasicAuthTest.php 74 Drupal\basic_auth\Tests\Authenticat
Value 'MISS' is equal to value 'MISS'.
Pass Browser BasicAuthTestTrai 31 Drupal\basic_auth\Tests\Authenticat
GET http://drupal.jx-lj-hxc.lianjia.com:8000/router_test/test10
returned
200 (7.08 KB).
Pass Browser BasicAuthTestTrai 31 Drupal\basic_auth\Tests\Authenticat
Valid HTML found on
"http://drupal.jx-lj-hxc.lianjia.com:8000/router_test/test10"
Pass Other BasicAuthTest.php 76 Drupal\basic_auth\Tests\Authenticat
Value false is FALSE.
Pass Other BasicAuthTest.php 77 Drupal\basic_auth\Tests\Authenticat
No page cache response when requesting a cached page with basic auth
credentials.
Pass Other run-tests.sh 656 simpletest_script_run_one_test()
Enabled modules: basic_auth, router_test, locale
Pass User login BasicAuthTest.php 90 Drupal\basic_auth\Tests\Authenticat
User created with name kQu49mcT and pass yvk3xMjnTp
Pass Browser BasicAuthTestTrai 31 Drupal\basic_auth\Tests\Authenticat
GET http://drupal.jx-lj-hxc.lianjia.com:8000/router_test/test11
returned
403 (6.22 KB).
Pass Browser BasicAuthTestTrai 31 Drupal\basic_auth\Tests\Authenticat
Valid HTML found on
"http://drupal.jx-lj-hxc.lianjia.com:8000/router_test/test11"
Pass Browser BasicAuthTestTrai 31 Drupal\basic_auth\Tests\Authenticat
GET http://drupal.jx-lj-hxc.lianjia.com:8000/router_test/test11
returned
403 (6.22 KB).
Pass Browser BasicAuthTestTrai 31 Drupal\basic_auth\Tests\Authenticat
Valid HTML found on
"http://drupal.jx-lj-hxc.lianjia.com:8000/router_test/test11"
Pass Browser BasicAuthTestTrai 31 Drupal\basic_auth\Tests\Authenticat
GET http://drupal.jx-lj-hxc.lianjia.com:8000/router_test/test11
returned
403 (6.22 KB).
Pass Browser BasicAuthTestTrai 31 Drupal\basic_auth\Tests\Authenticat
Valid HTML found on
"http://drupal.jx-lj-hxc.lianjia.com:8000/router_test/test11"
Pass Browser BasicAuthTest.php 102 Drupal\basic_auth\Tests\Authenticat
Access is blocked because of IP based flood prevention.
Pass Other run-tests.sh 656 simpletest_script_run_one_test()
Enabled modules: basic_auth, router_test, locale
Pass User login BasicAuthTest.php 115 Drupal\basic_auth\Tests\Authenticat
User created with name vSctJJ2H and pass 6AVPqgEVLs
Pass User login BasicAuthTest.php 118 Drupal\basic_auth\Tests\Authenticat
User created with name btMyybqw and pass jkaZ94GgYt
Pass Browser BasicAuthTestTrai 31 Drupal\basic_auth\Tests\Authenticat
GET http://drupal.jx-lj-hxc.lianjia.com:8000/router_test/test11
returned
403 (6.22 KB).
Pass Browser BasicAuthTestTrai 31 Drupal\basic_auth\Tests\Authenticat
Valid HTML found on
"http://drupal.jx-lj-hxc.lianjia.com:8000/router_test/test11"
Pass Browser BasicAuthTestTrai 31 Drupal\basic_auth\Tests\Authenticat
GET http://drupal.jx-lj-hxc.lianjia.com:8000/router_test/test11
returned
200 (7.08 KB).
Pass Browser BasicAuthTestTrai 31 Drupal\basic_auth\Tests\Authenticat
Valid HTML found on
"http://drupal.jx-lj-hxc.lianjia.com:8000/router_test/test11"
Pass Browser BasicAuthTest.php 126 Drupal\basic_auth\Tests\Authenticat
Per user flood prevention gets reset on a successful login.
Pass Browser BasicAuthTestTrai 31 Drupal\basic_auth\Tests\Authenticat
GET http://drupal.jx-lj-hxc.lianjia.com:8000/router_test/test11
returned
403 (6.22 KB).
Pass Browser BasicAuthTestTrai 31 Drupal\basic_auth\Tests\Authenticat
Valid HTML found on
"http://drupal.jx-lj-hxc.lianjia.com:8000/router_test/test11"
Pass Browser BasicAuthTestTrai 31 Drupal\basic_auth\Tests\Authenticat
GET http://drupal.jx-lj-hxc.lianjia.com:8000/router_test/test11
returned
403 (6.22 KB).
Pass Browser BasicAuthTestTrai 31 Drupal\basic_auth\Tests\Authenticat
Valid HTML found on
"http://drupal.jx-lj-hxc.lianjia.com:8000/router_test/test11"
Pass Browser BasicAuthTestTrai 31 Drupal\basic_auth\Tests\Authenticat
GET http://drupal.jx-lj-hxc.lianjia.com:8000/router_test/test11
returned
403 (6.22 KB).
Pass Browser BasicAuthTestTrai 31 Drupal\basic_auth\Tests\Authenticat
Valid HTML found on
"http://drupal.jx-lj-hxc.lianjia.com:8000/router_test/test11"
Pass Browser BasicAuthTest.php 135 Drupal\basic_auth\Tests\Authenticat
The user account is blocked due to per user flood prevention.
Pass Browser BasicAuthTestTrai 31 Drupal\basic_auth\Tests\Authenticat
GET http://drupal.jx-lj-hxc.lianjia.com:8000/router_test/test11
returned
200 (7.08 KB).
Pass Browser BasicAuthTestTrai 31 Drupal\basic_auth\Tests\Authenticat
Valid HTML found on
"http://drupal.jx-lj-hxc.lianjia.com:8000/router_test/test11"
Pass Browser BasicAuthTest.php 140 Drupal\basic_auth\Tests\Authenticat
Per user flood prevention does not block access for other users.
Pass Other run-tests.sh 656 simpletest_script_run_one_test()
Enabled modules: basic_auth, router_test, locale
Pass User login BasicAuthTest.php 150 Drupal\basic_auth\Tests\Authenticat
User created with name cLudjJSG and pass NyejYH6UwE
Pass Browser BasicAuthTestTrai 31 Drupal\basic_auth\Tests\Authenticat
GET http://drupal.jx-lj-hxc.lianjia.com:8000/router_test/test11
returned
200 (7.09 KB).
Pass Browser BasicAuthTestTrai 31 Drupal\basic_auth\Tests\Authenticat
Valid HTML found on
"http://drupal.jx-lj-hxc.lianjia.com:8000/router_test/test11"
Pass Other BasicAuthTest.php 154 Drupal\basic_auth\Tests\Authenticat
Account name is displayed.
Pass Browser BasicAuthTest.php 155 Drupal\basic_auth\Tests\Authenticat
HTTP response is OK
Pass Other run-tests.sh 656 simpletest_script_run_one_test()
Enabled modules: basic_auth, router_test, locale
Pass User login BasicAuthTest.php 163 Drupal\basic_auth\Tests\Authenticat
User created with name moXVg44t and pass 5MScKsJPAW
Pass Browser BasicAuthTest.php 167 Drupal\basic_auth\Tests\Authenticat
GET http://drupal.jx-lj-hxc.lianjia.com:8000/router_test/test11
returned
401 (6.21 KB).
Pass Browser BasicAuthTest.php 167 Drupal\basic_auth\Tests\Authenticat
Valid HTML found on
"http://drupal.jx-lj-hxc.lianjia.com:8000/router_test/test11"
Pass Browser BasicAuthTest.php 168 Drupal\basic_auth\Tests\Authenticat
The user is blocked when no credentials are passed.
Pass Other BasicAuthTest.php 169 Drupal\basic_auth\Tests\Authenticat
No raw exception is displayed on the page.
Pass Other BasicAuthTest.php 170 Drupal\basic_auth\Tests\Authenticat
A user friendly access unauthorized message is displayed.
Pass Browser BasicAuthTestTrai 31 Drupal\basic_auth\Tests\Authenticat
GET http://drupal.jx-lj-hxc.lianjia.com:8000/router_test/test11
returned
403 (6.22 KB).
Pass Browser BasicAuthTestTrai 31 Drupal\basic_auth\Tests\Authenticat
Valid HTML found on
"http://drupal.jx-lj-hxc.lianjia.com:8000/router_test/test11"
Pass Browser BasicAuthTest.php 174 Drupal\basic_auth\Tests\Authenticat
The user is blocked when empty credentials are passed.
Pass Other BasicAuthTest.php 175 Drupal\basic_auth\Tests\Authenticat
A user friendly access denied message is displayed
Pass Browser BasicAuthTestTrai 31 Drupal\basic_auth\Tests\Authenticat
GET http://drupal.jx-lj-hxc.lianjia.com:8000/router_test/test11
returned
403 (6.22 KB).
Pass Browser BasicAuthTestTrai 31 Drupal\basic_auth\Tests\Authenticat
Valid HTML found on
"http://drupal.jx-lj-hxc.lianjia.com:8000/router_test/test11"
Pass Browser BasicAuthTest.php 179 Drupal\basic_auth\Tests\Authenticat
The user is blocked when wrong credentials are passed.
Pass Other BasicAuthTest.php 180 Drupal\basic_auth\Tests\Authenticat
A user friendly access denied message is displayed
thanks
------------------------------------------------------------------------
The remainder of the comments for this report are too long. To view
the rest of the comments, please view the bug report online at
https://bugs.php.net/bug.php?id=70805
--
Edit this bug report at https://bugs.php.net/bug.php?id=70805&edit=1