[php-src] Issue #12837: Combination of phpdbg and Generator method causes memory leak
| From: | ngyuki | Date: | Thu, 30 Nov 2023 13:46:09 +0000 |
| Subject: | [php-src] Issue #12837: Combination of phpdbg and Generator method causes memory leak | ||
| Groups: | php.bugs | ||
| Request: | Send a blank email to php-bugs+get-245942@lists.php.net to get a copy of this message | ||
Issue: https://github.com/php/php-src/issues/12837
Author: ngyuki
### Description
Run phpdbg on object has generator method causes memory leaks.
It does not occur when run with php command.
---
The following code:
```php
<?php
class A
{
private $s;
public function __construct()
{
$this->s = str_repeat('a', 1000000);
}
public function iterate()
{
yield 1;
}
}
for ($i=0; $i<1000000; $i++) {
$arr = iterator_to_array((new A())->iterate());
}
var_dump('ok', memory_get_peak_usage(true));
```
Resulted in this output:
```console
$ phpdbg -qrr zz.php
[PHP Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 1003520
bytes) in /w/zz.php on line 8]
```
But I expected this output instead:
```console
$ php zz.php
string(2) "ok"
int(2097152)
```
### PHP Version
PHP 8.3.0
### Operating System
Debian 12