ALT Linux Team development discussions
 help / color / mirror / Atom feed
* Re: [devel] NSS modules
@ 2008-11-16 18:55 Dmitry V. Levin
  2008-11-16 19:46 ` Alexey Tourbin
  0 siblings, 1 reply; 8+ messages in thread
From: Dmitry V. Levin @ 2008-11-16 18:55 UTC (permalink / raw)
  To: ALT Linux Team development discussions

[-- Attachment #1: Type: text/plain, Size: 1288 bytes --]

On Sun, Nov 16, 2008 at 09:39:12PM +0300, Evgeny Sinelnikov wrote:
[...]
> После долго разговора в #altlinux, мне кажется, что я понял... :)
> 
> Проблема вот в чём. GCC и GLIBC - это стандартные компоненты. Но GLIBC
> считается первичной, а GCC могут быть разными.
> 
> Так вот линковка системного модуля с libstdc++ одного ABI, который при
> этом грузится динамически, потенциально может быть критична для тех
> приложений, которые слинкованы с libstdc++ другого ABI. Это, вероятно,

Это ерунда, с некоторых (не так давно, как в glibc, но всё же с достаточно
давних пор) в libstdc++ гарантируется обратная совместимость ABI.

[...]
> В общем, вопрос ставится так: "Крайне не желательно писать NSS-модули
> на C++". Это связано в особенностями архитекутры NSS. Мне теперь надо
> обдумать этот вопрос...

Не совсем так.  Нежелательно линковать NSS-модули с библиотеками,
отличными от -lc, ибо эти библиотеки внезапно окажутся в памяти
каждого приложения, вызывающего функцию, использующую NSS.  При этом могут
возникать разные неприятности, вроде несовместимости разных библиотек или
библиотек разных версий.

Я, кстати, не знаю, может ли внезапная (для приложения) динамическая
линковка libstdc++.so.6 привести к неприятностям в этом приложении.


-- 
ldv

[-- Attachment #2: Type: application/pgp-signature, Size: 197 bytes --]

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [devel] NSS modules
  2008-11-16 18:55 [devel] NSS modules Dmitry V. Levin
@ 2008-11-16 19:46 ` Alexey Tourbin
  2008-11-16 19:53   ` Dmitriy M. Maslennikov
  0 siblings, 1 reply; 8+ messages in thread
From: Alexey Tourbin @ 2008-11-16 19:46 UTC (permalink / raw)
  To: ALT Linux Team development discussions

[-- Attachment #1: Type: text/plain, Size: 874 bytes --]

On Sun, Nov 16, 2008 at 09:55:16PM +0300, Dmitry V. Levin wrote:
> > В общем, вопрос ставится так: "Крайне не желательно писать NSS-модули
> > на C++". Это связано в особенностями архитекутры NSS. Мне теперь надо
> > обдумать этот вопрос...
> 
> Не совсем так.  Нежелательно линковать NSS-модули с библиотеками,
> отличными от -lc, ибо эти библиотеки внезапно окажутся в памяти
> каждого приложения, вызывающего функцию, использующую NSS.  При этом могут
> возникать разные неприятности, вроде несовместимости разных библиотек или
> библиотек разных версий.

dlopen(3) должен по умолчанию откупоривать nss модули в режиме RTLD_LOCAL.
То есть по крайней мере загружаемый модуль никак не может повлиять на работу
приложения в смысле совместимости разных библиотек (тогда как библиотеки,
уже загруженные в приложение, вероятно, могут повлиять на работу модуля).

[-- Attachment #2: Type: application/pgp-signature, Size: 197 bytes --]

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [devel] NSS modules
  2008-11-16 19:46 ` Alexey Tourbin
@ 2008-11-16 19:53   ` Dmitriy M. Maslennikov
  2008-11-16 19:58     ` Dmitry V. Levin
  0 siblings, 1 reply; 8+ messages in thread
From: Dmitriy M. Maslennikov @ 2008-11-16 19:53 UTC (permalink / raw)
  To: ALT Linux Team development discussions

