Как исправить утечку памяти в моем приложении Codeigniter, в котором запущен PHP с Pthreads? Неустранимая ошибка: допустимый объем памяти 2147483648 байт исчерпан

Я запускаю приложение CodeIgniter поверх Nginx и PHP-FPM.

PHP был скомпилирован вручную с поддержкой ZTS и Pthreads

Я пытаюсь запустить ожидающие задачи из приложения с помощью cron (php spark task:run tasks) в CLI и каждый раз получаю эту ошибку:

Fatal error: Allowed memory size of 2147483648 bytes exhausted (tried to allocate 3347974853963771560 bytes) in /home/nginx/domains/mydomain.com/app/Commands/Task.php on line 62

Вот код, связанный с ошибкой:

require APPPATH . 'Vendor/autoload.php';
    $UserId = $Task->task_destination;
    $ClientSettings = [
        'base_uri'  =>  'https://www.example.com',
        'cookies'   =>  $cookie_jar = new FileCookieJar(

LINE 62! APPPATH . 'Vendor/abc/app-php/sessions/' . $Account->account_username . '/' . $Account->account_username . '-cookies.dat',
            false
        )
    ];

Кажется, есть некоторые проблемы с утечкой памяти, связанные с pthreads, поскольку задачи используют его многопоточность.

Что я пытался исправить до сих пор:

1) Я установил ограничение памяти в 2 ГБ ОЗУ в файле.ini PHP CLI .

2) Я попытался увеличить размер памяти, запустив php -d memory_limit=2048M перед командой spark

3) Пробовал менять память прямо в Codeigniter

Это действительно расстраивает, и на данный момент я даже не знаю, проблема ли это в коде или проблема на стороне сервера. Кто-нибудь знает, что может быть не так? Спасибо

0 ответов

Другие вопросы по тегам