not enough input, need 4, have 0 in gettext.php on line 85

Всем привет! Помогите разобраться пожалуйста:

при установке скрипта происходит превышение времени исполнения и выскакивает вот что:

Warning: unpack() [function.unpack]: Type V: not enough input, need 4, have 0 in /www/wp-includes/gettext.php on line 85

Warning: unpack() [function.unpack]: Type V: not enough input, need 4, have 0 in /www/wp-includes/gettext.php on line 85

Fatal error: Maximum execution time of 30 seconds exceeded in /www/wp-includes/gettext.php on line 158

нашел сходный топик: http://forum.maxsite.org/viewtopic.php?id=3192 проблема 1-в-1 с моей и у моего же хостера ht-systems.ru

но у меня другая ситуация: на этом же акаунте сейчас работают 3 (ТРИ) wordpress-a и работают нормально.

версия которая не ставится: 2.3.1 и попробовал 2.3.3 *т.е. пропатчил еще до установки* (обе взяты с maxsite.org)

Т.е. вопрос вот в чем: это скрипт глючит или мне хостера менять нужно? Хостера менять не очень хочется – лень перетаскивать несколько сайтов и осваиваться на новом сервере.

Спасибо за совет.

upd. попробовал поставить дистрибутив 2.3.3 с сайта камрада-Кактуса – то же самое :/

закаментил строку:

//define ('WPLANG', 'ru_RU');

в wp-config.php – установилось – но естественно без русского языка. а мне надо бы на русском =))

что делать?

Существует 3 варианта файла gettext.php: оригинальный от 2.3.2 и ниже, он же патченый и оригинальный 2.3.3. Отличаются они одной строкой, которая не может вызывать проблем, там просто сравнение целых чисел. Подозреваю, что проблема связана с какой-то спецификой хостинга, в частности с чтением php`ой бинарных файлов. Какая версия php на хостинге?

Существует 3 варианта файла gettext.php: оригинальный от 2.3.2 и ниже, он же патченый и оригинальный 2.3.3. Отличаются они одной строкой, которая не может вызывать проблем, там просто сравнение целых чисел. Подозреваю, что проблема связана с какой-то спецификой хостинга, в частности с чтением php`ой бинарных файлов. Какая версия php на хостинге?
    /**
     * Reads an array of Integers from the Stream
     *
     * @param int count How many elements should be read
     * @return Array of Integers
     */
    function readintarray($count) {
    if ($this->BYTEORDER == 0) {
            // low endian
            return unpack('V'.$count, $this->STREAM->read(4 * $count)); //85 строка на которую ругается 
        } else {
            // big endian
            return unpack('N'.$count, $this->STREAM->read(4 * $count));
        }
    }

***

PHP Version 5.2.3

max_execution_time 30 30
max_input_nesting_level 64 64
max_input_time 60 60
memory_limit 32M 32M
open_basedir /usr/local/www/apache22/data no value
output_buffering 4096 4096
output_handler no value no value
post_max_size 8M 8M
precision 14 14
realpath_cache_size 16K 16K
realpath_cache_ttl 120 120

***

Т.е. хотя бы знать надо чего от хостера требовать, а я понятия не имею что там за потоков таких ему не хватает.

Пусть для начала хостер обновит версию php. Посмотрите, сколько багов отловлено от 5.2.3 до 5.2.5 http://www.php.net/ChangeLog-5.php 🙂

Пусть для начала хостер обновит версию php. Посмотрите, сколько багов отловлено от 5.2.3 до 5.2.5 http://www.php.net/ChangeLog-5.php :)

Ну это понятно, баги в РНР были и будут и есть – это нормальный процесс )

Тут наверное что-то другое…

в общем просто хочется чтобы оно работало и всё ))

нормальное человеческое желание.

А с суппортом хостинга общались? Среди сисадминов изредка попадаются вполне дружелюбные. 😀

А с суппортом хостинга общались? Среди сисадминов изредка попадаются вполне дружелюбные. :D

Конечно общался – я к ним в первую очередь обратился )

Раньше там сапорт был вполне. А сейчас как-то странно они себя ведут порой… ))

***

Вообще, суть здесь я так понимаю в этом самом "Type V: not enough input, need 4, have 0" – если набрать это в Яндексе – становится понятно что я далеко не один такой.

Т.е. ЧТО это за косяк вообще такой?

Тут PHP-гуру нужен %))