16 ноября 2008 г. 22:46 пользователь Alexey Tourbin <at@altlinux.ru> написал:
> dlopen(3) должен по умолчанию откупоривать nss модули в режиме RTLD_LOCAL.
> То есть по крайней мере загружаемый модуль никак не может повлиять на работу
> приложения в смысле совместимости разных библиотек (тогда как библиотеки,
> уже загруженные в приложение, вероятно, могут повлиять на работу модуля).
На практике мы замечали деструктивную работу pthread, неожиданно
появляющегося в приложении.

-- 
Dmitriy M. Maslennikov
rlz@etersoft.ru
rlz@altlinux.org
maslennikovdm@gmail.com
master@armory.ru

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [devel] NSS modules
  2008-11-16 19:53   ` Dmitriy M. Maslennikov
@ 2008-11-16 19:58     ` Dmitry V. Levin
  2008-11-16 20:15       ` Alexey Tourbin
  0 siblings, 1 reply; 8+ messages in thread
From: Dmitry V. Levin @ 2008-11-16 19:58 UTC (permalink / raw)
  To: ALT Linux Team development discussions

[-- Attachment #1: Type: text/plain, Size: 608 bytes --]

On Sun, Nov 16, 2008 at 10:53:20PM +0300, Dmitriy M. Maslennikov wrote:
> 16 ноября 2008 г. 22:46 пользователь Alexey Tourbin <at@altlinux.ru> написал:
> > dlopen(3) должен по умолчанию откупоривать nss модули в режиме RTLD_LOCAL.
> > То есть по крайней мере загружаемый модуль никак не может повлиять на работу
> > приложения в смысле совместимости разных библиотек (тогда как библиотеки,
> > уже загруженные в приложение, вероятно, могут повлиять на работу модуля).
> На практике мы замечали деструктивную работу pthread, неожиданно
> появляющегося в приложении.

Это общеизвестно.


-- 
ldv

[-- Attachment #2: Type: application/pgp-signature, Size: 197 bytes --]

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [devel] NSS modules
  2008-11-16 19:58     ` Dmitry V. Levin
@ 2008-11-16 20:15       ` Alexey Tourbin
  2008-11-16 20:39         ` Dmitry V. Levin
  0 siblings, 1 reply; 8+ messages in thread
From: Alexey Tourbin @ 2008-11-16 20:15 UTC (permalink / raw)
  To: ALT Linux Team development discussions

