Bug 9951 - неприятная бага в xmlrpc (который даже не собран)
: неприятная бага в xmlrpc (который даже не собран)
Status: CLOSED NOTABUG
: Sisyphus
(All bugs in Sisyphus/php)
: unstable
: all Linux
: P2 normal
Assigned To:
:
: http://grundik.livejournal.com/122501...
:
:
:
  Show dependency tree
 
Reported: 2006-09-03 01:43 by
Modified: 2006-09-04 12:53 (History)


Attachments


Note

You need to log in before you can comment on or make changes to this bug.


Description From 2006-09-03 01:43:59
(см. Url)

Запрашиваем через XMLRPC метод A(string), который должен вернуть этот string
(ну, на самом деле не так, но для простоты пусть будет так).

Если клиент работает под debian, то всё хорошо.
Если клиент работает под ALM, то в случае, если string - это русские букыв,
получаем ошибку "error decoding RPC. reference to invalid character". Если ASCII
- то всё нормально. Кодировка везде UTF-8.

Клиент написан на PHP. На debian PHP собран с xmlrpc из коробки. На ALM я
поддержку xmlrpc делал ручками как extention, потому что в Alt нету xmlrpc для
PHP (как и многих других вещей; впрочем, про приколы alt-овцев с php я уже писал
когда-то; кстати, у них опять репозиторий побился).


Начинаем исследовать баг. Смотрим запрос (тестовый запрос - A("'раз','два'")).
debian:
"'раз','два'"
ALM: "'€°·','´²°'"

Заметили? В ALM как-будто нолики вырезали из первого байта.

Оказывается, это древний баг (http://bugs.php.net/bug.php?id=28597). Но! В
xmlrpc-epi фикса нет, в ALM нету xmlrpc вообще, patch из бага не открывается
(сервер, где он лежал, уже нету). Из debian вытащить исходники не получится, так
как там не отдельно xmlrpc-epi, а в самом бинарнике php.

Еле нашёл патч -
http://cvs.php.net/viewvc.cgi/php-src/ext/xmlrpc/libxmlrpc/xml_element.c?r1=1.3.4.2&r2=1.3.4.3
(ещё бы, 2004 год). Естественно, он не наложился бы, потому что исходники
xmlrpc-epi другие, чем xmlrpc в php (а пересобирать весь php мне как-то не
охота). Благо что патч маленький, нашёл нужное место, да поправил руками.

Пересобрал. Работает.
------- Comment #1 From 2006-09-03 02:31:17 -------
А что мешает Благородному Дону использовать %patch после cp -pr
%php_extsrcdir/%php_extension/* . ?

P.S. package mismatch?
------- Comment #2 From 2006-09-04 10:45:52 -------
Миш, ты что-то собрал, ты в этом чём-то нашёл багу ... php тут причём ?
У нас есть модули, которые пакуются отдельно и содержат патчи (например
php-dba).
Кроме того (вопрос в сторону), а ты не пробовал собирать этот модуль с
системным
libxmlrpc-devel ? 

По поводу баги:  Resolve -> INVALID
------- Comment #3 From 2006-09-04 12:36:23 -------
Лёш, эт не я собирал.  См. url.  Я всего лишь решил закинуть на тот случай,
если
тебе результат разборки Руслана будет полезен, поскольку сам бы долго чесал в
затылке при таких искажениях данных.
------- Comment #4 From 2006-09-04 12:53:11 -------
(In reply to comment #3)
> Лёш, эт не я собирал.

Понял. Большое спасибо. Если вдруг у нас когда-нибудь появится php-xmlrpc, то
буду иметь это ввиду.