Bug #71163 [Asn->Csd]: Segmentation Fault (cleanup_unfinished_calls)

[email protected]
Newsgroups php.bugs
Message-ID <[email protected]>
Edit report at https://bugs.php.net/bug.php?id=71163&edit=1

 ID:                 71163
 Updated by:         [email protected]
 Reported by:        bowersbros at gmail dot com
 Summary:            Segmentation Fault (cleanup_unfinished_calls)
-Status:             Assigned
+Status:             Closed
 Type:               Bug
 Package:            *General Issues
 Operating System:   Ubuntu 14.04
 PHP Version:        7.0.1
 Assigned To:        laruence
 Block user comment: N
 Private report:     N

 New Comment:

Automatic comment on behalf of [email protected]
Revision: http://git.php.net/?p=php-src.git;a=commit;h=eb4ce3f1a8d3c14bf9245ef730d885be359499a8
Log: Fixed bug #71163 (Segmentation Fault: cleanup_unfinished_calls)


Previous Comments:
------------------------------------------------------------------------
[2015-12-19 04:28:45] [email protected]

A simple reproduce script is:

<?php
function __autoload($name) {
    eval ("class $name { public static function foo() {}}");
    throw new Exception("boom");
}

function test2() {
    try {
        Test::foo();
    } catch (Exception $e) {
    }
}

function test() {
    test2();
}

test();


and I've got fixes, but need more thinking... since there is not only one.. :)

------------------------------------------------------------------------
[2015-12-19 02:19:21] bowersbros at gmail dot com

Clarification:

I have two Virtual Machines running locally with PHP 7.0.1 and the github master branch (labelled as 7.1.0-dev)

Both of these machines are Ubuntu 14.04 based.

The 7.1.0-dev was compiled from source with _only_ --enable-debug configured. Nothing else.

The 7.0.1 was installed via https://launchpad.net/~ondrej/+archive/ubuntu/php-7.0

On the 7.1.0-dev the following commands cause the SegFault:

$ lithium/console/li3 test tests/cases/core/LibrariesTest.php

$ lithium/console/li3 test tests/cases/core

$ lithium/console/li3 test tests/cases

$ lithium/console/li3 test tests

--

On the 7.0.1 setup, the following commands cause the SegFault:

$ lithium/console/li3 test tests

The other commands from the 7.1.0-dev do not cause the SegFault.

However, the segmentation fault is caused by the same test case in the code.

As far as I can see, the cause is an include, but I cannot verify that for certain.

------------------------------------------------------------------------
[2015-12-19 01:44:43] bowersbros at gmail dot com

Description:
------------
When running the unit tests for the Lithium framework (Li3 - https://github.com/unionofrad/lithium), a segmentation fault occurs in one of the tests.

The error thrown is: php: /home/vagrant/php-src/Zend/zend_execute.c:2466: cleanup_unfinished_calls: Assertion `op_num' failed.

I have tried and failed to generate a core dump file, and run it through gdb.

This issue is present in 7.0.0 and 7.0.1, but not in 5.6.14 (not tested others)

It is also current in the current master branch on GitHub (labelled as 7.1.0-dev).

To recreate, clone https://github.com/alexbowers/lithium/tree/feature/alternative-string-fix and run the following command:

lithium/console/li3 test tests/cases/core/LibrariesTest.php

Sometimes this passes. I have two virtual machines locally, and on one this passes, on the other it doesn't.

When it does, running this command causes the SegFault:

lithium/console/li3 test tests





Test script:
---------------
https://github.com/alexbowers/lithium/tree/feature/alternative-string-fix

Expected result:
----------------
No Segmentation Fault (test may fail though)



------------------------------------------------------------------------



--
Edit this bug report at https://bugs.php.net/bug.php?id=71163&edit=1
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.