[-- Attachment #1: Type: text/plain, Size: 699 bytes --]

On Sun, Nov 16, 2008 at 10:58:28PM +0300, Dmitry V. Levin wrote:
> On Sun, Nov 16, 2008 at 10:53:20PM +0300, Dmitriy M. Maslennikov wrote:
> > 16 ноября 2008 г. 22:46 пользователь Alexey Tourbin <at@altlinux.ru> написал:
> > > dlopen(3) должен по умолчанию откупоривать nss модули в режиме RTLD_LOCAL.
> > > То есть по крайней мере загружаемый модуль никак не может повлиять на работу
> > > приложения в смысле совместимости разных библиотек (тогда как библиотеки,
> > > уже загруженные в приложение, вероятно, могут повлиять на работу модуля).
> > На практике мы замечали деструктивную работу pthread, неожиданно
> > появляющегося в приложении.
> Это общеизвестно.

Желаю ознакомиться.

[-- Attachment #2: Type: application/pgp-signature, Size: 197 bytes --]

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [devel] NSS modules
  2008-11-16 20:15       ` Alexey Tourbin
@ 2008-11-16 20:39         ` Dmitry V. Levin
  2008-11-16 21:39           ` Evgeny Sinelnikov
  2008-11-16 21:41           ` Evgeny Sinelnikov
  0 siblings, 2 replies; 8+ messages in thread
From: Dmitry V. Levin @ 2008-11-16 20:39 UTC (permalink / raw)
  To: ALT Linux Team development discussions

[-- Attachment #1: Type: text/plain, Size: 1097 bytes --]

On Sun, Nov 16, 2008 at 11:15:33PM +0300, Alexey Tourbin wrote:
> On Sun, Nov 16, 2008 at 10:58:28PM +0300, Dmitry V. Levin wrote:
> > On Sun, Nov 16, 2008 at 10:53:20PM +0300, Dmitriy M. Maslennikov wrote:
> > > 16 ноября 2008 г. 22:46 пользователь Alexey Tourbin <at@altlinux.ru> написал:
> > > > dlopen(3) должен по умолчанию откупоривать nss модули в режиме RTLD_LOCAL.
> > > > То есть по крайней мере загружаемый модуль никак не может повлиять на работу
> > > > приложения в смысле совместимости разных библиотек (тогда как библиотеки,
> > > > уже загруженные в приложение, вероятно, могут повлиять на работу модуля).
> > > На практике мы замечали деструктивную работу pthread, неожиданно
> > > появляющегося в приложении.
> > Это общеизвестно.
> 
> Желаю ознакомиться.

У libpthread очень нетривиальный конструктор, который меняет поведение
многих glibc'шных интерфейсов, с непредсказуемыми последствиями.
По этой причине всё, что использует libpthread, как правило, должно быть
слинковано с libpthread.
Ссылки на Drepper'а под рукой нет, но факт есть факт.


-- 
ldv

[-- Attachment #2: Type: application/pgp-signature, Size: 197 bytes --]

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [devel] NSS modules
  2008-11-16 20:39         ` Dmitry V. Levin
@ 2008-11-16 21:39           ` Evgeny Sinelnikov
  2008-11-16 21:41           ` Evgeny Sinelnikov
  1 sibling, 0 replies; 8+ messages in thread
From: Evgeny Sinelnikov @ 2008-11-16 21:39 UTC (permalink / raw)
  To: ALT Linux Team development discussions

16 ноября 2008 г. 23:39 пользователь Dmitry V. Levin <ldv@altlinux.org> написал:
> On Sun, Nov 16, 2008 at 11:15:33PM +0300, Alexey Tourbin wrote:
>> On Sun, Nov 16, 2008 at 10:58:28PM +0300, Dmitry V. Levin wrote:
>> > On Sun, Nov 16, 2008 at 10:53:20PM +0300, Dmitriy M. Maslennikov wrote:
>> > > 16 ноября 2008 г. 22:46 пользователь Alexey Tourbin <at@altlinux.ru> написал:
>> > > > dlopen(3) должен по умолчанию откупоривать nss модули в режиме RTLD_LOCAL.
>> > > > То есть по крайней мере загружаемый модуль никак не может повлиять на работу
>> > > > приложения в смысле совместимости разных библиотек (тогда как библиотеки,
>> > > > уже загруженные в приложение, вероятно, могут повлиять на работу модуля).
>> > > На практике мы замечали деструктивную работу pthread, неожиданно
>> > > появляющегося в приложении.
>> > Это общеизвестно.
>>
>> Желаю ознакомиться.
>
> У libpthread очень нетривиальный конструктор, который меняет поведение
> многих glibc'шных интерфейсов, с непредсказуемыми последствиями.
> По этой причине всё, что использует libpthread, как правило, должно быть
> слинковано с libpthread.
> Ссылки на Drepper'а под рукой нет, но факт есть факт.
>

Drepper'а почитаю (у него, кстати, оказывается уже полгода как,
появилась интересная статья про использование futex'ов):
http://people.redhat.com/~drepper/

Кстати, очень немаловажный вопрос, связанный с pthreads, имеет место в
потокобезопасной реализации nss-модулей. Я так понял, что в новых
версиях libnss_winbind таки использует pthreads и наконец-то
потокобезопасен. Я проверил, у меня тоже он используется... Даже
странно ;)

Я так понимаю, что в новом glibc наконец-то стала работать прозрачная
линковка с pthreads через #pragma weak...
Так что с pthreads, вроде бы, тоже уже проблем нет :)

Я вот всё пока обдумываю, может и с libstdc++ проблема тоже надуманная? :)

-- 
Sin (Sinelnikov Evgeny)

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [devel] NSS modules
  2008-11-16 20:39         ` Dmitry V. Levin
  2008-11-16 21:39           ` Evgeny Sinelnikov
@ 2008-11-16 21:41           ` Evgeny Sinelnikov
  1 sibling, 0 replies; 8+ messages in thread
From: Evgeny Sinelnikov @ 2008-11-16 21:41 UTC (permalink / raw)
  To: ALT Linux Team development discussions

16 ноября 2008 г. 23:39 пользователь Dmitry V. Levin <ldv@altlinux.org> написал:
> On Sun, Nov 16, 2008 at 11:15:33PM +0300, Alexey Tourbin wrote:
>> On Sun, Nov 16, 2008 at 10:58:28PM +0300, Dmitry V. Levin wrote:
>> > On Sun, Nov 16, 2008 at 10:53:20PM +0300, Dmitriy M. Maslennikov wrote:
>> > > 16 ноября 2008 г. 22:46 пользователь Alexey Tourbin <at@altlinux.ru> написал:
>> > > > dlopen(3) должен по умолчанию откупоривать nss модули в режиме RTLD_LOCAL.
>> > > > То есть по крайней мере загружаемый модуль никак не может повлиять на работу
>> > > > приложения в смысле совместимости разных библиотек (тогда как библиотеки,
>> > > > уже загруженные в приложение, вероятно, могут повлиять на работу модуля).
>> > > На практике мы замечали деструктивную работу pthread, неожиданно
>> > > появляющегося в приложении.
>> > Это общеизвестно.
>>
>> Желаю ознакомиться.
>
> У libpthread очень нетривиальный конструктор, который меняет поведение
> многих glibc'шных интерфейсов, с непредсказуемыми последствиями.
> По этой причине всё, что использует libpthread, как правило, должно быть
> слинковано с libpthread.
> Ссылки на Drepper'а под рукой нет, но факт есть факт.
>

Drepper'а почитаю (у него, кстати, оказывается уже полгода как,
появилась интересная статья про использование futex'ов):
http://people.redhat.com/~drepper/

Кстати, очень немаловажный вопрос, связанный с pthreads, имеет место в
потокобезопасной реализации nss-модулей. Я так понял, что в новых
версиях libnss_winbind таки использует pthreads и наконец-то
потокобезопасен. Я проверил, у меня тоже он используется... Даже
странно ;)

Я так понимаю, что в новом glibc наконец-то стала работать прозрачная
линковка с pthreads через #pragma weak...
Так что с pthreads, вроде бы, тоже уже проблем нет :)

Я вот всё пока обдумываю, может и с libstdc++ проблема тоже надуманная? :)

-- 
Sin (Sinelnikov Evgeny)

^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2008-11-16 21:41 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2008-11-16 18:55 [devel] NSS modules Dmitry V. Levin
2008-11-16 19:46 ` Alexey Tourbin
2008-11-16 19:53   ` Dmitriy M. Maslennikov
2008-11-16 19:58     ` Dmitry V. Levin
2008-11-16 20:15       ` Alexey Tourbin
2008-11-16 20:39         ` Dmitry V. Levin
2008-11-16 21:39           ` Evgeny Sinelnikov
2008-11-16 21:41           ` Evgeny Sinelnikov

ALT Linux Team development discussions

This inbox may be cloned and mirrored by anyone:

	git clone --mirror http://lore.altlinux.org/devel/0 devel/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 devel devel/ http://lore.altlinux.org/devel \
		devel@altlinux.org devel@altlinux.ru devel@lists.altlinux.org devel@lists.altlinux.ru devel@linux.iplabs.ru mandrake-russian@linuxteam.iplabs.ru sisyphus@linuxteam.iplabs.ru
	public-inbox-index devel

Example config snippet for mirrors.
Newsgroup available over NNTP:
	nntp://lore.altlinux.org/org.altlinux.lists.devel


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git