[sisyphus] perl SysV IPC vs Owl
Sergey Vlasov
=?iso-8859-1?q?vsu_=CE=C1_altlinux=2Eru?=
Чт Июл 21 19:43:08 MSD 2005
On Thu, Jul 21, 2005 at 07:01:51PM +0400, Alexey Tourbin wrote:
> On Thu, Jul 21, 2005 at 06:08:57PM +0400, Alexey I. Froloff wrote:
> > * Alexey Tourbin <at@> [050721 17:40]:
> > > #7390 perl-base blocker
> > > SysV shared memory support is unfunctional with CONFIG_HARDEN_SHM (Openwall patch)
> > С этой багой надо идти в апстрим... Это проблема дизайна
> > shmread/shmwrite...
>
> В чей апастрим? В чём суть проблемы? Подробнее, пожалуйста...
В патче Openwall для ядер 2.4.x добавляется возможность автоматического
уничтожения неиспользуемых сегментов SysV shared memory (сегмент считается
неиспользуемым, если он не отображается в адресное пространство хотя бы
одного процесса). В ядрах std-* эта опция конфигурации патча Openwall
(CONFIG_HARDEN_SHM) включена.
Функции shmread и shmwrite в Perl при каждом вызове выполняют shmat(),
осуществляют доступ к данным в разделяемой памяти, после чего выполняют
shmdt(). В результате выполнения этих действий, если отсутствуют другие
процессы, использующие этот сегмент, и при этом в ядре включена опция
CONFIG_HARDEN_SHM, при выполнении shmdt() сегмент уничтожается.
Настоящая проблема здесь даже не в Perl, а в самом SysV shared memory API,
допускающем существование областей разделяемой памяти при отсутствии
ответственных за них процессов. В большинстве случаев использования SysV
shm это свойство вызывает только проблемы (в частности, необходимость
ручного удаления сегментов после аварийного завершения использовавших их
процессов).
В случае, если автоматическое удаление сегментов разделяемой памяти
всё-таки нужно выключить, это можно сделать командой
echo 0 >/proc/sys/kernel/shm_destroy_unused
(соответствующий патч есть в ядрах начиная с 2.4.25-std-*-alt3).
----------- следующая часть -----------
Было удалено вложение не в текстовом формате...
Имя : =?iso-8859-1?q?=CF=D4=D3=D5=D4=D3=D4=D7=D5=C5=D4?=
Тип : application/pgp-signature
Размер : 189 байтов
Описание: =?iso-8859-1?q?=CF=D4=D3=D5=D4=D3=D4=D7=D5=C5=D4?=
Url : <http://lists.altlinux.org/pipermail/sisyphus/attachments/20050721/f2d80945/attachment-0003.bin>
Подробная информация о списке рассылки Sisyphus