Мне кажется, что эта ошибка возникает из-за того, что функция пытается разбирать "квартеты" байт, а ей подсовывают нечто неожиданное. Возможно, косячит что-то типа возвращаемой длины разбираемого файла, и парсер лезет туда, где уже ничего нет. Только толку от понимания проблемы <0. Решение все равно одно – апдейт серверной софты.

Кстати о поиске. Таки да, есть, и даже один к одному _http://www.woschod.de/?p=2534 с решением:
Ein Update der PHP-Installation von der Version 5.2.3 auf 5.2.4, sowie die Aktualisierung der Apache-Installation von der Version 2.2.4 auf 2.2.6 lie&#223;en den nervigen Fehler verschwinden.

Кстати о поиске. Таки да, есть, и даже один к одному _http://www.woschod.de/?p=2534 с решением:
Ein Update der PHP-Installation von der Version 5.2.3 auf 5.2.4, sowie die Aktualisierung der Apache-Installation von der Version 2.2.4 auf 2.2.6 lie&#223;en den nervigen Fehler verschwinden.

гыыыыы )))

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

пасиб!

upd. Ю.Б., таки не силен я немецком в достаточной степени :/ а помимо апдейта РНР (который будет у нынешнего хостера неизвестно когда) они чего-нибудь предлагают? Я пытался сейчас разобраться – не смог (

Мне кажется, что эта ошибка возникает из-за того, что функция пытается разбирать "квартеты" байт, а ей подсовывают нечто неожиданное. Возможно, косячит что-то типа возвращаемой длины разбираемого файла, и парсер лезет туда, где уже ничего нет. Только толку от понимания проблемы <0. Решение все равно одно - апдейт серверной софты.

Кстати о поиске. Таки да, есть, и даже один к одному _http://www.woschod.de/?p=2534 с решением:
Ein Update der PHP-Installation von der Version 5.2.3 auf 5.2.4, sowie die Aktualisierung der Apache-Installation von der Version 2.2.4 auf 2.2.6 lie&#223;en den nervigen Fehler verschwinden.

Та же трабла у меня на Мажордомо.
php 5.2.5
Апач, правда, старый (Apache/1.3.34)

Эта ошибка после установки движка или плагин какой активируете?

Эта ошибка после установки движка или плагин какой активируете?

у меня возникает эта ошибка при включении плагина All in One Seo
причём ошибка выскакивает 50 на 50 процентов примерно )
то есть обновляешь страницу – выскочила ошибка..ещё раз обновляешь – всё норм
Оперативки под Php 32м
явно проблема в плагине
Подскажите как исправить

