ALT Linux Team development discussions
 help / color / mirror / Atom feed
* [devel] Как пройти сборку если требуется /dev/shm ?
@ 2014-12-29 14:32 Andrew V. Stepanov
  2014-12-30 13:53 ` Andrew V. Stepanov
  0 siblings, 1 reply; 14+ messages in thread
From: Andrew V. Stepanov @ 2014-12-29 14:32 UTC (permalink / raw)
  To: devel

При сборке RPM пакета, требуется /dev/shm
А именно,

    SemLock.__init__(self, SEMAPHORE, 1, 1)
   File "/usr/lib64/python2.7/multiprocessing/synchronize.py", line 75, 
in __init__
     sl = self._semlock = _multiprocessing.SemLock(kind, value, maxvalue)
OSError: [Errno 38] Function not implemented

Как лучше поступить в данном случае?
Я понимаю что можно внести разрешить /dev/shm в конфиге hasher-priv..но 
это локальное решение.


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

* Re: [devel] Как пройти сборку если требуется /dev/shm ?
  2014-12-29 14:32 [devel] Как пройти сборку если требуется /dev/shm ? Andrew V. Stepanov
@ 2014-12-30 13:53 ` Andrew V. Stepanov
  2014-12-31 13:57   ` Alexander Bokovoy
  2015-01-01 20:41   ` Dmitry V. Levin
  0 siblings, 2 replies; 14+ messages in thread
From: Andrew V. Stepanov @ 2014-12-30 13:53 UTC (permalink / raw)
  To: devel


Как выяснилось, Python тут ни причем.

Рассмотрим компьютер в котором один однопоточный процессор, с одним ядром.

И рассмотрим семафор Posix.

$ cat 1.c
#include <semaphore.h>
#include <stdio.h>
#include <errno.h>
#include <stdlib.h>
#include <unistd.h>
#include <sys/types.h>

#include <sys/stat.h>
#include <fcntl.h>
#include <sys/mman.h>

int main(int argc, char **argv)
{
         sem_t *mutex;

         if ((mutex = sem_open("mysemaphore", O_CREAT, 0644, 1)) == 
SEM_FAILED) {
                 perror("semaphore initilization");
                 exit(1);
         }

         exit(0);
}



$ gcc 1.c -lpthread

$ ./a.out
semaphore initilization: Function not implemented

Т.е. POSIX семафоры в Linux хотят /dev/shm

Хотеть семафор даже на однопроцессорной машине __вполне законно__.


Python multiprocessing модуль написан с использованием POSIX семафоров, 
что также вполне законно.


Что видно:
File "/usr/src/RPM/BUILD/bro-2.3.1/aux/btest/btest", line 198, in 
runSubprocess
     q = multiprocessing.Queue()
   File "/usr/lib64/python2.7/multiprocessing/__init__.py", line 218, in 
Queue
     return Queue(maxsize)
   File "/usr/lib64/python2.7/multiprocessing/queues.py", line 63, in 
__init__
     self._rlock = Lock()
   File "/usr/lib64/python2.7/multiprocessing/synchronize.py", line 147, 
in __init__
     SemLock.__init__(self, SEMAPHORE, 1, 1)
   File "/usr/lib64/python2.7/multiprocessing/synchronize.py", line 75, 
in __init__
     sl = self._semlock = _multiprocessing.SemLock(kind, value, maxvalue)
OSError: [Errno 38] Function not implemented


Семафоры нужны даже на однопоточных машинах.
А POSIX семафоры хотят /dev/shm

В конкретно в моем случае:

http://git.altlinux.org/gears/p/python.git?p=python.git;a=blob;f=Python/Modules/_multiprocessing/semaphore.c;h=b9e8f345fbb1cd70918fb960377dadaea46fd8f3;hb=55198a185eef2089e6f4eba8654c5d9047a3c3a7#l195

Вывод: Hasher запрещает использование POSIX named semaphore.


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

