Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:89873 Return-Path: Mailing-List: contact internals-help@lists.php.net; run by ezmlm Delivered-To: mailing list internals@lists.php.net Received: (qmail 3365 invoked from network); 22 Dec 2015 18:12:35 -0000 Received: from unknown (HELO lists.php.net) (127.0.0.1) by localhost with SMTP; 22 Dec 2015 18:12:35 -0000 Authentication-Results: pb1.pair.com smtp.mail=dmitry@zend.com; spf=pass; sender-id=pass Authentication-Results: pb1.pair.com header.from=dmitry@zend.com; sender-id=pass Received-SPF: pass (pb1.pair.com: domain zend.com designates 209.85.213.174 as permitted sender) X-PHP-List-Original-Sender: dmitry@zend.com X-Host-Fingerprint: 209.85.213.174 mail-ig0-f174.google.com Received: from [209.85.213.174] ([209.85.213.174:36823] helo=mail-ig0-f174.google.com) by pb1.pair.com (ecelerity 2.1.1.9-wez r(12769M)) with ESMTP id 60/CF-51216-29299765 for ; Tue, 22 Dec 2015 13:12:35 -0500 Received: by mail-ig0-f174.google.com with SMTP id ph11so65742316igc.1 for ; Tue, 22 Dec 2015 10:12:34 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=zend-com.20150623.gappssmtp.com; s=20150623; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; bh=bqeSSfobAeNI1iUgavxJphoSYRdGYMshEdN+OMg9MY4=; b=RSTqm7U5r0bIVIRdOGrn0jKmeS2F76jC257Lrf0ZAsofbkVvIo2+DyoHSIJWs0FAJu MXJ9GCBuQNA2eawQ33ZlEBh85CMhov53SYSQMJBLQih8PZWPiaajDpokSNKrEC1Vo10D i527RlF8CVhg9Nq1slck7lt1AwvXGdorT9C5TkOdm2weh27m/dJ2LJlAJedi/UTL2Phb 09YzX558cJQiYNt0tEG6hCDOOXNfepvXDe1hBgF9bWl5MDTU7EkB+nZCSf0bjcYRTQUp b2iCHMVXW4EyCLf4LNahNSz5hKvuEGinpxmU/aw9REsF+/rwaenrgmMXWreffsLIBWui U9cg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:date :message-id:subject:from:to:cc:content-type; bh=bqeSSfobAeNI1iUgavxJphoSYRdGYMshEdN+OMg9MY4=; b=YOlzWeVdcp6/fnfHfqfJPyEzzFAE3zBFxx84tfC3Yo42TRyD+JkLHDHUIycPqsZe7w IXeUoxBO5UIzOxpdNAGHk9oC1n8qpqtbDXwW3PzCyu30sLT1K0N0+zkRbfNzcUFeN5I1 DFNU+IWeosmBuprASLyai9sAJcR6R7aNRZJU32AFuaratqsTqbqkxn2kdX9LEKrxu7M6 1CP27VTca4g4iLNMzQhjT4IhUmg/OM/mQ3dHQJTUAD8nUI0R0npB4v8/u+x0Cx3HLvfd uFxcOBz2HWLFHih3zexdiU23BW11Pf4iVLgMzAoWmbcmNLDNkI9+79007Qhq2f+oAls7 nedg== X-Gm-Message-State: ALoCoQniEvXUFCsJH2ZFSghwYMUsuv/XtSp+OwvgKuj6QVBQssYJjejMEFUNamG7LTS5XArlPJCJgVlQWIOoD7jZIjyIYL1XhZHNO5XrYqQelF10a2YtunlTZTPnXnABmWS16yEV8bMug1GlDBE09vIHK9PQDMEomiwLIfeAA8njvOjDi6fRbMYOe4KgGiM5zvtZQrr8G5Lmz8P+Ed+J9C5fEutQIRei5w== MIME-Version: 1.0 X-Received: by 10.50.164.131 with SMTP id yq3mr25793903igb.74.1450807951292; Tue, 22 Dec 2015 10:12:31 -0800 (PST) Received: by 10.50.210.10 with HTTP; Tue, 22 Dec 2015 10:12:31 -0800 (PST) In-Reply-To: <4342ECED904143CD9AC7AA35F2F1481B@pc1> References: <8E.46.23339.4FA22565@pb1.pair.com> <4342ECED904143CD9AC7AA35F2F1481B@pc1> Date: Tue, 22 Dec 2015 21:12:31 +0300 Message-ID: To: Matt Wilmas Cc: PHP internals list , Lior Kaplan , Andrea Faulds Content-Type: multipart/alternative; boundary=089e0122f6e0931ba20527808c4e Subject: Re: Mysterious crashes (WAS: Re: Pear fetch script problem on PHP 7.0) From: dmitry@zend.com (Dmitry Stogov) --089e0122f6e0931ba20527808c4e Content-Type: text/plain; charset=UTF-8 Hi Matt, On Tue, Dec 22, 2015 at 8:36 PM, Matt Wilmas wrote: > Hi all, > > Lior, which compiler are you using? You can still reproduce the problem? > Can you run it through Valgrind? > > I'm getting random crashes I can't figure out on 64-bit Linux after just > making a very trivial change. :-/ The backtrace is the same up to > compile_file() (although maybe that doesn't mean much? hmm). > > Dmitry, to reproduce, just add another GLOBAL REGISTER variable to > zend_vm_execute, and then set it in execute_ex(). An empty file will crash > it. It does NOT crash with --enable-debug, nor with certain combinations > of optimization level and global register. > Using another global register is not a trivial change. > %r12 with -O2 seems to consistently fail, but with -O3 it might be %r13, > etc. > In general both should work fine, but it seems like this feature is not well debugged in GCC and may lead to miscompilation. > Now, the question: Is that little change triggering a bug in GCC 4.8? Or > is it somehow revealing a PHP problem?! > It may be a GCC bug, as well as a bug in your code... may be you need to save/restore it manually in execute_ex()? Thanks. Dmitry. > > > Thanks, > Matt > > > ----- Original Message ----- > From: "Lior Kaplan" > Sent: Monday, November 23, 2015 > > Hi, >> >> Thanks Ferenc for checking. >> >> trying to debug this, I've added "echo var_dump($argv);" in the begining >> of >> the script, but now it segfault. >> >> before: >> sh-3.2# /php-7.0.0RC7/sapi/cli/php -n /php-7.0.0RC7/pear/fetch.php " >> http://5.77.39.20/install-pear-nozlib.phar" pear/install-pear-nozlib.phar >> >> Fatal error: Redefinition of parameter $argv in >> /php-7.0.0RC7/pear/fetch.php on line 3 >> sh-3.2# /php-7.0.0RC7/sapi/cli/php -n -m >> [PHP Modules] >> Core >> date >> dom >> filter >> hash >> iconv >> json >> libxml >> mysqlnd >> openssl >> pcre >> PDO >> pdo_mysql >> pdo_pgsql >> pdo_sqlite >> readline >> Reflection >> session >> SimpleXML >> SPL >> sqlite3 >> standard >> xml >> xmlreader >> xmlwriter >> zlib >> >> [Zend Modules] >> >> after: >> >> (gdb) r -n /php-7.0.0RC7/pear/fetch.php " >> http://5.77.39.20/install-pear-nozlib.phar" pear/install-pear-nozlib.phar >> Starting program: /php-7.0.0RC7/sapi/cli/php -n >> /php-7.0.0RC7/pear/fetch.php "http://5.77.39.20/install-pear-nozlib.phar" >> pear/install-pear-nozlib.phar >> Reading symbols for shared libraries >> ++++++................................................ done >> Reading symbols for shared libraries ........................ done >> >> Program received signal EXC_BAD_ACCESS, Could not access memory. >> Reason: KERN_INVALID_ADDRESS at address: 0x0000000000000010 >> zend_try_compile_cv (result=0x7fff5fbfe440, ast=0x103e6f100) at >> zend_compile.c:2178 >> 2178 if (zend_string_equals_literal(name, "this")) { >> (gdb) bt >> #0 zend_try_compile_cv (result=0x7fff5fbfe440, ast=0x103e6f100) at >> zend_compile.c:2178 >> #1 0x00000001002b7ff1 in zend_compile_simple_var [inlined] () at >> /php-7.0.0RC7/Zend/zend_compile.c:2226 >> #2 0x00000001002b7ff1 in zend_compile_var (result=0x7fff5fbfe440, >> ast=0x103e6f100, type=0) at zend_compile.c:7219 >> #3 0x00000001002bb46d in zend_compile_args (ast=0xfffffffffffff2f5, >> fbc=0x103e6f100) at zend_compile.c:2722 >> #4 0x00000001002b7e62 in zend_compile_call_common (result=0x7fff5fbfe648, >> args_ast=0xfffffffffffff2f5, fbc=0x10232e050) at zend_compile.c:2810 >> #5 0x00000001002ba8e5 in zend_compile_call (result=0x7fff5fbfe648, >> ast=0x103e6f100, type=65523712) at zend_compile.c:3245 >> #6 0x00000001002b7366 in zend_compile_expr (result=0x7fff5fbfe648, >> ast=0x103e6f100) at zend_compile.c:7111 >> #7 0x00000001002b428f in zend_compile_echo [inlined] () at >> /php-7.0.0RC7/Zend/zend_compile.c:3616 >> #8 0x00000001002b428f in zend_compile_stmt (ast=0x103e750d0) at >> zend_compile.c:7007 >> #9 0x00000001002b7990 in zend_compile_top_stmt (ast=0x103e750d0) at >> zend_compile.c:6966 >> #10 0x00000001002b797d in zend_compile_top_stmt (ast=0x103e750e0) at >> zend_compile.c:6961 >> #11 0x00000001002b797d in zend_compile_top_stmt (ast=0x103e770a8) at >> zend_compile.c:6961 >> #12 0x000000010029e6f2 in compile_file (file_handle=0x7fff5fbfe728, >> type=65523712) at zend_language_scanner.l:607 >> #13 0x00000001002cc4dc in zend_execute_scripts (type=8, >> retval=0x7fff5fbfe990, file_count=1606412688) at zend.c:1422 >> #14 0x000000010026a1a9 in php_execute_script (primary_file=0x7fff5fbff6d8) >> at main.c:2471 >> #15 0x000000010035dad4 in do_cli [inlined] () at >> /php-7.0.0RC7/sapi/cli/php_cli.c:974 >> #16 0x000000010035dad4 in main (argc=1606416352, argv=0x7fff5fbff7e0) at >> php_cli.c:1345 >> >> (again, works fine on Linux) >> >> >> >> >> Kaplan >> >> >> >> On Sun, Nov 22, 2015 at 10:51 PM, Andrea Faulds wrote: >> >> Hi Lior, >>> >>> Lior Kaplan wrote: >>> >>> Fatal error: Redefinition of parameter $argv in >>>> /php-7.0.0RC7/pear/fetch.php on line 3 >>>> make: *** [install-pear] Error 255 >>>> >>>> >>> This is a strange and rather concerning error message. If I look at the >>> source code of /pear/fetch.php in php-src, line three looks like this: >>> >>> function usage($argv) { >>> >>> $argv here is only specified once in the parameter list, yet it produces >>> an error. Now, presumably this is some sort of conflict with the global >>> variable $argv. But that's a global, not a superglobal, so it really >>> shouldn't cause an error here. >>> >>> This looks like it might be a serious PHP 7 bug. >>> >>> And yet I can't reproduce it by running pear/fetch.php. Is something >>> weird >>> going on here? >>> >>> Thanks. >>> >>> -- >>> Andrea Faulds >>> http://ajf.me/ >>> >> > --089e0122f6e0931ba20527808c4e--