[devel] IA: beware of new dvd+rw-tools
Sergey Vlasov
=?iso-8859-1?q?vsu_=CE=C1_altlinux=2Eru?=
Сб Фев 25 21:51:58 MSK 2006
On Sat, Feb 25, 2006 at 07:57:55PM +0300, Konstantin A. Lepikhov wrote:
> Hi Денис!
>
> Saturday 25, at 07:48:56 PM you wrote:
>
> > On Sat, Feb 25, 2006 at 07:14:12PM +0300, Konstantin A. Lepikhov wrote:
> >
> > KAL> Новые dvd+rw-tools разучились работать с ядрами 2.6.x (видимо, их автор
> > KAL> заразился от Шиллинга). Так что если кто захочет их собрать в сизиф,
> > KAL> просьба учесть этот неприятный момент (как и то, что в этом случае мы
> > KAL> останемся без средств записи DVD).
> > KAL> Информация к размышлению:
> > KAL> http://lists.debian.org/cdwrite/2006/02/msg00132.html и далее по треду.
6.1 у меня работает:
$ ./growisofs -Z /dev/dvd --dry-run .
WARNING: /dev/dvd already carries isofs!
About to execute 'mkisofs . | builtin_dd of=/dev/dvd obs=32k seek=0'
Using GROWI000.O;1 for /growisofs_mmc.o (growisofs.o)
$ ./growisofs -Z /dev/dvd --dry-run --use-the-force-luke=bufsize=32M .
WARNING: /dev/dvd already carries isofs!
About to execute 'mkisofs . | builtin_dd of=/dev/dvd obs=32k seek=0'
Using GROWI000.O;1 for /growisofs_mmc.o (growisofs.o)
$ ./growisofs -Z /dev/dvd --dry-run --use-the-force-luke=bufsize=64M .
:-( unable to anonymously mmap 67108864: Resource temporarily unavailable
Перед этим на growisofs был поставлен suid root - без него проблем
вообще не возникает, так как вызов setrlimit() не проходит, после чего
mlockall(MCL_CURRENT|MCL_FUTURE) молча пропускается.
Кстати, сейчас права root для записи DVD в принципе не обязательны -
достаточно иметь право записи в соответствующее устройство (по крайней
мере, DVD+RW так пишется). Видимо, стоит предусмотреть для control
growisofs и вариант прав 711.
> > Я правильно понимаю, что он попросту пытается залочить для себя слишком
> > много памяти? Можно ли его от этого отучить тривиальным патчем?
Проблема в том, что при mlockall(MCL_CURRENT|MCL_FUTURE) блокируется и
код процесса (в том числе и libc), а нормального способа определить
его размер, чтобы учесть при выставлении RLIMIT_MEMLOCK, не
существует. Хотя, вероятно, можно соорудить что-то типа бинарного
поиска (только для проверки придётся делать setreuid() туда-сюда,
поскольку для рута RLIMIT_MEMLOCK не проверяется).
Сейчас там просто выставляется (DEFAULT_BUF_SIZE_MB+4)*1024*1024 -
т.е., к размеру буфера по умолчанию (32 МБ) добавляется ещё 4 МБ на
прочие нужды. Видимо, в каких-то случаях этих 4 МБ оказывается
недостаточно.
> вопрос зачем ему столько памяти.
Видимо, затем же, зачем и cdrecord. Хотя SCHED_RR, как cdrecord, он
ставить себе ещё не научился.
----------- следующая часть -----------
Было удалено вложение не в текстовом формате...
Имя : =?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/20060225/93449d2c/attachment-0001.bin>
Подробная информация о списке рассылки Devel