-
Notifications
You must be signed in to change notification settings - Fork 0
Description
Hello,
Describe the bug
I'm facing a php crash when uploading animated GIF files using Quantum Manager on Joomla 5.3.0
To Reproduce
Steps to reproduce the behavior:
- From Joomla backend go to files
- Browse to ../images/
- Drag'nDrop or select animated GIF files (one or more)
- Upload is done but Php crashes
Expected behavior
Php should not crash
System Information (please complete the following information):
- Extensions version: 3.2.4
- PHP version: 8.2.29
- Server OS: Debian 6.1.153-1
- Browser: Firefox lastest version
Additional context
Php logs show FastCGI Process manager error:
sept. 24 15:19:30 SERVER1 systemd[1]: Started php8.2-fpm.service - The PHP 8.2 FastCGI Process Manager.
sept. 24 20:04:45 SERVER1 systemd[1]: php8.2-fpm.service: A process of this unit has been killed by the OOM killer.
sept. 24 20:04:45 SERVER1 systemd[1]: php8.2-fpm.service: Failed with result 'oom-kill'.
sept. 24 20:04:45 SERVER1 systemd[1]: php8.2-fpm.service: Consumed 7min 10.076s CPU time.
Done a test on a local Wampserver Joomla site. The php error logs shows memory allocation error on splitter.php:
[25-Sep-2025 11:22:32 UTC] PHP Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 8192 bytes) in D:\WWW\Joomla_522\libraries\jinterventionimage\libraries\vendor\intervention\gif\src\Splitter.php on line 162
[25-Sep-2025 11:22:32 UTC] PHP Stack trace:
[25-Sep-2025 11:22:32 UTC] PHP 1. {main}() D:\WWW\Joomla_522\administrator\index.php:0
[25-Sep-2025 11:22:32 UTC] PHP 2. require_once() D:\WWW\Joomla_522\administrator\index.php:32
[25-Sep-2025 11:22:32 UTC] PHP 3. Joomla\CMS\Application\CMSApplication->execute() D:\WWW\Joomla_522\administrator\includes\app.php:58
[25-Sep-2025 11:22:32 UTC] PHP 4. Joomla\CMS\Application\AdministratorApplication->doExecute() D:\WWW\Joomla_522\libraries\src\Application\CMSApplication.php:304
[25-Sep-2025 11:22:32 UTC] PHP 5. Joomla\CMS\Application\AdministratorApplication->dispatch($component = uninitialized) D:\WWW\Joomla_522\libraries\src\Application\AdministratorApplication.php:205
[25-Sep-2025 11:22:32 UTC] PHP 6. Joomla\CMS\Component\ComponentHelper::renderComponent($option = 'com_quantummanager', $params = uninitialized) D:\WWW\Joomla_522\libraries\src\Application\AdministratorApplication.php:150
[25-Sep-2025 11:22:32 UTC] PHP 7. Joomla\CMS\Dispatcher\ComponentDispatcher->dispatch() D:\WWW\Joomla_522\libraries\src\Component\ComponentHelper.php:361
[25-Sep-2025 11:22:32 UTC] PHP 8. Joomla\CMS\MVC\Controller\BaseController->execute($task = 'generatePreviewImage') D:\WWW\Joomla_522\libraries\src\Dispatcher\ComponentDispatcher.php:143
[25-Sep-2025 11:22:32 UTC] PHP 9. Joomla\Component\QuantumManager\Administrator\Controller\QuantumviewfilesController->generatePreviewImage() D:\WWW\Joomla_522\libraries\src\MVC\Controller\BaseController.php:730
[25-Sep-2025 11:22:32 UTC] PHP 10. Joomla\Component\QuantumManager\Administrator\Filesystem\LocalFilesystem::generatePreviewImage($path = 'root/images/test-gif', $scope = 'docs', $file = 'tuto-15.gif') D:\WWW\Joomla_522\administrator\components\com_quantummanager\src\Controller\QuantumviewfilesController.php:295
[25-Sep-2025 11:22:32 UTC] PHP 11. Intervention\Image\ImageManager->read($input = 'D:\WWW\Joomla_522\images\test-gif\tuto-15.gif', $decoders = uninitialized) D:\WWW\Joomla_522\administrator\components\com_quantummanager\src\Filesystem\LocalFilesystem.php:1219
[25-Sep-2025 11:22:32 UTC] PHP 12. Intervention\Image\Drivers\AbstractDriver->handleInput($input = 'D:\WWW\Joomla_522\images\test-gif\tuto-15.gif', $decoders = []) D:\WWW\Joomla_522\libraries\jinterventionimage\libraries\vendor\intervention\image\src\ImageManager.php:87
[25-Sep-2025 11:22:32 UTC] PHP 13. Intervention\Image\InputHandler->handle($input = 'D:\WWW\Joomla_522\images\test-gif\tuto-15.gif') D:\WWW\Joomla_522\libraries\jinterventionimage\libraries\vendor\intervention\image\src\Drivers\AbstractDriver.php:56
[25-Sep-2025 11:22:32 UTC] PHP 14. Intervention\Image\Drivers\Gd\Decoders\FilePathImageDecoder->decode($input = 'D:\WWW\Joomla_522\images\test-gif\tuto-15.gif') D:\WWW\Joomla_522\libraries\jinterventionimage\libraries\vendor\intervention\image\src\InputHandler.php:97
[25-Sep-2025 11:22:32 UTC] PHP 15. Intervention\Image\Drivers\Gd\Decoders\NativeObjectDecoder->decodeGif($input = 'D:\WWW\Joomla_522\images\test-gif\tuto-15.gif') D:\WWW\Joomla_522\libraries\jinterventionimage\libraries\vendor\intervention\image\src\Drivers\Gd\Decoders\FilePathImageDecoder.php:33
[25-Sep-2025 11:22:32 UTC] PHP 16. Intervention\Gif\Splitter->coalesceToResources() D:\WWW\Joomla_522\libraries\jinterventionimage\libraries\vendor\intervention\image\src\Drivers\Gd\Decoders\NativeObjectDecoder.php:92
[25-Sep-2025 11:22:32 UTC] PHP 17. Intervention\Gif\Splitter->toResources() D:\WWW\Joomla_522\libraries\jinterventionimage\libraries\vendor\intervention\gif\src\Splitter.php:178
[25-Sep-2025 11:22:32 UTC] PHP 18. imagepalettetotruecolor($image = class GdImage { }) D:\WWW\Joomla_522\libraries\jinterventionimage\libraries\vendor\intervention\gif\src\Splitter.php:162
[25-Sep-2025 11:22:38 UTC] PHP Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 8192 bytes) in D:\WWW\Joomla_522\libraries\jinterventionimage\libraries\vendor\intervention\gif\src\Splitter.php on line 162
[25-Sep-2025 11:22:38 UTC] PHP Stack trace:
[25-Sep-2025 11:22:38 UTC] PHP 1. {main}() D:\WWW\Joomla_522\administrator\index.php:0
[25-Sep-2025 11:22:38 UTC] PHP 2. require_once() D:\WWW\Joomla_522\administrator\index.php:32
[25-Sep-2025 11:22:38 UTC] PHP 3. Joomla\CMS\Application\CMSApplication->execute() D:\WWW\Joomla_522\administrator\includes\app.php:58
[25-Sep-2025 11:22:38 UTC] PHP 4. Joomla\CMS\Application\AdministratorApplication->doExecute() D:\WWW\Joomla_522\libraries\src\Application\CMSApplication.php:304
[25-Sep-2025 11:22:38 UTC] PHP 5. Joomla\CMS\Application\AdministratorApplication->dispatch($component = uninitialized) D:\WWW\Joomla_522\libraries\src\Application\AdministratorApplication.php:205
[25-Sep-2025 11:22:38 UTC] PHP 6. Joomla\CMS\Component\ComponentHelper::renderComponent($option = 'com_quantummanager', $params = uninitialized) D:\WWW\Joomla_522\libraries\src\Application\AdministratorApplication.php:150
[25-Sep-2025 11:22:38 UTC] PHP 7. Joomla\CMS\Dispatcher\ComponentDispatcher->dispatch() D:\WWW\Joomla_522\libraries\src\Component\ComponentHelper.php:361
[25-Sep-2025 11:22:38 UTC] PHP 8. Joomla\CMS\MVC\Controller\BaseController->execute($task = 'generatePreviewImage') D:\WWW\Joomla_522\libraries\src\Dispatcher\ComponentDispatcher.php:143
[25-Sep-2025 11:22:38 UTC] PHP 9. Joomla\Component\QuantumManager\Administrator\Controller\QuantumviewfilesController->generatePreviewImage() D:\WWW\Joomla_522\libraries\src\MVC\Controller\BaseController.php:730
[25-Sep-2025 11:22:38 UTC] PHP 10. Joomla\Component\QuantumManager\Administrator\Filesystem\LocalFilesystem::generatePreviewImage($path = 'root/images/test-gif', $scope = 'docs', $file = 'tuto-64.gif') D:\WWW\Joomla_522\administrator\components\com_quantummanager\src\Controller\QuantumviewfilesController.php:295
[25-Sep-2025 11:22:38 UTC] PHP 11. Intervention\Image\ImageManager->read($input = 'D:\WWW\Joomla_522\images\test-gif\tuto-64.gif', $decoders = uninitialized) D:\WWW\Joomla_522\administrator\components\com_quantummanager\src\Filesystem\LocalFilesystem.php:1219
[25-Sep-2025 11:22:38 UTC] PHP 12. Intervention\Image\Drivers\AbstractDriver->handleInput($input = 'D:\WWW\Joomla_522\images\test-gif\tuto-64.gif', $decoders = []) D:\WWW\Joomla_522\libraries\jinterventionimage\libraries\vendor\intervention\image\src\ImageManager.php:87
[25-Sep-2025 11:22:38 UTC] PHP 13. Intervention\Image\InputHandler->handle($input = 'D:\WWW\Joomla_522\images\test-gif\tuto-64.gif') D:\WWW\Joomla_522\libraries\jinterventionimage\libraries\vendor\intervention\image\src\Drivers\AbstractDriver.php:56
[25-Sep-2025 11:22:38 UTC] PHP 14. Intervention\Image\Drivers\Gd\Decoders\FilePathImageDecoder->decode($input = 'D:\WWW\Joomla_522\images\test-gif\tuto-64.gif') D:\WWW\Joomla_522\libraries\jinterventionimage\libraries\vendor\intervention\image\src\InputHandler.php:97
[25-Sep-2025 11:22:38 UTC] PHP 15. Intervention\Image\Drivers\Gd\Decoders\NativeObjectDecoder->decodeGif($input = 'D:\WWW\Joomla_522\images\test-gif\tuto-64.gif') D:\WWW\Joomla_522\libraries\jinterventionimage\libraries\vendor\intervention\image\src\Drivers\Gd\Decoders\FilePathImageDecoder.php:33
[25-Sep-2025 11:22:38 UTC] PHP 16. Intervention\Gif\Splitter->coalesceToResources() D:\WWW\Joomla_522\libraries\jinterventionimage\libraries\vendor\intervention\image\src\Drivers\Gd\Decoders\NativeObjectDecoder.php:92
[25-Sep-2025 11:22:38 UTC] PHP 17. Intervention\Gif\Splitter->toResources() D:\WWW\Joomla_522\libraries\jinterventionimage\libraries\vendor\intervention\gif\src\Splitter.php:178
[25-Sep-2025 11:22:38 UTC] PHP 18. imagepalettetotruecolor($image = class GdImage { }) D:\WWW\Joomla_522\libraries\jinterventionimage\libraries\vendor\intervention\gif\src\Splitter.php:162