The OpenNET Project
 
Поиск (ключи):    ПРОГРАММЫ СТАТЬИ СОВЕТЫ ФОРУМ
  WIKI НОВОСТИ (+) MAN'ы ДОКУМЕНТАЦИЯ

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"Wide character in FCGI"
Вариант для распечатки  
Пред. тема | След. тема 
Форумы WEB технологии (Perl)
Изначальное сообщение [ Отслеживать ]

"Wide character in FCGI"  +/
Сообщение от Виталий (??) on 09-Мрт-10, 17:09 
Вот такая проблема при попытке запуска perl-сайта на mason.

Гугл говорит, что нужно ставить binmode, однако на дебиане все работает прекрасно, а тут переезжаем на centos.

Гуру, подскажите, что за нафиг.

Полностью ошибка:
Wide character in FCGI::Stream::PRINT at /usr/local/lib/perl5/site_perl/5.10.1/HTML/Mason/CGIHandler.pm line 105.

Высказать мнение | Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "Wide character in FCGI"  +/
Сообщение от pavel_simple (ok) on 09-Мрт-10, 17:22 
>Вот такая проблема при попытке запуска perl-сайта на mason.
>
>Гугл говорит, что нужно ставить binmode, однако на дебиане все работает прекрасно,
>а тут переезжаем на centos.
>
>Гуру, подскажите, что за нафиг.
>
>Полностью ошибка:
>Wide character in FCGI::Stream::PRINT at /usr/local/lib/perl5/site_perl/5.10.1/HTML/Mason/CGIHandler.pm line 105.

думаю что mason новый а модули CentOS для него в дистрибутиве старые -- см. рекомендуемые компоненты на движок

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

2. "Wide character in FCGI"  +/
Сообщение от Виталий (??) on 09-Мрт-10, 19:31 
Чего-то проапдейтил все модули, и нифига
Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

3. "Wide character in FCGI"  +/
Сообщение от anonymous (??) on 09-Мрт-10, 23:40 
>Wide character in FCGI::Stream::PRINT at /usr/local/lib/perl5/site_perl/5.10.1/HTML/Mason/CGIHandler.pm line 105.

А что, если добавить в CGIHandler.pm такие строчики?

  use open ':utf8';
  use encoding 'utf8';

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

4. "Wide character in FCGI"  +/
Сообщение от zdm on 11-Мрт-10, 20:38 
>Вот такая проблема при попытке запуска perl-сайта на mason.
>
>Гугл говорит, что нужно ставить binmode, однако на дебиане все работает прекрасно,
>а тут переезжаем на centos.
>
>Гуру, подскажите, что за нафиг.
>
>Полностью ошибка:
>Wide character in FCGI::Stream::PRINT at /usr/local/lib/perl5/site_perl/5.10.1/HTML/Mason/CGIHandler.pm line 105.

Та-же проблема на Centos 5.2, perl 5.10.1, при print в FCGI приложении.
binmode STDOUT в FCGI враппере не помогает.
Тот-же код под apache работает корректно.


Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

5. "Wide character in FCGI"  +/
Сообщение от cuad0 (ok) on 19-Мрт-10, 04:29 

>>Полностью ошибка:
>>Wide character in FCGI::Stream::PRINT at /usr/local/lib/perl5/site_perl/5.10.1/HTML/Mason/CGIHandler.pm line 105.

Это error или warning?


>Та-же проблема на Centos 5.2, perl 5.10.1, при print в FCGI приложении.

Имхо, без fcgi было бы в логах то же самое.
Сталкивался с таким. Общего решения не нашел, но иногда работало
no warnings 'utf8';
...пишу по давней памяти и на неспавшую голову, мог и ошибиться в синтаксисе.


>Тот-же код под apache работает корректно.

эммм, а под чем работает некорректно?


Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

6. "Wide character in FCGI"  +/
Сообщение от zdm on 19-Мрт-10, 18:16 
>[оверквотинг удален]
>Имхо, без fcgi было бы в логах то же самое.
>Сталкивался с таким. Общего решения не нашел, но иногда работало
>no warnings 'utf8';
>...пишу по давней памяти и на неспавшую голову, мог и ошибиться в
>синтаксисе.
>
>
>>Тот-же код под apache работает корректно.
>
>эммм, а под чем работает некорректно?

Корректно работает как CGI приложение под Apache.

Некорректно, когда самостоятельный FCGI демон.
# cat nginx_error.log
2010/03/19 11:13:53 [error] 24091#0: *1 FastCGI sent in stderr: "FCGI application error: Wide character in FCGI::Stream::PRINT at /var/www/pharaoh/Pharaoh/HTTP/Controller/Index.pm line 60" while reading response header from upstream, client: 95.132.240.254, server: wmstar.com.ua, request: "GET / HTTP/1.1", upstream: "fastcgi://127.0.0.1:9012"

При этом FCGI в STDOUT ничего не возвращает, клиент получает пустую страницу.

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

7. "Wide character in FCGI"  +/
Сообщение от zdm on 19-Мрт-10, 18:24 
>>[оверквотинг удален]
>>Имхо, без fcgi было бы в логах то же самое.
>>Сталкивался с таким. Общего решения не нашел, но иногда работало
>>no warnings 'utf8';

Не помогает.