* Re: [devel] Как пройти сборку если требуется /dev/shm ?
  2014-12-30 13:53 ` Andrew V. Stepanov
@ 2014-12-31 13:57   ` Alexander Bokovoy
  2015-01-01 20:41   ` Dmitry V. Levin
  1 sibling, 0 replies; 14+ messages in thread
From: Alexander Bokovoy @ 2014-12-31 13:57 UTC (permalink / raw)
  To: ALT Linux Team development discussions

2014-12-30 15:53 GMT+02:00 Andrew V. Stepanov <stanv@altlinux.ru>:
>
> Как выяснилось, Python тут ни причем.
>
> Рассмотрим компьютер в котором один однопоточный процессор, с одним ядром.
>
> И рассмотрим семафор Posix.
>
> $ cat 1.c
> #include <semaphore.h>
> #include <stdio.h>
> #include <errno.h>
> #include <stdlib.h>
> #include <unistd.h>
> #include <sys/types.h>
>
> #include <sys/stat.h>
> #include <fcntl.h>
> #include <sys/mman.h>
>
> int main(int argc, char **argv)
> {
>         sem_t *mutex;
>
>         if ((mutex = sem_open("mysemaphore", O_CREAT, 0644, 1)) ==
> SEM_FAILED) {
>                 perror("semaphore initilization");
>                 exit(1);
>         }
>
>         exit(0);
> }
>
>
>
> $ gcc 1.c -lpthread
>
> $ ./a.out
> semaphore initilization: Function not implemented
>
> Т.е. POSIX семафоры в Linux хотят /dev/shm
>
> Хотеть семафор даже на однопроцессорной машине __вполне законно__.
>
>
> Python multiprocessing модуль написан с использованием POSIX семафоров, что
> также вполне законно.
>
>
> Что видно:
> File "/usr/src/RPM/BUILD/bro-2.3.1/aux/btest/btest", line 198, in
> runSubprocess
>     q = multiprocessing.Queue()
>   File "/usr/lib64/python2.7/multiprocessing/__init__.py", line 218, in
> Queue
>     return Queue(maxsize)
>   File "/usr/lib64/python2.7/multiprocessing/queues.py", line 63, in
> __init__
>     self._rlock = Lock()
>   File "/usr/lib64/python2.7/multiprocessing/synchronize.py", line 147, in
> __init__
>     SemLock.__init__(self, SEMAPHORE, 1, 1)
>   File "/usr/lib64/python2.7/multiprocessing/synchronize.py", line 75, in
> __init__
>     sl = self._semlock = _multiprocessing.SemLock(kind, value, maxvalue)
> OSError: [Errno 38] Function not implemented
>
>
> Семафоры нужны даже на однопоточных машинах.
> А POSIX семафоры хотят /dev/shm
>
> В конкретно в моем случае:
>
> http://git.altlinux.org/gears/p/python.git?p=python.git;a=blob;f=Python/Modules/_multiprocessing/semaphore.c;h=b9e8f345fbb1cd70918fb960377dadaea46fd8f3;hb=55198a185eef2089e6f4eba8654c5d9047a3c3a7#l195
>
> Вывод: Hasher запрещает использование POSIX named semaphore.
Учитывая, что /dev/shm может быть смонтировано в приватное адресное
пространство на современных ядрах, ничего не мешает хэшеру
использовать /dev/shm для сборки приложений.

-- 
/ Alexander Bokovoy

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

* Re: [devel] Как пройти сборку если требуется /dev/shm ?
  2014-12-30 13:53 ` Andrew V. Stepanov
  2014-12-31 13:57   ` Alexander Bokovoy
@ 2015-01-01 20:41   ` Dmitry V. Levin
  2015-01-12 12:30     ` Anton Farygin
  1 sibling, 1 reply; 14+ messages in thread
From: Dmitry V. Levin @ 2015-01-01 20:41 UTC (permalink / raw)
  To: ALT Devel discussion list

[-- Attachment #1: Type: text/plain, Size: 797 bytes --]

Hi,

On Tue, Dec 30, 2014 at 04:53:59PM +0300, Andrew V. Stepanov wrote:
> И рассмотрим семафор Posix.
> 
> $ cat 1.c
> #include <semaphore.h>
> #include <stdio.h>
> #include <errno.h>
> #include <stdlib.h>
> #include <unistd.h>
> #include <sys/types.h>
> 
> #include <sys/stat.h>
> #include <fcntl.h>
> #include <sys/mman.h>
> 
> int main(int argc, char **argv)
> {
>         sem_t *mutex;
> 
>         if ((mutex = sem_open("mysemaphore", O_CREAT, 0644, 1)) == 
> SEM_FAILED) {
>                 perror("semaphore initilization");
>                 exit(1);
>         }
> 
>         exit(0);
> }
> 
> $ gcc 1.c -lpthread
> 
> $ ./a.out
> semaphore initilization: Function not implemented

Используйте hasher >= 1.3.23-alt1 и собирайте на tmpfs.


-- 
ldv

[-- Attachment #2: Type: application/pgp-signature, Size: 181 bytes --]

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

* Re: [devel] Как пройти сборку если требуется /dev/shm ?
  2015-01-01 20:41   ` Dmitry V. Levin
