On Tue, Apr 06, 2004 at 05:08:36AM -0400, Ivan Adzhubey wrote: > > В ядре 2.4.25-std-{up,smp}-alt3 добавлена возможность настройки > > поведения ядра при обнаружении неиспользуемых сегментов разделяемой > > памяти. Это делается через sysctl kernel.shm_destroy_unused. По > > умолчанию установлено значение 1 - неиспользуемые сегменты > > разделяемой памяти будут уничтожаться немедленно. При установке > > этого параметра в 0 сегменты разделяемой памяти будут уничтожаться > > только при явном вызове IPC_RMID. > > С этим я уже разобрался, но видимо что-то еще сломано (пардон, пропатчено ;). > Процесс запрашивает блок shm, форкает другой и этот другой уже не может к > сегменту обращаться. Причем это как-то связано с размером, блок должен быть > или достаточно большой или очень маленький. Точнее пока не разобрался, нет > времени. Но обидно что эти же программы прекрасно работают на всех других > ядрах, кроме альтовского. Неохота честно говоря тратить время на научный > проект по выявлению различий. Может кто-то из разработчиков все же примет на > себя труд потестировать? Программы могу выслать. Или вот хотя бы тест из > модуля IPC::SharedSimple прогнать. search.cpan.org именно такого модуля не находит - где его брать? Тесты IPC::ShareLite у меня на новом ядре проходили (после отключения shm_destroy_unused). Только там после ошибки надо чистить руками, иначе следующий запуск не проходит из-за оставшихся объектов IPC (собственно, именно этим SysV IPC и отвратителен - CONFIG_HARDEN_SHM как раз и делает его поведение более предсказуемым хотя бы для shm).