Fwd: New ZeroC Labs Project: Protocol Buffers

0 views
Skip to first unread message

Evgeny Sinelnikov

unread,
Jul 19, 2008, 3:54:06 AM7/19/08
to saratov-linu...@googlegroups.com
Здравствуйте.

Удивительное рядом....
Только вчера мы отладили анонимный локальный JSON-based RPC для
NSS-модуля, как после мимолётного обсуждения вопроса о вариантах и
возможностях его замены на Protocol Buffers, я получил ниже
пересланное письмо...

По пересказу проблемы, которая вынудила нас заняться вопросом создания
мощного RPC для "убогих" однопоточных клиентов, привожу её краткое
описание:
Как выяснилось в процессе отладки NSS- модулей общающихся с демоном, в
зависимости от того загружены ли pthreads перед началом работы
приложений или нет, gettext по разному инициализуется
(предположительно для сериализации сообщений в многопоточных
приложениях). Так вот, если вдруг pthreads будут загружены косвенно,
например, динамически из по зависимостям из nss-модулей (посредством
вызовов getpwnam_r, getgrnam_r и аналогичных), то gettext блокируется
на собственных средствах синхронизации - он на такое не расчитывает...
Мы всю голову себе разбили отлаживая RPC, ведь ещё одна вешь, которая
могла быть и которую и ошибочно искали - это работа некотрых
приложений после fork(), но перед exec(), что для Ice запрещено
(http://www.zeroc.com/faq/fork.html). В итоге написали своё RPC, для
локальных случаев, которое тоже оказалось косвенно использует
pthreads... Так и нашли - отлаживая виснущий id из coreutils.
А выглядело это так - ставишь свой модуль nss - id и mc виснут...
убираешь - всё нормально... И догадаться, что проблема с
Pthreads+Gettext невозможно...
В этом плане lav@ высказал мысль о том, что во многих configure
предусмотрено --disable-nls, поскольку вероятно такие проблемы
проблемы кем-то подразумевались....


---------- Forwarded message ----------
From: anno...@zeroc.com <announce@zeroc>
Date: 2008/7/19
Subject: New ZeroC Labs Project: Protocol Buffers
To: sin@altlinux


Google's latest open source project, Protocol Buffers, provides a serialization
mechanism for structured data types. As a ZeroC Labs project, we have created an
Ice patch that allows you to use Ice as a transport for protocol buffers in C++,
Java, and Python. You can read more about it on the project page:

http://www.zeroc.com/labs/protobuf/index.html

Or you can get started right away by downloading the patch:

http://www.zeroc.com/labs/protobuf/download.html

The ZeroC Staff

Note: You have received this message because you are a member of the ZeroC user
forum. If you do not wish to receive messages from ZeroC in the future, go to
http://www.zeroc.com/vbulletin/profile.php?do=editoptions, uncheck
"Receive Email
from Administrators" and click Save Changes.

--
Sin (Sinelnikov Evgeny)

Reply all
Reply to author
Forward
0 new messages