>[оверквотинг удален]
>
>Некорректно, когда самостоятельный FCGI демон.
># cat nginx_error.log
>2010/03/19 11:13:53 [error] 24091#0: *1 FastCGI sent in stderr: "FCGI application error:
>Wide character in FCGI::Stream::PRINT at /var/www/pharaoh/Pharaoh/HTTP/Controller/Index.pm line 60" while reading response
>header from upstream, client: 95.132.240.254, server: wmstar.com.ua, request: "GET / HTTP/1.1",
>upstream: "fastcgi://127.0.0.1:9012"
>
>При этом FCGI в STDOUT ничего не возвращает, клиент получает пустую страницу.
>

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

8. "Wide character in FCGI"  +/
Сообщение от Виталий (??) on 21-Мрт-10, 11:48 
Resolved / Решено

Дело в том, что в модуле FCGI 0.69 произведены некоторые изменения в логике работы, без поддержки ошибочных старых вариантов. Они считают, что раньше программы функционировали неправильно.

Нехорошо они поступили в смысле поддержки уже написаных решений, да бог им судья.

Дружно откатываемся на FCGI 0.68 и проблема решена.

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

9. "Wide character in FCGI"  +/
Сообщение от zdm on 21-Мрт-10, 16:51 
>Resolved / Решено
>
>Дело в том, что в модуле FCGI 0.69 произведены некоторые изменения в
>логике работы, без поддержки ошибочных старых вариантов. Они считают, что раньше
>программы функционировали неправильно.
>
>Нехорошо они поступили в смысле поддержки уже написаных решений, да бог им
>судья.
>
>Дружно откатываемся на FCGI 0.68 и проблема решена.

Version 0.68_01 --   10 Jan 2010  <mst@shadowcat.co.uk> Matt S Trout
    o Force signal handler installation so that we correctly install handlers
      for SIGPIPE. Fixes RT#5100 <bobtfish@bobtfish.net>
    o Make the PRINT method return the number of bytes written rather than
      undef to be consistent with the IO:: interface. Fixes RT#24347
      <David Dick>
    o Fix UTF-8 double encoding when FCGI is passed octets by downgrading
      them into bytes correctly. Fixes RT#52400 <chansen@cpan.org>

В исходниках FCGI::XL добавилась следующая конструкция в методах PRINT и WRITE:

#ifdef DO_UTF8
            if (DO_UTF8(ST(n)) && !sv_utf8_downgrade(ST(n), 1))
                croak("Wide character in FCGI::Stream::PRINT");
#endif

Может кто-то растолковать, что она делает?

В конечном итоге интересует, как все-же выводить контент в UTF-8 используя последние версии FCGI? У меня модули апдейтятся автоматически из CPAN (cpan upgrade).

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

10. "Wide character in FCGI"  +/
Сообщение от Виталий (??) on 21-Мрт-10, 22:38 
>Может кто-то растолковать, что она делает?
>
>В конечном итоге интересует, как все-же выводить контент в UTF-8 используя последние
>версии FCGI? У меня модули апдейтятся автоматически из CPAN (cpan upgrade).

Цитата из https://rt.cpan.org/Public/Bug/Display.html?id=54247

You are trying to output perl's internal UTF-X format, since it contains
code points above 0xFF (0x100) it can't be downgraded (utf8_downgrade).

use encoding 'utf8'; has no effect on FCGI.XS since it's using TIEHANDLE

> This simple code produce an error:
>
> Wide character in FCGI::Stream::PRINT at ./fcgi2.pl line 16.

Yeah, so your code was broken before, but it's now showing up as FCGI
started caring about doing the right thing, rather than just assuming
everything is bytes.

You need to encode your output correctly if you're using non ascii...

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

11. "Wide character in FCGI"  +/
Сообщение от voy email on 28-Апр-10, 20:17 
На откат не решился. Поменял код так с:
print $template->output;

на:
my $out = $template->output;
if (FCGI->VERSION > 0.68) {
     utf8::encode($out)
}
print $out

Удачи =)

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема


Закажите подписки на Mandriva Enterprise Server 5 и Mandriva 2010 Powerpack

Подписки на Mandriva Enterprise Server 5 и Mandriva 2010 Powerpack включают получение обновлений и технической поддержки.

Техническая поддержка оказывается на русском языке по телефону, электронной почте и через web-форму. Предлагается подписка трех уровней - "Базовый", "Стандартный", "VIP", отличающихся скоростью реакции службы технической поддержки на проблему заказчика.

Mandriva Enterprise Server 5 (MES 5) - это надежный и производительный дистрибутив GNU/Linux для корпоративного сервера. В MES 5 интегрированы серверные разработки программистов Mandriva, а также ведущие свободные серверные приложения, которые помогут настроить и поддерживать необходимые вам серверы.

Mandriva 2010 Powerpack - это идеальный вариант для перехода на Linux новых пользователей в офисе и дома. В то же время, Mandriva 2010 Powerpack полностью удовлетворяет запросы опытных пользователей и администраторов.

Более подробно познакомиться с подписками вы можете здесь: http://www.linuxcenter.ru/shop/licence/mandriva/


  Закладки на сайте
  Проследить за страницей
Created 1996-2010 by Maxim Chirkov  
ДобавитьРекламаВебмастеруГИД  
RUNNet TopList