Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:89190 Return-Path: Mailing-List: contact internals-help@lists.php.net; run by ezmlm Delivered-To: mailing list internals@lists.php.net Received: (qmail 2132 invoked from network); 11 Nov 2015 20:29:29 -0000 Received: from unknown (HELO lists.php.net) (127.0.0.1) by localhost with SMTP; 11 Nov 2015 20:29:29 -0000 Authentication-Results: pb1.pair.com header.from=fmk@webbypixel.com; sender-id=pass Authentication-Results: pb1.pair.com smtp.mail=fmk@webbypixel.com; spf=pass; sender-id=pass Received-SPF: pass (pb1.pair.com: domain webbypixel.com designates 173.255.241.80 as permitted sender) X-PHP-List-Original-Sender: fmk@webbypixel.com X-Host-Fingerprint: 173.255.241.80 mail.webbypixel.com Received: from [173.255.241.80] ([173.255.241.80:50062] helo=mail.webbypixel.com) by pb1.pair.com (ecelerity 2.1.1.9-wez r(12769M)) with ESMTP id 9B/B3-16149-825A3465 for ; Wed, 11 Nov 2015 15:29:28 -0500 Received: from PA004424MAC.local (206-190-75-9.static.twtelecom.net [206.190.75.9]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) (Authenticated sender: frank) by mail.webbypixel.com (Postfix) with ESMTPSA id A6C3460E0; Wed, 11 Nov 2015 12:29:25 -0800 (PST) To: Anatol Belski , 'Dmitry Stogov' References: <56428A30.4060803@php.net> <56439392.2020608@php.net> <01ab01d11cb7$f9605d10$ec211730$@belski.net> <5643993C.3020908@php.net> <5643999D.2070207@webbypixel.com> <56439C2D.70600@webbypixel.com> <01b701d11cbb$f1fd33a0$d5f79ae0$@belski.net> Cc: 'PHP Internals' Message-ID: <5643A525.10607@webbypixel.com> Date: Wed, 11 Nov 2015 12:29:25 -0800 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.11; rv:38.0) Gecko/20100101 Thunderbird/38.3.0 MIME-Version: 1.0 In-Reply-To: <01b701d11cbb$f1fd33a0$d5f79ae0$@belski.net> Content-Type: multipart/alternative; boundary="------------060803050207060309050509" Subject: Re: [PHP-DEV] PHP 7 Segmentation fault From: fmk@webbypixel.com ("Frank M. Kromann") --------------060803050207060309050509 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit Hi Anatol, I created a new clone of the repository and I do get the _live_range references. frank@dev Source]$ git clone http://git.php.net/repository/php-src.git php-tmp Cloning into 'php-tmp'... remote: Counting objects: 640667, done. remote: Compressing objects: 100% (128774/128774), done. remote: Total 640667 (delta 512461), reused 638458 (delta 510563) Receiving objects: 100% (640667/640667), 160.17 MiB | 31.95 MiB/s, done. Resolving deltas: 100% (512461/512461), done. [frank@dev Source]$ cd php-tmp/ [frank@dev php-tmp]$ grep -rn _live_range Zend/ Zend/zend_opcode.c:83: op_array->last_live_range = 0; Zend/zend_compile.h:176:typedef struct _zend_live_range { Zend/zend_compile.h:179:} zend_live_range; Zend/zend_compile.h:364: int last_live_range; Zend/zend_compile.h:366: zend_live_range *live_range; Zend/zend_compile.c:579:static uint32_t zend_start_live_range(zend_op_array *op_array, uint32_t start) /* {{{ */ Zend/zend_compile.c:581: zend_live_range *range; Zend/zend_compile.c:583: op_array->last_live_range++; Zend/zend_compile.c:584: op_array->live_range = erealloc(op_array->live_range, sizeof(zend_live_range) * op_array->last_live_range); Zend/zend_compile.c:585: range = op_array->live_range + op_array->last_live_range - 1; Zend/zend_compile.c:587: return op_array->last_live_range - 1; Zend/zend_compile.c:591:static void zend_end_live_range(zend_op_array *op_array, uint32_t offset, uint32_t end) /* {{{ */ Zend/zend_compile.c:593: zend_live_range *range = op_array->live_range + offset; Zend/zend_compile.c:595: if (range->start == end && offset == op_array->last_live_range - 1) { Zend/zend_compile.c:596: op_array->last_live_range--; Zend/zend_compile.c:619: info.u.live_range_offset = zend_start_live_range(CG(active_op_array), start); Zend/zend_compile.c:643: zend_end_live_range(CG(active_op_array), loop_var->u.live_range_offset, end); Zend/zend_compile.c:6472: range = zend_start_live_range(CG(active_op_array), get_next_op_number(CG(active_op_array))); Zend/zend_compile.c:6485: zend_end_live_range(CG(active_op_array), range, get_next_op_number(CG(active_op_array))); Zend/zend_compile.c:6807: uint32_t range = zend_start_live_range(CG(active_op_array), rope_init_lineno); Zend/zend_compile.c:6822: zend_end_live_range(CG(active_op_array), range, opline - CG(active_op_array)->opcodes); Zend/zend_execute.c:2552: for (i = 0; i < EX(func)->op_array.last_live_range; i++) { Zend/zend_execute.c:2553: const zend_live_range *range = &EX(func)->op_array.live_range[i]; - Frank On 11/11/15 12:02, Anatol Belski wrote: > >> -----Original Message----- >> From: Frank M. Kromann [mailto:fmk@webbypixel.com] >> Sent: Wednesday, November 11, 2015 8:51 PM >> To: Anatol Belski ; 'Dmitry Stogov' >> Cc: 'PHP Internals' >> Subject: Re: [PHP-DEV] PHP 7 Segmentation fault >> >> Just switched to PHP-7.0 and there is no longer any references to _live_range >> but the problem with the segfault is still there. Here is a new backtrace. >> >> #0 zend_mm_alloc_small (size=, bin_num=, >> heap=) at /home/frank/Source/php-src- >> 7/Zend/zend_alloc.c:1291 >> #1 zend_mm_alloc_heap (size=, heap=) at >> /home/frank/Source/php-src-7/Zend/zend_alloc.c:1358 >> #2 _emalloc (size=2) at /home/frank/Source/php-src-7/Zend/zend_alloc.c:2442 >> #3 0x00000000007e724d in _safe_emalloc (nmemb=nmemb@entry=24, >> size=, offset=offset@entry=0) at >> /home/frank/Source/php-src-7/Zend/zend_alloc.c:2510 >> #4 0x00000000007f0b93 in zend_compile_params >> (ast=ast@entry=0x7ffff0ab7250, >> return_type_ast=return_type_ast@entry=0x0) at >> /home/frank/Source/php-src-7/Zend/zend_compile.c:4429 >> #5 0x00000000007fa240 in zend_compile_func_decl (result=result@entry=0x0, >> ast=ast@entry=0x7ffff0ab7668) at >> /home/frank/Source/php-src-7/Zend/zend_compile.c:4879 >> #6 0x00000000007f799a in zend_compile_stmt (ast=0x7ffff0ab7668) at >> /home/frank/Source/php-src-7/Zend/zend_compile.c:7048 >> #7 0x00000000007f8487 in zend_compile_stmt_list >> (ast=ast@entry=0x7ffff0ab8388) at >> /home/frank/Source/php-src-7/Zend/zend_compile.c:4347 >> #8 0x00000000007f781e in zend_compile_stmt >> (ast=ast@entry=0x7ffff0ab8388) at >> /home/frank/Source/php-src-7/Zend/zend_compile.c:6992 >> #9 0x00000000007f88bf in zend_compile_class_decl >> (ast=ast@entry=0x7ffff0ab8720) at >> /home/frank/Source/php-src-7/Zend/zend_compile.c:5289 >> #10 0x00000000007f7938 in zend_compile_stmt >> (ast=ast@entry=0x7ffff0ab8720) at >> /home/frank/Source/php-src-7/Zend/zend_compile.c:7060 >> #11 0x00000000007fa67a in zend_compile_top_stmt (ast=0x7ffff0ab8720) at >> /home/frank/Source/php-src-7/Zend/zend_compile.c:6966 >> #12 0x00000000007fa6bf in zend_compile_top_stmt (ast=0x7ffff0ab4018) at >> /home/frank/Source/php-src-7/Zend/zend_compile.c:6961 >> #13 0x00000000007cde07 in compile_file (file_handle=, >> type=) at Zend/zend_language_scanner.l:607 >> #14 0x000000000065434e in phar_compile_file (file_handle=> out>, type=) at >> /home/frank/Source/php-src-7/ext/phar/phar.c:3311 >> #15 0x00000000007cdf35 in compile_filename (type=2, >> filename=filename@entry=0x7ffff0a14550) at >> Zend/zend_language_scanner.l:647 >> #16 0x0000000000899a2f in ZEND_INCLUDE_OR_EVAL_SPEC_CV_HANDLER () >> at >> /home/frank/Source/php-src-7/Zend/zend_vm_execute.h:29114 >> #17 0x000000000084cecb in execute_ex (ex=) at >> /home/frank/Source/php-src-7/Zend/zend_vm_execute.h:414 >> #18 0x00000000007fe607 in zend_call_function (fci=0x7ffff0a89aa0, >> fci@entry=0x7fffffffa8f0, fci_cache=fci_cache@entry=0x7fffffffa8c0) >> at /home/frank/Source/php-src-7/Zend/zend_execute_API.c:854 >> #19 0x000000000082b244 in zend_call_method (object=0x7ffff0aa38d8, >> obj_ce=, fn_proxy=, >> function_name=0x7ffff0aaf108 >> "composer\\autoload\\classloader::loadclass\001", >> function_name_len=, retval_ptr=retval_ptr@entry=0x0, >> param_count=param_count@entry=1, arg1=0x7ffff0a14430, >> arg2=arg2@entry=0x0) at >> /home/frank/Source/php-src-7/Zend/zend_interfaces.c:104 >> #20 0x00000000006c1324 in zif_spl_autoload_call (execute_data=> out>, return_value=) at >> /home/frank/Source/php-src-7/ext/spl/php_spl.c:425 >> #21 0x00000000007fe6a0 in zend_call_function (fci=fci@entry=0x7fffffffab40, >> fci_cache=fci_cache@entry=0x7fffffffab10) >> at /home/frank/Source/php-src-7/Zend/zend_execute_API.c:873 >> #22 0x00000000007feec9 in zend_lookup_class_ex >> (name=name@entry=0x7ffff0a55e80, key=0x7ffff0a70420, >> use_autoload=use_autoload@entry=1) >> at /home/frank/Source/php-src-7/Zend/zend_execute_API.c:1036 >> #23 0x00000000007ffa18 in zend_fetch_class_by_name >> (class_name=0x7ffff0a55e80, key=, >> fetch_type=fetch_type@entry=512) >> at /home/frank/Source/php-src-7/Zend/zend_execute_API.c:1383 >> #24 0x000000000089af51 in ZEND_NEW_SPEC_CONST_HANDLER () at >> /home/frank/Source/php-src-7/Zend/zend_vm_execute.h:3354 >> #25 0x000000000084cecb in execute_ex (ex=) at >> /home/frank/Source/php-src-7/Zend/zend_vm_execute.h:414 >> #26 0x000000000089d969 in zend_execute (op_array=, >> return_value=) at >> /home/frank/Source/php-src-7/Zend/zend_vm_execute.h:458 >> #27 0x000000000080db37 in zend_execute_scripts (type=type@entry=8, >> retval=retval@entry=0x0, file_count=file_count@entry=3) at >> /home/frank/Source/php-src-7/Zend/zend.c:1428 >> #28 0x00000000007a2ae0 in php_execute_script >> (primary_file=primary_file@entry=0x7fffffffd070) at >> /home/frank/Source/php-src-7/main/main.c:2471 >> #29 0x000000000089f78a in do_cli (argc=4, argv=0x1167c60) at >> /home/frank/Source/php-src-7/sapi/cli/php_cli.c:974 >> #30 0x0000000000443467 in main (argc=4, argv=0x1167c60) at >> /home/frank/Source/php-src-7/sapi/cli/php_cli.c:1345 >> > Ok, but in master there's no zend_add_live_range() as well, so that is what was strange. Could you please USE_ZEND_ALLOC=0 to collect the BT? > > Thanks > > Anatol > > -- Frank M. Kromann, M.Sc.E.E. Web by Pixel, Inc. Phone: +1 949 742 7533 Fax: +1 949 742 7534 Cell: +1 949 702 1794 Denmark: +45 78 79 11 48 Web: http://webbypixel.com --------------060803050207060309050509--