@ 2015-01-12 12:30     ` Anton Farygin
  2015-01-12 13:55       ` Dmitry V. Levin
  0 siblings, 1 reply; 14+ messages in thread
From: Anton Farygin @ 2015-01-12 12:30 UTC (permalink / raw)
  To: devel

On 01.01.2015 23:41, Dmitry V. Levin wrote:
> Hi,
>
> On Tue, Dec 30, 2014 at 04:53:59PM +0300, Andrew V. Stepanov wrote:
>> И рассмотрим семафор Posix.
>>
>> $ cat 1.c
>> #include <semaphore.h>
>> #include <stdio.h>
>> #include <errno.h>
>> #include <stdlib.h>
>> #include <unistd.h>
>> #include <sys/types.h>
>>
>> #include <sys/stat.h>
>> #include <fcntl.h>
>> #include <sys/mman.h>
>>
>> int main(int argc, char **argv)
>> {
>>          sem_t *mutex;
>>
>>          if ((mutex = sem_open("mysemaphore", O_CREAT, 0644, 1)) ==
>> SEM_FAILED) {
>>                  perror("semaphore initilization");
>>                  exit(1);
>>          }
>>
>>          exit(0);
>> }
>>
>> $ gcc 1.c -lpthread
>>
>> $ ./a.out
>> semaphore initilization: Function not implemented
>
> Используйте hasher >= 1.3.23-alt1 и собирайте на tmpfs.

Дима, а почему такое требование - tmpfs ?

мне вот уже давно более удобно в VM пробрасывать ramdisk нужного размера.
/dev/vdb                 4,0G         1,2G  2,7G           31% 
/home/rider/hasher

Как сделать так, что б оно собиралось у меня локально в моей 
конфигурации без использования tmpfs ?



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

* Re: [devel] Как пройти сборку если требуется /dev/shm ?
  2015-01-12 12:30     ` Anton Farygin
@ 2015-01-12 13:55       ` Dmitry V. Levin
  2015-01-12 14:15         ` Dmitry V. Levin
  0 siblings, 1 reply; 14+ messages in thread
From: Dmitry V. Levin @ 2015-01-12 13:55 UTC (permalink / raw)
  To: ALT Devel discussion list

[-- Attachment #1: Type: text/plain, Size: 574 bytes --]

On Mon, Jan 12, 2015 at 03:30:16PM +0300, Anton Farygin wrote:
> On 01.01.2015 23:41, Dmitry V. Levin wrote:
[...]
> >Используйте hasher >= 1.3.23-alt1 и собирайте на 
> >tmpfs.
> 
> Дима, а почему такое требование - tmpfs ?

sem_open(3) требует, чтобы /dev/shm был на tmpfs (и доступен на запись).
Строго говоря, если /dev/shm не на tmpfs, и /proc/mounts доступен на
чтение, то sem_open(3) будет пытаться использовать первую попавшуюся в
/proc/mounts точку монтирования на tmpfs.  Если никаких tmpfs не нашлось,
то sem_open(3) работать не будет.


-- 
ldv

[-- Attachment #2: Type: application/pgp-signature, Size: 181 bytes --]

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

* Re: [devel] Как пройти сборку если требуется /dev/shm ?
  2015-01-12 13:55       ` Dmitry V. Levin