вообще все плагины отрубил – всё равн оиногда выдаётся ошибка ((

Добрый день.
Пишу от имени компании Ht-Systems.ru.

Данная проблема обсуждается также и на нашем форуме, http://forum.ht-systems.ru/index.php?showtopic=1153
Путём анализа исходного кода было выяснено, что ошибка вызвана не совсем корректной обработкой MO-файла в WP. Детали можно прочитать в соответствующем посте на нашем форуме.
Отсюда вывод: иногда стоит всё-таки искать проблему не у других, а у себя. Когда читал http://forum.maxsite.org/viewtopic.php?id=3192 – долго смеялся, ну несерьёзно это, ребята 🙂 Проблема всё-таки в WP, хоть и проявляется преимущественно у нас на площадке.

стала периодически вылезать такая же ошибка:

Warning: unpack() [function.unpack]: Type V: not enough input, need 4, have 0 in ......  wp-includes/gettext.php on line 85
Warning: unpack() [function.unpack]: Type V: not enough input, need 4, have 0 in ......  wp-includes/gettext.php on line 85
Warning: unpack() [function.unpack]: Type V: not enough input, need 4, have 0 in ......  wp-includes/streams.php on line 60

решила так:
см. здесь: http://www.brusdeylins.info/wordpress/probleme-mit-gettextphp/
открываем файл streams.php (в папке wp-includes), находим строчку

$data = substr($this->_str, $this->_pos, $bytes);

и меняем ее на:

$data = "";
for ($i=0; $i<$bytes; $i++) {
    $data .= $this->_str[$this->_pos+$i];
};

у меня все стало окей (вроде бы, по крайней мере в течении 15 мин. ходьбы по сайту ошибка больше не повторилась).
wp 2.3.3

А кто может объяснить, на что мы поменяли и не вылезет ли боком такая правка при каких-либо условиях? (абгрейд до след. версии ВП для этого сайта у меня не предусмотрен)

Соня, а посмотри пожалуйста в phpinfo, какое значение у mbstring.func_overload (секция mbstring)?

Суть в том, что для двоичного кода использована строковая функция substr(), что не корректно, т.к. строго говоря один символ не всегда соответствует одному байту. Между прочим, в streams.php валом строковых функций.

Постом выше лежит ссылка на форум, на котором описан патч, более полный, чем замена одной строки. Для тех, кто не умеет прикладывать патчи к сорцам я выложил уже отпатченный файл http://www.portal.kharkov.ua/soft/streams.zip Вроде как работает. 🙂

не знаю где для этого "пострадавшего" сайтега смотреть phpinfo, как-то все запутано на хостинге и в панели (ISP manager) 🙁
Ю.Б., а твой stream.php для какой версии ВП?

Мне тут Иван подсказал, что все просто: там где – значит удалить эти строчки, там где + прибавить строчки в файл streams.php, да?
_http://forum.ht-systems.ru/index.php?showtopic=1153&view=findpost&p=4350

А всё очень просто. Делаешь файлик с любым именем, в нем пишешь <?php phpinfo(); ?>, заливаешь на хостинг и открываешь броузером.

От какой версии не помню, но по-моему разницы нет.

Ну да, где минус убрать, где плюс добавить.

Вот:
PHP Version 5.2.6
Apache/2.0.63
[quote]Multibyte Support enabled
Multibyte string engine libmbfl
Multibyte (japanese) regex support enabled
Multibyte regex (oniguruma) version 4.4.4
Multibyte regex (oniguruma) backtrack check On
mbstring extension makes use of "streamable kanji code filter and converter", which is distributed under the GNU Lesser General Public License version 2.1.
Directive Local Value Master Value
mbstring.detect_order no value no value
mbstring.encoding_translation Off Off
mbstring.func_overload 0 0
mbstring.http_input pass pass
mbstring.http_output pass pass
mbstring.internal_encoding no value no value
mbstring.language neutral neutral
mbstring.strict_detection Off Off
mbstring.substitute_character no value no value[/quote]

Спасибо! А то была версия, что эта беда происходит от того, что включено func_overload и вместо простых стринговых функций используются из набора mbstring. Выходит, что не от этого. Или не только от этого.

А кто может объяснить, на что мы поменяли и не вылезет ли боком такая правка при каких-либо условиях? (абгрейд до след. версии ВП для этого сайта у меня  не предусмотрен)

Насколько я понимаю, при побайтовой конкатенации строк теряются преимущества оперирования данными поблочно, которыми располагают современные процессоры, как следствие – замедление работы.
Вариант, предложенный Ht-Systems, этого недостатка не содержит, но есть подозрение, что php://memory может не быть в древних версиях PHP… Нас это не волновало, конечно, но в общем случае – может иметь значение…

У меня выскакивает точно такая же ошибка, проявившаяся еще при инсталяции 6.2.2 и появляющаяся непредсказуемо при любых действиях в админке. Примерно в половине случаев. При просмотре пока не наблюдалась. Попробую сделать так как вы советуете. Даст Бог получится, а то работать совершенно невозможно.

Только что попробывал отпачепный файл – пока работает. Спасибо.

стала периодически вылезать такая же ошибка:
Warning: unpack() [function.unpack]: Type V: not enough input, need 4, have 0 in ......  wp-includes/gettext.php on line 85
Warning: unpack() [function.unpack]: Type V: not enough input, need 4, have 0 in ......  wp-includes/gettext.php on line 85
Warning: unpack() [function.unpack]: Type V: not enough input, need 4, have 0 in ......  wp-includes/streams.php on line 60

решила так:
см. здесь: http://www.brusdeylins.info/wordpress/probleme-mit-gettextphp/
открываем файл streams.php (в папке wp-includes), находим строчку

$data = substr($this->_str, $this->_pos, $bytes);

и меняем ее на:

$data = "";
for ($i=0; $i<$bytes; $i++) {
    $data .= $this->_str[$this->_pos+$i];
};

у меня все стало окей (вроде бы, по крайней мере в течении 15 мин. ходьбы по сайту ошибка больше не повторилась).
wp 2.3.3

А кто может объяснить, на что мы поменяли и не вылезет ли боком такая правка при каких-либо условиях? (абгрейд до след. версии ВП для этого сайта у меня не предусмотрен)

А что где заменить при версии 2.6.3?

А попробуйте просто подложить уже отпатченный streams.php от 2.3 своему 2.6.

Создатели поменяли алгоритм, видимо, подумав, как и я вначале, что проблема из-за подмены обычных строковых функций мультибайтными. Но, как видно из отчета Сони, баг проявляется даже при mbstring.func_overload=0.

После замены файла куча предупреждений в логах сайта. Версия 2.6.3.

PHP Warning: fopen(php://memory) [<a href=’function.fopen’>function.fopen</a>]: failed to open stream: No such file or directory in ./html/wp-includes/streams.php on line 85
PHP Warning: fputs(): supplied argument is not a valid stream resource in ./html/wp-includes/streams.php on line 86
PHP Warning: ftell(): supplied argument is not a valid stream resource in ./html/wp-includes/streams.php on line 87
PHP Warning: fseek(): supplied argument is not a valid stream resource in ./html/wp-includes/streams.php on line 88
PHP Warning: fread(): supplied argument is not a valid stream resource in ./html/wp-includes/streams.php on line 90
PHP Warning: unpack() [<a href=’function.unpack’>function.unpack</a>]: Type V: not enough input, need 4, have 0 in ./html/wp-includes/gettext.php on line 73
PHP Warning: array_shift() [<a href=’function.array-shift’>function.array-shift</a>]: The argument should be an array in ./html/wp-includes/gettext.php on line 74

Подскажите, пожалуйста, в чем проблема?

Работать стал действительно быстрее, но вылезли местами косяки с переводом, особенно в админке.

Во еще варианты отсюда http://lecactus.ru/2008/07/15/2347/
_http://lecactus.ru/wp-content/uploads/2008/07/20080717_patched_streams.zip
_http://lecactus.ru/wp-content/uploads/2008/08/20080814_streams_mod_wp26.zip

Sonika, спасибо огромное!! =)
Помог первый, пока, минут 15, ни одной ошибки в логах, и на внешнем виде не отразилось.

___
Рано обрадовался..
ошибка (PHP Fatal error: Maximum execution time of 10 seconds exceeded /streams.php on line 77) пропала
но появилась куча предупреждений:
PHP Warning: array_shift() […]: The argument should be an array in …/streams.php on line 64
PHP Warning: unpack() […]: Type A: integer overflow in …/streams.php on line 64

C файлом streams_mod_wp26.zip вообще тьма ошибок..

Хостер, естесственно, посоветовал перейти на более дорогой тариф, т.к. на этом ограничение времени работы скрипта 10 сек..

Помогите!
Патч для версии 2,6 помогал отлично – обновил блог до версии 2,7 снова появилась ошибка:

Warning: unpack() [function.unpack]: Type V: not enough input, need 4, have 0 in /home/wmzco/public_html/wp-includes/gettext.php on line 91

Warning: unpack() [function.unpack]: Type V: not enough input, need 4, have 0 in /home/wmzco/public_html/wp-includes/gettext.php on line 91

Fatal error: Maximum execution time of 100 seconds exceeded in /home/wmzco/public_html/wp-includes/streams.php on line 77

Патч для версии 2,6 не подходит к версии 2,7

у меня 2.7.1 такая ж ошибка, рагьше не было

виноват или хостер который чтото изменил или плагин, так как примерно месяц проблем вообще не было

http://lecactus.ru/wordpress/moj-faq-po-wordpress/

Не решает кактус эту проблему для последних версий блогов!

Блог вроде нормально работает, но в админке куча ошибок!

такая ж фигня у меня, файл логов за первую половину дня более 600Мб O_o

В целом, складывается ощущение, что это проблема хостинга. Такой вывод делаю, исходя из своей статистики:
– Мастерхост, Инфобокс, Спейсвеб подобной проблемы не имеют;
– на Мажордомо проблема появляется редко, работать можно;
– на HT System проблема критична, работать невозможно.

Заменил streams.php той версией файла, который предложен здесь.
За первые полчаса наблюдения ошибка не появилась.
ВП 2.7.1

+1
HT System – есть такая проблема, свеб – нет

Да не хостер тому виной, а его позиция, с точки зрения применения программного обеспечения и степени обновления, и неадекватность работы wordpressa под разным ПО. Проблема будет, похоже, постоянной. С каждой версией пыха будут проявляться все новые.

Вот и мой хостер недавно обновил 5ку новыми релизами. Итог завалилились все блоги ((
Но, если с 271 патчи проканали, то 233 наотрез отказался стабильно работать с патчами lecactusa.
Потребовалось дорабатывать и streams по предложению sonika, фенкс. Но тут вылезла еще
маленькая проблема – нестабильность русского в админке (сбои в координатах).

Итог – эксперимент на http://2aw.org – 233 сборка – заменил ему gettext и streams от 271(патченые) + маленький патч edit-post-rows (чтоб не глючил вывод числа комментов в админке).

Anonymous
Отправить
Ответ на: