Баг Premature end of JPEG file

Предварительное обсуждение найденных ошибок перед отправкой их авторам фреймворка, а также внесение новых предложений.
roman17
Сообщения: 48
Зарегистрирован: 2014.12.01, 15:57

Баг Premature end of JPEG file

Сообщение roman17 »

Не подгружается лента на главной странице, firefox выдает в консоле:

"NetworkError: 500 Internal Server Error - http://site.com/wall/wall/stream/type/C ... 4685117743"

PHP Error [8]

imagecreatefromjpeg(): gd-jpeg, libjpeg: recoverable error: Premature end of JPEG file
roman17
Сообщения: 48
Зарегистрирован: 2014.12.01, 15:57

Re: Баг Premature end of JPEG file

Сообщение roman17 »

Добавил в index.php

ini_set(‘gd.jpeg_ignore_warning’, 1);

Но ошибка остается.
roman17
Сообщения: 48
Зарегистрирован: 2014.12.01, 15:57

Re: Баг Premature end of JPEG file

Сообщение roman17 »

log:

Код: Выделить всё

{\rtf1\ansi\deff0\nouicompat{\fonttbl{\f0\fnil\fcharset0 Calibri;}}
{*\generator Riched20 6.4.9879}\viewkind4\uc1 
\pard\sa200\sl276\slmult1\f0\fs22\lang9 imagecreatefromjpeg(): gd-jpeg, libjpeg: recoverable error: Premature end of JPEG file (/home/admin/web/site.com/public_html/protected/modules_core/file/libs/ImageConverter.php:280) Stack trace: #0 /home/admin/web/site.com/public_html/protected/modules_core/file/libs/ImageConverter.php(82): ResizeGD() #1 /home/admin/web/site.com/public_html/protected/modules_core/file/models/File.php(274): Resize() #2 /home/admin/web/site.com/public_html/protected/modules_core/file/widgets/views/showFiles.php(22): File->getPreviewImageUrl() #3 /home/admin/web/site.com/public_html/protected/vendors/yii/web/CBaseController.php(130): require() #4 /home/admin/web/site.com/public_html/protected/vendors/yii/web/CBaseController.php(95): ShowFilesWidget->renderInternal() #5 /home/admin/web/site.com/public_html/protected/vendors/yii/web/widgets/CWidget.php(244): ShowFilesWidget->renderFile() #6 /home/admin/web/site.com/public_html/protected/modules_core/file/widgets/ShowFilesWidget.php(23): ShowFilesWidget->render() #7 /home/admin/web/site.com/public_html/protected/vendors/yii/web/CBaseController.php(173): ShowFilesWidget->run() #8 /home/admin/web/site.com/public_html/protected/modules_core/comment/widgets/views/showComment.php(79): ShowCommentWidget->widget() #9 /home/admin/web/site.com/public_html/protected/vendors/yii/web/CBaseController.php(130): require() #10 /home/admin/web/site.com/public_html/protected/vendors/yii/web/CBaseController.php(95): ShowCommentWidget->renderInternal() #11 /home/admin/web/site.com/public_html/protected/vendors/yii/web/widgets/CWidget.php(244): ShowCommentWidget->renderFile() #12 /home/admin/web/site.com/public_html/protected/modules_core/comment/widgets/ShowCommentWidget.php(39): ShowCommentWidget->render() #13 /home/admin/web/site.com/public_html/protected/vendors/yii/web/CBaseController.php(173): ShowCommentWidget->run() #14 /home/admin/web/site.com/public_html/protected/modules_core/comment/widgets/views/comments.php(34): CommentsWidget->widget() #15 /home/admin/web/site.com/public_html/protected/vendors/yii/web/CBaseController.php(130): require() #16 /home/admin/web/site.com/public_html/protected/vendors/yii/web/CBaseController.php(95): CommentsWidget->renderInternal() #17 /home/admin/web/site.com/public_html/protected/vendors/yii/web/widgets/CWidget.php(244): CommentsWidget->renderFile() #18 /home/admin/web/site.com/public_html/protected/modules_core/comment/widgets/CommentsWidget.php(49): CommentsWidget->render() #19 /home/admin/web/site.com/public_html/protected/vendors/yii/web/CBaseController.php(167): CommentsWidget->run() #20 /home/admin/web/site.com/public_html/protected/widgets/StackWidget.php(94): WallController->widget() #21 /home/admin/web/site.com/public_html/protected/vendors/yii/web/CBaseController.php(173): WallEntryAddonWidget->run() #22 /home/admin/web/site.com/public_html/protected/modules_core/wall/views/wallLayout.php(72): PostWidget->widget() #23 /home/admin/web/site.com/public_html/protected/vendors/yii/web/CBaseController.php(126): require() #24 /home/admin/web/site.com/public_html/protected/vendors/yii/web/CBaseController.php(95): PostWidget->renderInternal() #25 /home/admin/web/site.com/public_html/protected/vendors/yii/web/widgets/CContentDecorator.php(76): PostWidget->renderFile() #26 /home/admin/web/site.com/public_html/protected/vendors/yii/web/widgets/CContentDecorator.php(54): CContentDecorator->decorate() #27 /home/admin/web/site.com/public_html/protected/vendors/yii/web/widgets/COutputProcessor.php(44): CContentDecorator->processOutput() #28 /home/admin/web/site.com/public_html/protected/vendors/yii/web/CBaseController.php(206): CContentDecorator->run() #29 /home/admin/web/site.com/public_html/protected/vendors/yii/web/CBaseController.php(300): PostWidget->endWidget() #30 /home/admin/web/site.com/public_html/protected/modules_core/post/widgets/views/post.php(23): PostWidget->endContent() #31 /home/admin/web/site.com/public_html/protected/vendors/yii/web/CBaseController.php(130): require() #32 /home/admin/web/site.com/public_html/protected/vendors/yii/web/CBaseController.php(95): PostWidget->renderInternal() #33 /home/admin/web/site.com/public_html/protected/vendors/yii/web/widgets/CWidget.php(244): PostWidget->renderFile() #34 /home/admin/web/site.com/public_html/protected/modules_core/post/widgets/PostWidget.php(38): PostWidget->render() #35 /home/admin/web/site.com/public_html/protected/vendors/yii/web/CBaseController.php(167): PostWidget->run() #36 /home/admin/web/site.com/public_html/protected/modules_core/post/models/Post.php(113): WallController->widget() #37 /home/admin/web/site.com/public_html/protected/modules_core/wall/StreamAction.php(256): Post->getWallOut() #38 /home/admin/web/site.com/public_html/protected/vendors/yii/web/actions/CAction.php(76): StreamAction->run() #39 /home/admin/web/site.com/public_html/protected/vendors/yii/web/CController.php(308): StreamAction->runWithParams() #40 /home/admin/web/site.com/public_html/protected/vendors/yii/web/filters/CFilterChain.php(133): WallController->runAction() #41 /home/admin/web/site.com/public_html/protected/vendors/yii/web/filters/CFilter.php(40): CFilterChain->run() #42 /home/admin/web/site.com/public_html/protected/vendors/yii/web/CController.php(1145): CAccessControlFilter->filter() #43 /home/admin/web/site.com/public_html/protected/vendors/yii/web/filters/CInlineFilter.php(58): WallController->filterAccessControl() #44 /home/admin/web/site.com/public_html/protected/vendors/yii/web/filters/CFilterChain.php(130): CInlineFilter->filter() #45 /home/admin/web/site.com/public_html/protected/vendors/yii/web/CController.php(291): CFilterChain->run() #46 /home/admin/web/site.com/public_html/protected/vendors/yii/web/CController.php(265): WallController->runActionWithFilters() #47 /home/admin/web/site.com/public_html/protected/vendors/yii/web/CWebApplication.php(282): WallController->run() #48 /home/admin/web/site.com/public_html/protected/vendors/yii/web/CWebApplication.php(141): WebApplication->runController() #49 /home/admin/web/site.com/public_html/protected/vendors/yii/base/CApplication.php(180): WebApplication->processRequest() #50 /home/admin/web/site.com/public_html/index.php(39): WebApplication->run() REQUEST_URI=/wall/wall/stream/type/Community/guid//limit/4/from/58236/filters//sort/c?CSRF_TOKEN=fbbd878d8f4e83543hgfjhvj540bd5690&_=141654654853 \par
} 
roman17
Сообщения: 48
Зарегистрирован: 2014.12.01, 15:57

