Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Assertion failure in gc with invalid variable (OOM) #16835

Open
YuanchengJiang opened this issue Nov 17, 2024 · 3 comments
Open

Assertion failure in gc with invalid variable (OOM) #16835

YuanchengJiang opened this issue Nov 17, 2024 · 3 comments

Comments

@YuanchengJiang
Copy link

YuanchengJiang commented Nov 17, 2024

Description

The following code:

<?php
$cls = new finfo();
class foo {
    public $x;
    static public $y;
    public function a() {
        return $this->x;
    }
    static public function b() {
        return self::$y;
    }
}
$foo = new foo;
$h = $foo->a()[0]->a;
$h = foo::b()[1]->b;
var_dump($h);
$fusion = $h;
$base = curl_init('http://www.google.com/');
curl_setopt($base, CURLOPT_RETURNTRANSFER, true);
$mh = curl_multi_init();
for ($i = 0; $fusion < 2; ++$i) {
    $ch = curl_copy_handle($base);
    curl_setopt($ch, CURLOPT_HTTPHEADER, ['Foo: Bar']);
    curl_multi_add_handle($mh, $ch);
}
?>

Resulted in this output:

php: Zend/zend_types.h:1346: uint32_t zend_gc_delref(zend_refcounted_h *): Assertion `p->refcount > 0' failed.
Aborted (core dumped)

PHP Version

nightly

Operating System

ubuntu 22.04

@devnexen
Copy link
Member

can't reproduce this one, is there any forgotten detail ?

@YuanchengJiang
Copy link
Author

@devnexen update a new repro

@nielsdos
Copy link
Member

Right, this is another OOM bug; we're likely ending up with a general solution in the future for these kinds of issues.

@nielsdos nielsdos changed the title Assertion failure in gc with invalid variable Assertion failure in gc with invalid variable (OOM) Nov 17, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants