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