[devel] Re: hasher vs SysV IPC

Dmitry V. Levin =?iso-8859-1?q?ldv_=CE=C1_altlinux=2Eorg?=
Сб Сен 6 11:21:34 MSD 2003


On Sat, Sep 06, 2003 at 09:49:36AM +0300, Denis Ovsienko wrote:
> > Если ядро не очищает SYSV IPC за процессами (как в -ow), то и ограничение
> > в 2048 может быть достигнуто.
> >
> > Выходов два:
> > 1. Использовать ядра с включённой очисткой SYSV IPC.
> > 2. Продублировать код из ipcs/ipcrm в hasher'е (точнее говоря, в
> >   hasher-priv killuid{1,2}).
> >
> > Какие будут предложения?
> Господа, я читаю вашу газету и худею. Если бы вы программировали под IPC
> хотя бы некоторое время, то знали бы, что ресурсы по умолчанию не
> удаляются, когда счётчик процессов, их использующих, достигает нуля (то
> есть количество вызовов shmdt равняется количеству вызовов shmat). Чтобы
> удалялись, выставляется флаг с помощью shmctl (shmid, IPC_RMID, buf). Для
> семафоров аналогично.

То, о чём вы говорите, порой не соответствует действительности, хотя об
этом и написано в старых книжках.

Например, в ow-ядрах есть параметр:

Destroy shared memory segments not in use
CONFIG_HARDEN_SHM
  Linux lets you set resource limits, including on how much memory one
  process can consume, via setrlimit(2). Unfortunately, shared memory
  segments are allowed to exist without association with any process,
  and thus might not be counted against any resource limits. This option
  automatically destroys shared memory segments when their attach count
  becomes zero after a detach or a process termination. It will also
  destroy segments that were created, but never attached to, on exit from
  the process. (In case you're curious, the only use left for IPC_RMID is
  to immediately destroy an unattached segment.) Of course, this breaks
  the way things are defined, so some applications might stop working.
  Note that this feature will do you no good unless you also configure
  your resource limits (in particular, RLIMIT_AS and RLIMIT_NPROC).

Вообще говоря, portable software не должно полагаться на то или иное
поведение ядра в этой ситуации.


-- 
ldv
----------- следующая часть -----------
Было удалено вложение не в текстовом формате...
Имя     : =?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/devel/attachments/20030906/50508d68/attachment-0001.bin>


Подробная информация о списке рассылки Devel