[devel] Q: [python3-3.3.1] RLIMIT в hasher`е

Aleksey Avdeev solo на solin.spb.ru
Ср Апр 10 17:36:15 MSK 2013


10.04.2013 16:53, Dmitry V. Levin пишет:
> On Wed, Apr 10, 2013 at 01:11:56PM +0400, Aleksey Avdeev wrote:
>> Приветствую.
>>
>>   Я правильно понимаю, что установка пользовательским процессом  RLIMIT
>> в 1000000, запрещена настройками hasher`а?
> 
> $ hsh-run -- sh -c 'ulimit -Ha'
> core file size          (blocks, -c) unlimited
> data seg size           (kbytes, -d) unlimited
> scheduling priority             (-e) 0
> file size               (blocks, -f) unlimited
> pending signals                 (-i) 1032915
> max locked memory       (kbytes, -l) 64
> max memory size         (kbytes, -m) unlimited
> open files                      (-n) 4096
> pipe size            (512 bytes, -p) 8
> POSIX message queues     (bytes, -q) 819200
> real-time priority              (-r) 0
> stack size              (kbytes, -s) unlimited
> cpu time               (seconds, -t) 7260
> max user processes              (-u) 1024
> virtual memory          (kbytes, -v) unlimited
> file locks                      (-x) unlimited
> 
> Привысить значения этих hard limits ядро не даст.
> 
>> PS: В Python-3.3.1 такую операцию пытается сделать
>> test.test_resource.ResourceTest. Если у нас это запрещено -- отключу тест.
> 
> Какой именно лимит?

  В коде (см.
<http://git.altlinux.org/people/solo/packages/?p=python3.git;a=blob;f=python3/Lib/test/test_resource.py;h=f3416b7b43ef2db9094401f65abe78222af7746a;hb=001b4a54de71226a2f7e0d9f5a409774a686effd>):

    # Issue 6083: Reference counting bug
    def test_setrusage_refcount(self):
        try:
            limits = resource.getrlimit(resource.RLIMIT_CPU)
        except AttributeError:
            pass
        else:
            class BadSequence:
                def __len__(self):
                    return 2
                def __getitem__(self, key):
                    if key in (0, 1):
                        return len(tuple(range(1000000)))
                    raise IndexError

            resource.setrlimit(resource.RLIMIT_CPU, BadSequence())

  Анализ остального кода показывает, что речь о RLIMIT_CPU, определённом
в /usr/include/bits/resource.h:

/* Kinds of resource limit.  */
enum __rlimit_resource
{
  /* Per-process CPU limit, in seconds.  */
  RLIMIT_CPU = 0,
#define RLIMIT_CPU RLIMIT_CPU
...

-- 

С уважением. Алексей.


----------- следующая часть -----------
Было удалено вложение не в текстовом формате...
Имя     : signature.asc
Тип     : application/pgp-signature
Размер  : 897 байтов
Описание: OpenPGP digital signature
Url     : <http://lists.altlinux.org/pipermail/devel/attachments/20130410/eed59eaa/attachment.bin>


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