ALT Linux Team development discussions
 help / color / mirror / Atom feed
* [devel] statically linked ПО и ALT Linux
@ 2006-04-18 12:42 Andrew Kornilov
    0 siblings, 1 reply; 2+ messages in thread
From: Andrew Kornilov @ 2006-04-18 12:42 UTC (permalink / raw)
  To: ALT Devel discussion list

Всем привет.

Столкнулся с интересной ситуацией: есть статически собранное 
коммерческое ПО (собиралось, судя по всему, на RH9). Как известно, есть 
некий "костыль" для работы такого ПО в Linux: для использования NSS это 
ПО подгружает системную библиотеку libnss, а дальше уже по зависимостям 
подгружается системная libc и т.д. Соответственно, имеется два вида глюков:
1. При сильном отличии ABI libc это ПО падает сразу
2. При незначительных различиях оно работет, но под нагрузкой может 
падать (и падает, к сожалению).

Проблема решается запуском этого ПО в chrooted environment, соотственно, 
системные libnss* недоступны и оно работает (однако, при этом теряется 
возможность использовать функциональность NSS)

Тестирование ПО на многих свежих и не очень дистрибутивах Linux 
показывает, что оно таки подгружает системные библиотеки и падает.
Под ALT Linux-ом и ядром 2.6.14-vs26-smp я столкнулся с интересной 
ситуацией:  ПО запускается, по strace видны успешные попытки подгрузить 
системные libnss*, однако после этого в /proc/$pid/maps они отсутствуют 
полностью и ПО продолжает работать. После общения с кучей людей на 
#altlinux так и не выяснили, почему так происходит.
Чтение man на dlopen() вывело на одну мысль, там есть такое:
RTLD_LAZY
              Perform lazy binding.  Only resolve symbols  as  the  
code  that
              references them is executed.  If the symbol is never 
referenced,
              then it is never resolved.  (Lazy binding is only 
performed  for
              function  references; references to variables are always 
immedi-
              ately bound when the library is loaded.)
Возможно ли такоее, что dlopen везде не использует такой флаг или просто 
игнорирует его, а наш как раз использует? Или это немного не то?

Меня больше всего волнуют вопросы:
1. Может ли это ПО в дальнейшем таки загрузить для чего-то системные 
libnss и благополучно упасть?
2. Найти простой способ запрета загрузки системной libnss без chroot не 
удалось, но городить и chrooted environment нет никакого желания. Может 
быть он все-таки существует?

Спасибо.


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

* Re: [devel] statically linked ПО и ALT Linux
  @ 2006-04-18 12:53   ` Andrew Kornilov
  0 siblings, 0 replies; 2+ messages in thread
From: Andrew Kornilov @ 2006-04-18 12:53 UTC (permalink / raw)
  To: shigorin, ALT Devel discussion list

Michael Shigorin wrote:

>>2. Найти простой способ запрета загрузки системной libnss без
>>chroot не удалось, но городить и chrooted environment нет
>>никакого желания. Может быть он все-таки существует?
>>    
>>
>
>Мож всё-таки vserver с лавкой древностей?
>
>  
>
vserver и так есть под это, но древности внутри держать не хочется.  
Тогда уж проще chroot сделать. Просто хочется выяснить, почему же оно у 
нас работает и в /proc/$pid/maps пустота. Может просто proc поломанный? :)



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

end of thread, other threads:[~2006-04-18 12:53 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2006-04-18 12:42 [devel] statically linked ПО и ALT Linux Andrew Kornilov
2006-04-18 12:53   ` Andrew Kornilov

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