Re: Баг Premature end of JPEG file

Сообщение roman17 »

http://www.yiiframework.com/extension/image/#c11601

Здесь такая проблема была у кого то, как ее решить? добавляю фото на сайт размером 5 или 7000px, ошибка как выше.
roman17
Сообщения: 48
Зарегистрирован: 2014.12.01, 15:57

Re: Баг Premature end of JPEG file

Сообщение roman17 »

надоел уже этот yii, что ни день, то новый баг с ним. сколько разных движков пробовал, ни где на ровном месте не возникало подобных ошибок, а если и бывало, то после первого вопроса все решалось, здесь же баги, которые ищешь для их решение по всему инету, вроде бы они есть, на самом деле датируются столетними датами, таких файлов даже и нету уже в твоем фреймворке. 3 дня не могу решить баг с этими картинками, лучше бы сразу взял да переделал какой нибудь livestreet cms, и то понятней...
Аватара пользователя
Insolita
Сообщения: 788
Зарегистрирован: 2011.06.06, 01:39
Контактная информация:

Re: Баг Premature end of JPEG file

Сообщение Insolita »

roman17 писал(а):надоел уже этот yii, что ни день, то новый баг с ним. сколько разных движков пробовал, ни где на ровном месте не возникало подобных ошибок, а если и бывало, то после первого вопроса все решалось, здесь же баги, которые ищешь для их решение по всему инету, вроде бы они есть, на самом деле датируются столетними датами, таких файлов даже и нету уже в твоем фреймворке. 3 дня не могу решить баг с этими картинками, лучше бы сразу взял да переделал какой нибудь livestreet cms, и то понятней...
yii это не cms, и не движок, конкрентно разработанный и обкатанный под конкретные задачи, - а фреймворк, с куда большими возможностями, но и с гораздо большими требованиями к знаниям и прямым рукам
У вас очевидно проблема либо с модулем gd либо с настройками хостинга,либо с конкретным расширением, ошибка выбрасывается из файла protected/modules_core/file/libs/ImageConverter.php - он не входит в ядро yii - это стороннее расширение, убедитесь что вы его корректно сонфигурировали, связывайтесь с его разработчиком, посмотрите исходники этого расширения,проверьте нормально ли у вас работают функции gd-библиотеки без расширения
Последний раз редактировалось Insolita 2014.12.12, 20:30, всего редактировалось 2 раза.
roman17
Сообщения: 48
Зарегистрирован: 2014.12.01, 15:57

Re: Баг Premature end of JPEG file

Сообщение roman17 »

Insolita писал(а):
roman17 писал(а):надоел уже этот yii, что ни день, то новый баг с ним. сколько разных движков пробовал, ни где на ровном месте не возникало подобных ошибок, а если и бывало, то после первого вопроса все решалось, здесь же баги, которые ищешь для их решение по всему инету, вроде бы они есть, на самом деле датируются столетними датами, таких файлов даже и нету уже в твоем фреймворке. 3 дня не могу решить баг с этими картинками, лучше бы сразу взял да переделал какой нибудь livestreet cms, и то понятней...
yii это не cms, и не движок, конкрентно разработанный и обкатанный под конкретные задачи, - а фреймворк, с куда большими возможностями, но и с гораздо большими требованиями к знаниям и прямым рукам
У вас очевидно проблема либо с модулем gd либо с настройками хостинга,либо с конкретным расширением, ошибка выбрасывается из файла protected/modules_core/file/libs/ImageConverter.php - он не входит в ядро yii - это стороннее расширение, убедитесь что вы его корректно сонфигурировали, связывайтесь с его разработчиком, посмотрите исходники этого расширения,проверьте нормально ли у вас работают функции gd-библиотеки без расширения
попробовал воспроизвести эту ошибку на другом сервере, там все нормально. Получается ошибка не в скрипте, а на сервере? а что отвечает на сервере за gd converter?
Аватара пользователя
Insolita
Сообщения: 788
Зарегистрирован: 2011.06.06, 01:39
Контактная информация:

Re: Баг Premature end of JPEG file

Сообщение Insolita »

нет gd-конвертера, есть серверная библиотека gd и есть gd-модуль для php

прежде всего - изучите свой лог ошибок

Код: Выделить всё

gd-jpeg, libjpeg: recoverable error: Premature end of JPEG file file (/home/admin/web/site.com/public_html/protected/modules_core/file/libs/ImageConverter.php:280) 
что у вас в этом файле /home/admin/web/site.com/public_html/protected/modules_core/file/libs/ImageConverter.php на (280-й строке) +\- окружающий кусок

Код: Выделить всё

 Stack trace: #0 /home/admin/web/site.com/public_html/protected/modules_core/file/libs/ImageConverter.php(82): ResizeGD() 
что у вас в этом файле /home/admin/web/site.com/public_html/protected/modules_core/file/libs/ImageConverter.php на (82-й строке) +\- окружающий кусок

что у вас за сервер, система, версия ос и php. Насколько свежая установка и есть ли возможность обновить
в консоли php -m - есть в списке gd ?
roman17
Сообщения: 48
Зарегистрирован: 2014.12.01, 15:57

Re: Баг Premature end of JPEG file

Сообщение roman17 »

Insolita писал(а):нет gd-конвертера, есть серверная библиотека gd и есть gd-модуль для php

прежде всего - изучите свой лог ошибок

Код: Выделить всё

gd-jpeg, libjpeg: recoverable error: Premature end of JPEG file file (/home/admin/web/site.com/public_html/protected/modules_core/file/libs/ImageConverter.php:280) 
что у вас в этом файле /home/admin/web/site.com/public_html/protected/modules_core/file/libs/ImageConverter.php на (280-й строке) +\- окружающий кусок

Код: Выделить всё

 Stack trace: #0 /home/admin/web/site.com/public_html/protected/modules_core/file/libs/ImageConverter.php(82): ResizeGD() 
что у вас в этом файле /home/admin/web/site.com/public_html/protected/modules_core/file/libs/ImageConverter.php на (82-й строке) +\- окружающий кусок

что у вас за сервер, система, версия ос и php. Насколько свежая установка и есть ли возможность обновить
в консоли php -m - есть в списке gd ?

Код: Выделить всё

/**
     * Creates GD Image Resource by given Filename
     * 
     * @param String $fileName
     * @return resource GD Image
     */
    public static function getGDImageByFile($fileName)
    {

        list($width, $height, $imageType) = getimagesize($fileName);

        switch ($imageType) {
            case IMAGETYPE_PNG:
                $gdImage = imagecreatefrompng($fileName);
                break;
            case IMAGETYPE_GIF:
                $gdImage = imagecreatefromgif($fileName);
                break;
            case IMAGETYPE_JPEG:
280                $gdImage = imagecreatefromjpeg($fileName);
                break;
        }

        return $gdImage;
    }

}

Код: Выделить всё

if (!isset($options['mode']))
            $options['mode'] = 'force';

        if (HSetting::Get('imageMagickPath', 'file')) {
           self::ResizeImageMagick($sourceFile, $targetFile, $options);
        } else {
82            self::ResizeGD($sourceFile, $targetFile, $options);
        }
    }
roman17
Сообщения: 48
Зарегистрирован: 2014.12.01, 15:57

Re: Баг Premature end of JPEG file

Сообщение roman17 »

сервер, debian 7 64, apache + fascgi + nginx, PHP Version 5.5.19-1~dotdeb.1
Аватара пользователя
Insolita
Сообщения: 788
Зарегистрирован: 2011.06.06, 01:39
Контактная информация:

Re: Баг Premature end of JPEG file

Сообщение Insolita »

1. протестируйте при загрузке изображений в формате png и gif - будут так же ошибки, или только с jpg проблема
2. Поставьте собачки перед imagecreatefrompng imagecreatefromgif imagecreatefromjpeg в функции из первого листинга

Код: Выделить всё

switch ($imageType) {
            case IMAGETYPE_PNG:
                $gdImage = @imagecreatefrompng($fileName);
                break;
            case IMAGETYPE_GIF:
                $gdImage = @imagecreatefromgif($fileName);
                break;
            case IMAGETYPE_JPEG:
               $gdImage = @imagecreatefromjpeg($fileName);
                break;
        }
будет ли ругаться...

ini_set(‘gd.jpeg_ignore_warning’, 1);
Попробуйте поставить прямо вверху этого файла (до определения класса)
roman17
Сообщения: 48
Зарегистрирован: 2014.12.01, 15:57

Re: Баг Premature end of JPEG file

Сообщение roman17 »

php -m есть в списке gd, недавно обновлял PHP до 5.5, или что то еще надо обновить?

собачки поставил, ошибка не изменилась ни как, та же самая. Ошибка только лишь с фото большого разрешения, больше 4 или 5000px. Что то не дает ему конвертировать разрешение, какой то лимит где то на сервере скорее всего.
roman17
Сообщения: 48
Зарегистрирован: 2014.12.01, 15:57

Re: Баг Premature end of JPEG file

Сообщение roman17 »

Insolita писал(а):
ini_set(‘gd.jpeg_ignore_warning’, 1);
Попробуйте поставить прямо вверху этого файла (до определения класса)
после: ini_set(‘gd.jpeg_ignore_warning’, 1);

