php / php/php-src

Combination of phpdbg and Generator method causes memory leak

オープン
#12,837 コメント 8 件 リアクション 0 件 担当者 1 名 GitHub で見る

@ndossche がすでに取り組んでいます。

2024年12月30日 から。

  • #17303 @ndossche による — オープン
Bug Category: Generators SAPI: phpdbg Status: Verified
主要言語
C
スター
40.4k
フォーク
8.2k
平均マージ
2日 13時間
マージ済み PR(30日)
96

説明

Description

Run phpdbg on object has generator method causes memory leaks.
It does not occur when run with php command.


The following code:

<?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:

$ 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:

$ php zz.php
string(2) "ok"
int(2097152)
PHP Version

PHP 8.3.0

Operating System

Debian 12

コントリビューションガイド

コントリビューションガイドを開く

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

評価

この issue はまだ評価されていません。

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。