@ 2015-01-12 14:15         ` Dmitry V. Levin
  2015-01-12 19:12           ` Anton Farygin
  0 siblings, 1 reply; 14+ messages in thread
From: Dmitry V. Levin @ 2015-01-12 14:15 UTC (permalink / raw)
  To: ALT Devel discussion list

[-- Attachment #1: Type: text/plain, Size: 724 bytes --]

On Mon, Jan 12, 2015 at 04:55:33PM +0300, Dmitry V. Levin wrote:
> On Mon, Jan 12, 2015 at 03:30:16PM +0300, Anton Farygin wrote:
> > On 01.01.2015 23:41, Dmitry V. Levin wrote:
> [...]
> > >Используйте hasher >= 1.3.23-alt1 и собирайте на 
> > >tmpfs.
> > 
> > Дима, а почему такое требование - tmpfs ?
> 
> sem_open(3) требует, чтобы /dev/shm был на tmpfs (и доступен на запись).
> Строго говоря, если /dev/shm не на tmpfs, и /proc/mounts доступен на
> чтение, то sem_open(3) будет пытаться использовать первую попавшуюся в
> /proc/mounts точку монтирования на tmpfs.  Если никаких tmpfs не нашлось,
> то sem_open(3) работать не будет.

Начиная с glibc-2.19-16-g6fc8123, ramfs тоже подойдет.


-- 
ldv

[-- Attachment #2: Type: application/pgp-signature, Size: 181 bytes --]

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

* Re: [devel] Как пройти сборку если требуется /dev/shm ?
  2015-01-12 14:15         ` Dmitry V. Levin
@ 2015-01-12 19:12           ` Anton Farygin
  2015-01-12 19:36             ` Dmitry V. Levin
  0 siblings, 1 reply; 14+ messages in thread
From: Anton Farygin @ 2015-01-12 19:12 UTC (permalink / raw)
  To: devel

On 12.01.2015 17:15, Dmitry V. Levin wrote:
> On Mon, Jan 12, 2015 at 04:55:33PM +0300, Dmitry V. Levin wrote:
>> On Mon, Jan 12, 2015 at 03:30:16PM +0300, Anton Farygin wrote:
>>> On 01.01.2015 23:41, Dmitry V. Levin wrote:
>> [...]
>>>> Используйте hasher >= 1.3.23-alt1 и собирайте на
>>>> tmpfs.
>>>
>>> Дима, а почему такое требование - tmpfs ?
>>
>> sem_open(3) требует, чтобы /dev/shm был на tmpfs (и доступен на запись).
>> Строго говоря, если /dev/shm не на tmpfs, и /proc/mounts доступен на
>> чтение, то sem_open(3) будет пытаться использовать первую попавшуюся в
>> /proc/mounts точку монтирования на tmpfs.  Если никаких tmpfs не нашлось,
>> то sem_open(3) работать не будет.
>
> Начиная с glibc-2.19-16-g6fc8123, ramfs тоже подойдет.

Ты не понял, ramfs у меня пробрасывается в виде диска в VM.

Т.е. - о том, что это RamFS знает только хост система. Для виртуальной 
машины это обычный диск с файловой системой ext4.

А почему ты не хочешь реализовать монтирование /dev/shm в сборочный чрут 
? Как заметил Саша Боковой в соседнем письме - namespace поможет 
изолировать адресное пространство.




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

* Re: [devel] Как пройти сборку если требуется /dev/shm ?
  2015-01-12 19:12           ` Anton Farygin
@ 2015-01-12 19:36             ` Dmitry V. Levin
  2015-01-13 11:55               ` Anton Farygin
  0 siblings, 1 reply; 14+ messages in thread
From: Dmitry V. Levin @ 2015-01-12 19:36 UTC (permalink / raw)
  To: ALT Devel discussion list

[-- Attachment #1: Type: text/plain, Size: 1738 bytes --]

On Mon, Jan 12, 2015 at 10:12:06PM +0300, Anton Farygin wrote:
> On 12.01.2015 17:15, Dmitry V. Levin wrote:
> >On Mon, Jan 12, 2015 at 04:55:33PM +0300, Dmitry V. Levin wrote:
> >>On Mon, Jan 12, 2015 at 03:30:16PM +0300, Anton Farygin wrote:
> >>>On 01.01.2015 23:41, Dmitry V. Levin wrote:
> >>[...]
> >>>>Используйте hasher >= 1.3.23-alt1 и собирайте на
> >>>>tmpfs.
> >>>
> >>>Дима, а почему такое требование - tmpfs ?
> >>
> >>sem_open(3) требует, чтобы /dev/shm был на tmpfs (и 
> >>доступен на запись).
> >>Строго говоря, если /dev/shm не на tmpfs, и 
> >>/proc/mounts доступен на
> >>чтение, то sem_open(3) будет пытаться 
> >>использовать первую попавшуюся в
> >>/proc/mounts точку монтирования на tmpfs.  Если 
> >>никаких tmpfs не нашлось,
> >>то sem_open(3) работать не будет.
> >
> >Начиная с glibc-2.19-16-g6fc8123, ramfs тоже подойдет.
> 
> Ты не понял, ramfs у меня пробрасывается в 
> виде диска в VM.
> 
> Т.е. - о том, что это RamFS знает только хост 
> система. Для виртуальной машины это 
> обычный диск с файловой системой ext4.
> 
> А почему ты не хочешь реализовать 
> монтирование /dev/shm в сборочный чрут ?

Поскольку я собираю на tmpfs, у меня уже давно все работает. :)

Там возникнет конфликт прав доступа к chroot/dev/shm, который еще надо
придумать, как разрешить:
- если chroot/dev/shm уже на tmpfs, то псевдопользователь #2 должен иметь
доступ к нему на запись;
- если chroot/dev/shm должен быть смонтирован, то на права доступа к нему
налагаются сильные ограничения.

> Как 
> заметил Саша Боковой в соседнем письме - 
> namespace поможет изолировать адресное 
> пространство.

hasher-priv >= 1.4.0-alt1 уже выполняет unshare(CLONE_NEWNS) автоматически.

[-- Attachment #2: Type: application/pgp-signature, Size: 181 bytes --]

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

* Re: [devel] Как пройти сборку если требуется /dev/shm ?
  2015-01-12 19:36             ` Dmitry V. Levin
@ 2015-01-13 11:55               ` Anton Farygin
  2015-01-16 14:54                 ` Dmitry V. Levin
  0 siblings, 1 reply; 14+ messages in thread
From: Anton Farygin @ 2015-01-13 11:55 UTC (permalink / raw)
  To: devel

On 12.01.2015 22:36, Dmitry V. Levin wrote:
> On Mon, Jan 12, 2015 at 10:12:06PM +0300, Anton Farygin wrote:
>> On 12.01.2015 17:15, Dmitry V. Levin wrote:
>>> On Mon, Jan 12, 2015 at 04:55:33PM +0300, Dmitry V. Levin wrote:
>>>> On Mon, Jan 12, 2015 at 03:30:16PM +0300, Anton Farygin wrote:
>>>>> On 01.01.2015 23:41, Dmitry V. Levin wrote:
>>>> [...]
>>>>>> Используйте hasher >= 1.3.23-alt1 и собирайте на
>>>>>> tmpfs.
>>>>>
>>>>> Дима, а почему такое требование - tmpfs ?
>>>>
>>>> sem_open(3) требует, чтобы /dev/shm был на tmpfs (и
>>>> доступен на запись).
>>>> Строго говоря, если /dev/shm не на tmpfs, и
>>>> /proc/mounts доступен на
>>>> чтение, то sem_open(3) будет пытаться
>>>> использовать первую попавшуюся в
>>>> /proc/mounts точку монтирования на tmpfs.  Если
>>>> никаких tmpfs не нашлось,
>>>> то sem_open(3) работать не будет.
>>>
>>> Начиная с glibc-2.19-16-g6fc8123, ramfs тоже подойдет.
>>
>> Ты не понял, ramfs у меня пробрасывается в
>> виде диска в VM.
>>
>> Т.е. - о том, что это RamFS знает только хост
>> система. Для виртуальной машины это
>> обычный диск с файловой системой ext4.
>>
>> А почему ты не хочешь реализовать
>> монтирование /dev/shm в сборочный чрут ?
>
> Поскольку я собираю на tmpfs, у меня уже давно все работает. :)
Ну так надо тогда сказать, что hasher'ом можно пользоваться только на 
TMPFS со всеми вытекающими ограничениями.

В некоторых местах большой tmpfs невозможен без свопа.

>
> Там возникнет конфликт прав доступа к chroot/dev/shm, который еще надо
> придумать, как разрешить:
> - если chroot/dev/shm уже на tmpfs, то псевдопользователь #2 должен иметь
> доступ к нему на запись;

А чем тебя не устраивает 777 на chroot/dev/shm ?

> - если chroot/dev/shm должен быть смонтирован, то на права доступа к нему
> налагаются сильные ограничения.
>


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

* Re: [devel] Как пройти сборку если требуется /dev/shm ?
  2015-01-13 11:55               ` Anton Farygin
@ 2015-01-16 14:54                 ` Dmitry V. Levin
  2015-01-16 19:07                   ` Anton Farygin
  0 siblings, 1 reply; 14+ messages in thread
From: Dmitry V. Levin @ 2015-01-16 14:54 UTC (permalink / raw)
  To: ALT Devel discussion list

[-- Attachment #1: Type: text/plain, Size: 812 bytes --]

On Tue, Jan 13, 2015 at 02:55:13PM +0300, Anton Farygin wrote:
> On 12.01.2015 22:36, Dmitry V. Levin wrote:
[...]
> >Там возникнет конфликт прав доступа к 
> >chroot/dev/shm, который еще надо
> >придумать, как разрешить:
> >- если chroot/dev/shm уже на tmpfs, то 
> >псевдопользователь #2 должен иметь
> >доступ к нему на запись;
> 
> А чем тебя не устраивает 777 на chroot/dev/shm ?

Там сейчас 1777, и это устраивало всех, кроме процедуры монтирования.

> >- если chroot/dev/shm должен быть смонтирован, 
> >то на права доступа к нему
> >налагаются сильные ограничения.

Я почти убедился в том, что в режиме mount namespace isolation права
доступа 1777 новых угроз не создают.

Интересно, сколько nr_blocks и nr_inodes необходимо давать для /dev/shm
в чруте по умолчанию?


-- 
ldv

[-- Attachment #2: Type: application/pgp-signature, Size: 181 bytes --]

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

* Re: [devel] Как пройти сборку если требуется /dev/shm ?
  2015-01-16 14:54                 ` Dmitry V. Levin
@ 2015-01-16 19:07                   ` Anton Farygin
  2015-01-16 19:54                     ` Dmitry V. Levin
  0 siblings, 1 reply; 14+ messages in thread
From: Anton Farygin @ 2015-01-16 19:07 UTC (permalink / raw)
  To: devel

On 16.01.2015 17:54, Dmitry V. Levin wrote:
> On Tue, Jan 13, 2015 at 02:55:13PM +0300, Anton Farygin wrote:
>> On 12.01.2015 22:36, Dmitry V. Levin wrote:
> [...]
>>> Там возникнет конфликт прав доступа к
>>> chroot/dev/shm, который еще надо
>>> придумать, как разрешить:
>>> - если chroot/dev/shm уже на tmpfs, то
>>> псевдопользователь #2 должен иметь
>>> доступ к нему на запись;
>>
>> А чем тебя не устраивает 777 на chroot/dev/shm ?
>
> Там сейчас 1777, и это устраивало всех, кроме процедуры монтирования.
>
>>> - если chroot/dev/shm должен быть смонтирован,
>>> то на права доступа к нему
>>> налагаются сильные ограничения.
>
> Я почти убедился в том, что в режиме mount namespace isolation права
> доступа 1777 новых угроз не создают.
>
> Интересно, сколько nr_blocks и nr_inodes необходимо давать для /dev/shm
> в чруте по умолчанию?

Это не имеет никакого значения - сейчас ты даёшь на сборочнице явно 
больше, чем любое ограничение.

Кстати, что будет на сборочнице, если некий пакет случайно создаст очень 
много мусора в /dev/shm в сборочном чруте ?


Это же можно и сейчас проверить ?



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

* Re: [devel] Как пройти сборку если требуется /dev/shm ?
  2015-01-16 19:07                   ` Anton Farygin
@ 2015-01-16 19:54                     ` Dmitry V. Levin
  2015-01-16 20:06                       ` Anton Farygin
  0 siblings, 1 reply; 14+ messages in thread
From: Dmitry V. Levin @ 2015-01-16 19:54 UTC (permalink / raw)
  To: ALT Devel discussion list

[-- Attachment #1: Type: text/plain, Size: 1760 bytes --]

On Fri, Jan 16, 2015 at 10:07:57PM +0300, Anton Farygin wrote:
> On 16.01.2015 17:54, Dmitry V. Levin wrote:
> >On Tue, Jan 13, 2015 at 02:55:13PM +0300, Anton Farygin wrote:
> >>On 12.01.2015 22:36, Dmitry V. Levin wrote:
> >[...]
> >>>Там возникнет конфликт прав доступа к
> >>>chroot/dev/shm, который еще надо
> >>>придумать, как разрешить:
> >>>- если chroot/dev/shm уже на tmpfs, то
> >>>псевдопользователь #2 должен иметь
> >>>доступ к нему на запись;
> >>
> >>А чем тебя не устраивает 777 на chroot/dev/shm ?
> >
> >Там сейчас 1777, и это устраивало всех, 
> >кроме процедуры монтирования.
> >
> >>>- если chroot/dev/shm должен быть смонтирован,
> >>>то на права доступа к нему
> >>>налагаются сильные ограничения.
> >
> >Я почти убедился в том, что в режиме mount 
> >namespace isolation права
> >доступа 1777 новых угроз не создают.
> >
> >Интересно, сколько nr_blocks и nr_inodes 
> >необходимо давать для /dev/shm
> >в чруте по умолчанию?
> 
> Это не имеет никакого значения

Речь идет об умолчаниях, которые будут зашиты в hasher-priv/mount.c

> - сейчас 
> ты даёшь на сборочнице явно больше, чем 
> любое ограничение.

Сборочница тут вообще не при чем: все сборочные узлы бездисковые,
там все на tmpfs, и /dev/shm там монтировать незачем.

> Кстати, что будет на сборочнице, если 
> некий пакет случайно создаст очень много 
> мусора в /dev/shm в сборочном чруте ?

Сборочнице все равно, где пакет размещает свой мусор.
У каждого сборочного потока действует свой memory.limit_in_bytes.

> Это же можно и сейчас проверить ?

Да проверяли уже.
http://lists.altlinux.org/pipermail/devel/2014-September/199034.html
http://lists.altlinux.org/pipermail/devel/2014-September/199054.html


-- 
ldv

[-- Attachment #2: Type: application/pgp-signature, Size: 181 bytes --]

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

* Re: [devel] Как пройти сборку если требуется /dev/shm ?
  2015-01-16 19:54                     ` Dmitry V. Levin
@ 2015-01-16 20:06                       ` Anton Farygin
  0 siblings, 0 replies; 14+ messages in thread
From: Anton Farygin @ 2015-01-16 20:06 UTC (permalink / raw)
  To: devel

On 16.01.2015 22:54, Dmitry V. Levin wrote:
> On Fri, Jan 16, 2015 at 10:07:57PM +0300, Anton Farygin wrote:
>> On 16.01.2015 17:54, Dmitry V. Levin wrote:
>>> On Tue, Jan 13, 2015 at 02:55:13PM +0300, Anton Farygin wrote:
>>>> On 12.01.2015 22:36, Dmitry V. Levin wrote:
>>> [...]
>>>>> Там возникнет конфликт прав доступа к
>>>>> chroot/dev/shm, который еще надо
>>>>> придумать, как разрешить:
>>>>> - если chroot/dev/shm уже на tmpfs, то
>>>>> псевдопользователь #2 должен иметь
>>>>> доступ к нему на запись;
>>>>
>>>> А чем тебя не устраивает 777 на chroot/dev/shm ?
>>>
>>> Там сейчас 1777, и это устраивало всех,
>>> кроме процедуры монтирования.
>>>
>>>>> - если chroot/dev/shm должен быть смонтирован,
>>>>> то на права доступа к нему
>>>>> налагаются сильные ограничения.
>>>
>>> Я почти убедился в том, что в режиме mount
>>> namespace isolation права
>>> доступа 1777 новых угроз не создают.
>>>
>>> Интересно, сколько nr_blocks и nr_inodes
>>> необходимо давать для /dev/shm
>>> в чруте по умолчанию?
>>
>> Это не имеет никакого значения
>
> Речь идет об умолчаниях, которые будут зашиты в hasher-priv/mount.c
Я понял. Дима, на твоё усмотрение.
Там много не надо. На работающей системе больше 10 файлов в /dev/shm/ не 
видел. Объём. Да кто ж его знает. Ну сделай мегабайт 20, хватит за глаза.

Правда я б честно не стал бы вообще ограничения по объёму вводить.

>
>> - сейчас
>> ты даёшь на сборочнице явно больше, чем
>> любое ограничение.
>
> Сборочница тут вообще не при чем: все сборочные узлы бездисковые,
> там все на tmpfs, и /dev/shm там монтировать незачем.

Да, но и ограничений нет. точнее ограничения есть для потока.

>
>> Кстати, что будет на сборочнице, если
>> некий пакет случайно создаст очень много
>> мусора в /dev/shm в сборочном чруте ?
>
> Сборочнице все равно, где пакет размещает свой мусор.
> У каждого сборочного потока действует свой memory.limit_in_bytes.

А, точно. там общий лимит на память.

>
>> Это же можно и сейчас проверить ?
>
> Да проверяли уже.
> http://lists.altlinux.org/pipermail/devel/2014-September/199034.html
> http://lists.altlinux.org/pipermail/devel/2014-September/199054.html



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

end of thread, other threads:[~2015-01-16 20:06 UTC | newest]

Thread overview: 14+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-12-29 14:32 [devel] Как пройти сборку если требуется /dev/shm ? Andrew V. Stepanov
2014-12-30 13:53 ` Andrew V. Stepanov
2014-12-31 13:57   ` Alexander Bokovoy
2015-01-01 20:41   ` Dmitry V. Levin
2015-01-12 12:30     ` Anton Farygin
2015-01-12 13:55       ` Dmitry V. Levin
2015-01-12 14:15         ` Dmitry V. Levin
2015-01-12 19:12           ` Anton Farygin
2015-01-12 19:36             ` Dmitry V. Levin
2015-01-13 11:55               ` Anton Farygin
2015-01-16 14:54                 ` Dmitry V. Levin
2015-01-16 19:07                   ` Anton Farygin
2015-01-16 19:54                     ` Dmitry V. Levin
2015-01-16 20:06                       ` Anton Farygin

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