<h1>PHP Error [8]</h1>
<p>Use of undefined constant ‘gd - assumed '‘gd'</p>
Аватара пользователя
Insolita
Сообщения: 788
Зарегистрирован: 2011.06.06, 01:39
Контактная информация:

Re: Баг Premature end of JPEG file

Сообщение Insolita »

roman17 писал(а):php -m есть в списке gd, недавно обновлял PHP до 5.5, или что то еще надо обновить?

собачки поставил, ошибка не изменилась ни как, та же самая. Ошибка только лишь с фото большого разрешения, больше 4 или 5000px. Что то не дает ему конвертировать разрешение, какой то лимит где то на сервере скорее всего.
а размер такого фото какой? не превышает каких-нибудь лимитов на загрузку, если просто загрузить большое фото на сервер (без конвертаций) - оно нормально потом отображается?
Аватара пользователя
Insolita
Сообщения: 788
Зарегистрирован: 2011.06.06, 01:39
Контактная информация:

Re: Баг Premature end of JPEG file

Сообщение Insolita »

http://realtechtalk.com/PHP_Warning_ima ... 7-articles
вот тут рекомендуют прямо в php.ini этот параметр прописать
вообще по запросу https://www.google.ru/search?q=php+gd&g ... able+error
проблема явно не редкая, и из рекомендаций в основном либо установить игнорирование этой ошибки... Попробуйте поискать подробнее с какими версиями это связано, может поможет обновление...хотя в дебиан по идее все наиболее стабильное должно попадать.. А вообще - так ли необходимо разрешать к загрузке такие большие картинки?
Ну и как видите yii тут совсем ни причём
roman17
Сообщения: 48
Зарегистрирован: 2014.12.01, 15:57

Re: Баг Premature end of JPEG file

Сообщение roman17 »

Insolita писал(а):
roman17 писал(а):php -m есть в списке gd, недавно обновлял PHP до 5.5, или что то еще надо обновить?

собачки поставил, ошибка не изменилась ни как, та же самая. Ошибка только лишь с фото большого разрешения, больше 4 или 5000px. Что то не дает ему конвертировать разрешение, какой то лимит где то на сервере скорее всего.
а размер такого фото какой? не превышает каких-нибудь лимитов на загрузку, если просто загрузить большое фото на сервер (без конвертаций) - оно нормально потом отображается?
в php.ini лимит на загрузку 100mb, если бы был лимит на размер файла, было бы сообщение об этом, дело в том что файл к примеру может быть 50mb, но его разрешение 3000px, тогда все ок. А вот файл 10mb, но разрешение 7000Px, тоже загрузиться на сайт, но потом он не будет отображаться, из-за этого лента пользователя который загрузил фото такого разрешение, будет не доступна, крутиться кружочек подгрузки страницы, и все, а в консоле firefox конечно при этом будет ошибка network error, и.т.д.

Может перейти на centos, что то с debian часто проблемы серверного происхождения, или может ошибаюсь.

А в php.ini в какой класс прописать код? gd.jpeg_ignore_warning = 1
roman17
Сообщения: 48
Зарегистрирован: 2014.12.01, 15:57

Re: Баг Premature end of JPEG file

Сообщение roman17 »

;gd.jpeg_ignore_warning = 0 есть в php.ini, попробую раскомментировать.
roman17
Сообщения: 48
Зарегистрирован: 2014.12.01, 15:57

Re: Баг Premature end of JPEG file

Сообщение roman17 »

и это не помогло, придется перейти на centos, вообще настроить заново сервер.
Аватара пользователя
Insolita
Сообщения: 788
Зарегистрирован: 2011.06.06, 01:39
Контактная информация:

Re: Баг Premature end of JPEG file

Сообщение Insolita »

roman17 писал(а):;gd.jpeg_ignore_warning = 0 есть в php.ini, попробую раскомментировать.
угу и 1 вместо 0
Может перейти на centos, что то с debian часто проблемы серверного происхождения, или может ошибаюсь.
лучше на сервер ту систему с которой вы лучше знакомы и умеете готовить
roman17
Сообщения: 48
Зарегистрирован: 2014.12.01, 15:57

Re: Баг Premature end of JPEG file

Сообщение roman17 »

спасибо вам конечно, проблема решена, и она оказалось во всех готовых сборках шаблонах для серверной панели vestacp. Выбрал phpcgi вместо fastcgi, все заработало. Вот так вот несколько дней искал баг, а он оказался в этой vesta.
Ответить