ALT Linux Team development discussions
 help / color / mirror / Atom feed
* [devel] Q: [python3-3.3.1] RLIMIT в hasher`е
@ 2013-04-10  9:11 Aleksey Avdeev
  2013-04-10 12:53 ` Dmitry V. Levin
  0 siblings, 1 reply; 19+ messages in thread
From: Aleksey Avdeev @ 2013-04-10  9:11 UTC (permalink / raw)
  To: ALT Linux Team development discussions

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

Приветствую.

  Я правильно понимаю, что установка пользовательским процессом  RLIMIT
в 1000000, запрещена настройками hasher`а?

PS: В Python-3.3.1 такую операцию пытается сделать
test.test_resource.ResourceTest. Если у нас это запрещено -- отключу тест.

-- 

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



[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 897 bytes --]

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

* Re: [devel] Q: [python3-3.3.1] RLIMIT в hasher`е
  2013-04-10  9:11 [devel] Q: [python3-3.3.1] RLIMIT в hasher`е Aleksey Avdeev
@ 2013-04-10 12:53 ` Dmitry V. Levin
  2013-04-10 13:36   ` Aleksey Avdeev
  0 siblings, 1 reply; 19+ messages in thread
From: Dmitry V. Levin @ 2013-04-10 12:53 UTC (permalink / raw)
  To: ALT Linux Team development discussions

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

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. Если у нас это запрещено -- отключу тест.

Какой именно лимит?


-- 
ldv

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

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

* Re: [devel] Q: [python3-3.3.1] RLIMIT в hasher`е
  2013-04-10 12:53 ` Dmitry V. Levin
@ 2013-04-10 13:36   ` Aleksey Avdeev
  2013-04-10 13:45     ` Dmitry V. Levin
  0 siblings, 1 reply; 19+ messages in thread
From: Aleksey Avdeev @ 2013-04-10 13:36 UTC (permalink / raw)
  To: ALT Linux Team development discussions

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

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
...

-- 

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



[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 897 bytes --]

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

* Re: [devel] Q: [python3-3.3.1] RLIMIT в hasher`е
  2013-04-10 13:36   ` Aleksey Avdeev
@ 2013-04-10 13:45     ` Dmitry V. Levin
  2013-04-10 14:41       ` Aleksey Avdeev
  0 siblings, 1 reply; 19+ messages in thread
From: Dmitry V. Levin @ 2013-04-10 13:45 UTC (permalink / raw)
  To: ALT Linux Team development discussions

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

On Wed, Apr 10, 2013 at 05:36:15PM +0400, Aleksey Avdeev wrote:
> 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 в результате пытается установить этот код?


-- 
ldv

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

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

* Re: [devel] Q: [python3-3.3.1] RLIMIT в hasher`е
  2013-04-10 13:45     ` Dmitry V. Levin
@ 2013-04-10 14:41       ` Aleksey Avdeev
  2013-04-10 15:47         ` Dmitry V. Levin
  0 siblings, 1 reply; 19+ messages in thread
From: Aleksey Avdeev @ 2013-04-10 14:41 UTC (permalink / raw)
  To: ALT Linux Team development discussions

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

10.04.2013 17:45, Dmitry V. Levin пишет:
> On Wed, Apr 10, 2013 at 05:36:15PM +0400, Aleksey Avdeev wrote:
>> 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 в результате пытается установить этот код?

  1000000 (см. выделение).

  Там в конечном итоге setrlimit(resource, &rl)(см. функцию
resource_setrlimit(PyObject *self, PyObject *args) в
<http://git.altlinux.org/people/solo/packages/?p=python3.git;a=blob;f=python3/Modules/resource.c;h=b294a8cfe169bbc209e7e183b2eedbe018ed14b0;hb=001b4a54de71226a2f7e0d9f5a409774a686effd>)
возвращает errno == EPERM.

-- 

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



[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 897 bytes --]

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

* Re: [devel] Q: [python3-3.3.1] RLIMIT в hasher`е
  2013-04-10 14:41       ` Aleksey Avdeev
@ 2013-04-10 15:47         ` Dmitry V. Levin
  2013-04-10 17:06           ` Aleksey Avdeev
  0 siblings, 1 reply; 19+ messages in thread
From: Dmitry V. Levin @ 2013-04-10 15:47 UTC (permalink / raw)
  To: ALT Linux Team development discussions

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

On Wed, Apr 10, 2013 at 06:41:36PM +0400, Aleksey Avdeev wrote:
> 10.04.2013 17:45, Dmitry V. Levin пишет:
> > On Wed, Apr 10, 2013 at 05:36:15PM +0400, Aleksey Avdeev wrote:
> >> 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 в результате пытается установить этот код?
> 
>   1000000 (см. выделение).
> 
>   Там в конечном итоге setrlimit(resource, &rl)(см. функцию
> resource_setrlimit(PyObject *self, PyObject *args) в
> <http://git.altlinux.org/people/solo/packages/?p=python3.git;a=blob;f=python3/Modules/resource.c;h=b294a8cfe169bbc209e7e183b2eedbe018ed14b0;hb=001b4a54de71226a2f7e0d9f5a409774a686effd>)
> возвращает errno == EPERM.

Сколько значений RLIMIT_CPU передается в одном вызове setrlimit?
Какие значения RLIMIT_CPU в результате пытается установить этот код?
На какое поведение setrlimit рассчитывает этот тест?
Что вообще тестирует тест по имени test_setrusage_refcount?


-- 
ldv

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

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

* Re: [devel] Q: [python3-3.3.1] RLIMIT в hasher`е
  2013-04-10 15:47         ` Dmitry V. Levin
@ 2013-04-10 17:06           ` Aleksey Avdeev
  2013-04-10 17:39             ` Dmitry V. Levin
  2013-04-10 19:10             ` Paul Wolneykien
  0 siblings, 2 replies; 19+ messages in thread
From: Aleksey Avdeev @ 2013-04-10 17:06 UTC (permalink / raw)
  To: ALT Linux Team development discussions

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

10.04.2013 19:47, Dmitry V. Levin пишет:
> On Wed, Apr 10, 2013 at 06:41:36PM +0400, Aleksey Avdeev wrote:
>> 10.04.2013 17:45, Dmitry V. Levin пишет:
>>> On Wed, Apr 10, 2013 at 05:36:15PM +0400, Aleksey Avdeev wrote:
>>>> 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 в результате пытается установить этот код?
>>
>>   1000000 (см. выделение).
>>
>>   Там в конечном итоге setrlimit(resource, &rl)(см. функцию
>> resource_setrlimit(PyObject *self, PyObject *args) в
>> <http://git.altlinux.org/people/solo/packages/?p=python3.git;a=blob;f=python3/Modules/resource.c;h=b294a8cfe169bbc209e7e183b2eedbe018ed14b0;hb=001b4a54de71226a2f7e0d9f5a409774a686effd>)
>> возвращает errno == EPERM.
> 
> Сколько значений RLIMIT_CPU передается в одном вызове setrlimit?
> Какие значения RLIMIT_CPU в результате пытается установить этот код?

  Вызов происходит так:

setrlimit(resource, &rl)

  где:

resource = 0 (константа RLIMIT_CPU из /usr/include/bits/resource.h)

rl -- структура, содержащая:

rl.rlim_cur = 1000000

rl.rlim_max = 1000000

> На какое поведение setrlimit рассчитывает этот тест?

  Что setrlimit(resource, &rl) вернёт нечто отличное от -1.

> Что вообще тестирует тест по имени test_setrusage_refcount?

  Похоже он проверяет работоспособность вызова setrlimit (судя по коду).
Появился в процессе исправления <http://bugs.python.org/issue6083>

-- 

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



[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 897 bytes --]

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

* Re: [devel] Q: [python3-3.3.1] RLIMIT в hasher`е
  2013-04-10 17:06           ` Aleksey Avdeev
@ 2013-04-10 17:39             ` Dmitry V. Levin
  2013-04-11 12:51               ` Aleksey Avdeev
  2013-04-10 19:10             ` Paul Wolneykien
  1 sibling, 1 reply; 19+ messages in thread
From: Dmitry V. Levin @ 2013-04-10 17:39 UTC (permalink / raw)
  To: ALT Linux Team development discussions

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

On Wed, Apr 10, 2013 at 09:06:04PM +0400, Aleksey Avdeev wrote:
> 10.04.2013 19:47, Dmitry V. Levin пишет:
> > On Wed, Apr 10, 2013 at 06:41:36PM +0400, Aleksey Avdeev wrote:
> >> 10.04.2013 17:45, Dmitry V. Levin пишет:
> >>> On Wed, Apr 10, 2013 at 05:36:15PM +0400, Aleksey Avdeev wrote:
> >>>> 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 в результате пытается установить этот код?
> >>
> >>   1000000 (см. выделение).
> >>
> >>   Там в конечном итоге setrlimit(resource, &rl)(см. функцию
> >> resource_setrlimit(PyObject *self, PyObject *args) в
> >> <http://git.altlinux.org/people/solo/packages/?p=python3.git;a=blob;f=python3/Modules/resource.c;h=b294a8cfe169bbc209e7e183b2eedbe018ed14b0;hb=001b4a54de71226a2f7e0d9f5a409774a686effd>)
> >> возвращает errno == EPERM.
> > 
> > Сколько значений RLIMIT_CPU передается в одном вызове setrlimit?
> > Какие значения RLIMIT_CPU в результате пытается установить этот код?
> 
>   Вызов происходит так:
> 
> setrlimit(resource, &rl)
> 
>   где:
> 
> resource = 0 (константа RLIMIT_CPU из /usr/include/bits/resource.h)
> 
> rl -- структура, содержащая:
> 
> rl.rlim_cur = 1000000
> 
> rl.rlim_max = 1000000

Верно.

> > На какое поведение setrlimit рассчитывает этот тест?
> 
>   Что setrlimit(resource, &rl) вернёт нечто отличное от -1.

Верно.

> > Что вообще тестирует тест по имени test_setrusage_refcount?
> 
>   Похоже он проверяет работоспособность вызова setrlimit (судя по коду).

Неверно.

> Появился в процессе исправления <http://bugs.python.org/issue6083>

Верно, http://hg.python.org/cpython/rev/3e3a7d825736


-- 
ldv

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

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

* Re: [devel] Q: [python3-3.3.1] RLIMIT в hasher`е
  2013-04-10 17:06           ` Aleksey Avdeev
  2013-04-10 17:39             ` Dmitry V. Levin
@ 2013-04-10 19:10             ` Paul Wolneykien
  2013-04-10 19:54               ` Aleksey Avdeev
  1 sibling, 1 reply; 19+ messages in thread
From: Paul Wolneykien @ 2013-04-10 19:10 UTC (permalink / raw)
  To: devel

10.04.2013 21:06, Aleksey Avdeev пишет:
> 10.04.2013 19:47, Dmitry V. Levin пишет:

>>>>>      # Issue 6083: Reference counting bug
>>>>>      def test_setrusage_refcount(self):
>>>>> ...
>>>>>              resource.setrlimit(resource.RLIMIT_CPU, BadSequence())

>> Что вообще тестирует тест по имени test_setrusage_refcount?
>
>    Похоже он проверяет работоспособность вызова setrlimit (судя по коду).

   Лёша, тебе не кажется, что твой ответ напоминает ответ из анекдота 
про Шерлока Холмса, воздушный шар и программиста? :)



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

* Re: [devel] Q: [python3-3.3.1] RLIMIT в hasher`е
  2013-04-10 19:10             ` Paul Wolneykien
@ 2013-04-10 19:54               ` Aleksey Avdeev
  2013-04-10 20:12                 ` Dmitry V. Levin
  0 siblings, 1 reply; 19+ messages in thread
From: Aleksey Avdeev @ 2013-04-10 19:54 UTC (permalink / raw)
  To: ALT Linux Team development discussions

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

10.04.2013 23:10, Paul Wolneykien пишет:
> 10.04.2013 21:06, Aleksey Avdeev пишет:
>> 10.04.2013 19:47, Dmitry V. Levin пишет:
> 
>>>>>>      # Issue 6083: Reference counting bug
>>>>>>      def test_setrusage_refcount(self):
>>>>>> ...
>>>>>>              resource.setrlimit(resource.RLIMIT_CPU, BadSequence())
> 
>>> Что вообще тестирует тест по имени test_setrusage_refcount?
>>
>>    Похоже он проверяет работоспособность вызова setrlimit (судя по коду).
> 
>   Лёша, тебе не кажется, что твой ответ напоминает ответ из анекдота про
> Шерлока Холмса, воздушный шар и программиста? :)

  Не напоминает -- здесь именно та ситуация и есть. :-/

  В отсутствии явного комментария к тесту, сложно увидеть в нём смысл,
окромя очевидного.

-- 

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



[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 897 bytes --]

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

* Re: [devel] Q: [python3-3.3.1] RLIMIT в hasher`е
  2013-04-10 19:54               ` Aleksey Avdeev
@ 2013-04-10 20:12                 ` Dmitry V. Levin
  2013-04-10 20:47                   ` Aleksey Avdeev
  0 siblings, 1 reply; 19+ messages in thread
From: Dmitry V. Levin @ 2013-04-10 20:12 UTC (permalink / raw)
  To: ALT Linux Team development discussions

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

On Wed, Apr 10, 2013 at 11:54:24PM +0400, Aleksey Avdeev wrote:
> 10.04.2013 23:10, Paul Wolneykien пишет:
> > 10.04.2013 21:06, Aleksey Avdeev пишет:
> >> 10.04.2013 19:47, Dmitry V. Levin пишет:
> > 
> >>>>>>      # Issue 6083: Reference counting bug
> >>>>>>      def test_setrusage_refcount(self):
> >>>>>> ...
> >>>>>>              resource.setrlimit(resource.RLIMIT_CPU, BadSequence())
> > 
> >>> Что вообще тестирует тест по имени test_setrusage_refcount?
> >>
> >>    Похоже он проверяет работоспособность вызова setrlimit (судя по коду).
> > 
> >   Лёша, тебе не кажется, что твой ответ напоминает ответ из анекдота про
> > Шерлока Холмса, воздушный шар и программиста? :)
> 
>   Не напоминает -- здесь именно та ситуация и есть. :-/

Вы до сих пор не понимаете, что именно тестирует тест по имени
test_setrusage_refcount?


-- 
ldv

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

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

* Re: [devel] Q: [python3-3.3.1] RLIMIT в hasher`е
  2013-04-10 20:12                 ` Dmitry V. Levin
@ 2013-04-10 20:47                   ` Aleksey Avdeev
  2013-04-10 21:22                     ` Dmitry V. Levin
  2013-04-11  8:45                     ` Sergey Y. Afonin
  0 siblings, 2 replies; 19+ messages in thread
From: Aleksey Avdeev @ 2013-04-10 20:47 UTC (permalink / raw)
  To: ALT Linux Team development discussions

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

11.04.2013 00:12, Dmitry V. Levin пишет:
> On Wed, Apr 10, 2013 at 11:54:24PM +0400, Aleksey Avdeev wrote:
>> 10.04.2013 23:10, Paul Wolneykien пишет:
>>> 10.04.2013 21:06, Aleksey Avdeev пишет:
>>>> 10.04.2013 19:47, Dmitry V. Levin пишет:
>>>
>>>>>>>>      # Issue 6083: Reference counting bug
>>>>>>>>      def test_setrusage_refcount(self):
>>>>>>>> ...
>>>>>>>>              resource.setrlimit(resource.RLIMIT_CPU, BadSequence())
>>>
>>>>> Что вообще тестирует тест по имени test_setrusage_refcount?
>>>>
>>>>    Похоже он проверяет работоспособность вызова setrlimit (судя по коду).
>>>
>>>   Лёша, тебе не кажется, что твой ответ напоминает ответ из анекдота про
>>> Шерлока Холмса, воздушный шар и программиста? :)
>>
>>   Не напоминает -- здесь именно та ситуация и есть. :-/
> 
> Вы до сих пор не понимаете, что именно тестирует тест по имени
> test_setrusage_refcount?

  Если переводить его название, то получается что-то типа "тест
установки rusage счетчика ссылок". Причём я незнаю что именно скрывается
под rusage.

  По факту -- проверяется возможность выставить некое ядерное
ограгичение (limit RLIMIT_CPU) в достаточно большое число (которое число
секунд, по смыслу).

  Смысл лимита RLIMIT_CPU понятен (см.
<http://git.altlinux.org/people/solo/packages/?p=python3.git;a=blob;f=python3/Doc/library/resource.rst;h=03a7cb598cd49ee3a345db50c7ee41329169c7eb;hb=001b4a54de71226a2f7e0d9f5a409774a686effd>):
Максимальное количество _процессорного_ времени (в секундах), что
процесс может использовать. (Именно процессорного времени, а не времени
выполнения процесса.)

  Непонятно:

1. Где этот лимит (RLIMIT_CPU) в выводе ulimit (не удивлюсь если это
"cpu time", но пока не нашёл подтверждения или опровержения).

2. Смысл тестирования RLIMIT_CPU именно данным числом. => Непонятно
можно ли его уменьшить (и на сколько).

-- 

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



[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 897 bytes --]

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

* Re: [devel] Q: [python3-3.3.1] RLIMIT в hasher`е
  2013-04-10 20:47                   ` Aleksey Avdeev
@ 2013-04-10 21:22                     ` Dmitry V. Levin
  2013-04-11  8:45                     ` Sergey Y. Afonin
  1 sibling, 0 replies; 19+ messages in thread
From: Dmitry V. Levin @ 2013-04-10 21:22 UTC (permalink / raw)
  To: ALT Linux Team development discussions

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

On Thu, Apr 11, 2013 at 12:47:05AM +0400, Aleksey Avdeev wrote:
> 11.04.2013 00:12, Dmitry V. Levin пишет:
> > On Wed, Apr 10, 2013 at 11:54:24PM +0400, Aleksey Avdeev wrote:
> >> 10.04.2013 23:10, Paul Wolneykien пишет:
> >>> 10.04.2013 21:06, Aleksey Avdeev пишет:
> >>>> 10.04.2013 19:47, Dmitry V. Levin пишет:
> >>>
> >>>>>>>>      # Issue 6083: Reference counting bug
> >>>>>>>>      def test_setrusage_refcount(self):
> >>>>>>>> ...
> >>>>>>>>              resource.setrlimit(resource.RLIMIT_CPU, BadSequence())
> >>>
> >>>>> Что вообще тестирует тест по имени test_setrusage_refcount?
> >>>>
> >>>>    Похоже он проверяет работоспособность вызова setrlimit (судя по коду).
> >>>
> >>>   Лёша, тебе не кажется, что твой ответ напоминает ответ из анекдота про
> >>> Шерлока Холмса, воздушный шар и программиста? :)
> >>
> >>   Не напоминает -- здесь именно та ситуация и есть. :-/
> > 
> > Вы до сих пор не понимаете, что именно тестирует тест по имени
> > test_setrusage_refcount?
> 
>   Если переводить его название, то получается что-то типа "тест
> установки rusage счетчика ссылок". Причём я незнаю что именно скрывается
> под rusage.
> 
>   По факту -- проверяется возможность выставить некое ядерное
> ограгичение (limit RLIMIT_CPU) в достаточно большое число (которое число
> секунд, по смыслу).
> 
>   Смысл лимита RLIMIT_CPU понятен (см.
> <http://git.altlinux.org/people/solo/packages/?p=python3.git;a=blob;f=python3/Doc/library/resource.rst;h=03a7cb598cd49ee3a345db50c7ee41329169c7eb;hb=001b4a54de71226a2f7e0d9f5a409774a686effd>):
> Максимальное количество _процессорного_ времени (в секундах), что
> процесс может использовать. (Именно процессорного времени, а не времени
> выполнения процесса.)
> 
>   Непонятно:
> 
> 1. Где этот лимит (RLIMIT_CPU) в выводе ulimit (не удивлюсь если это
> "cpu time", но пока не нашёл подтверждения или опровержения).
> 
> 2. Смысл тестирования RLIMIT_CPU именно данным числом. => Непонятно
> можно ли его уменьшить (и на сколько).

:-(

Остается надеяться, что продолжение выяснения всех вопросов, связанных с
тестом test_setrusage_refcount, будет происходить в свободное от основной
работы время.


-- 
ldv

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

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

* Re: [devel] Q: [python3-3.3.1] RLIMIT в hasher`е
  2013-04-10 20:47                   ` Aleksey Avdeev
  2013-04-10 21:22                     ` Dmitry V. Levin
@ 2013-04-11  8:45                     ` Sergey Y. Afonin
  2013-04-11 11:48                       ` Aleksey Avdeev
  1 sibling, 1 reply; 19+ messages in thread
From: Sergey Y. Afonin @ 2013-04-11  8:45 UTC (permalink / raw)
  To: ALT Linux Team development discussions

On Thursday 11 April 2013, Aleksey Avdeev wrote:

> >>>>> Что вообще тестирует тест по имени test_setrusage_refcount?

>   Если переводить его название, то получается что-то типа "тест
> установки rusage счетчика ссылок". Причём я незнаю что именно скрывается
> под rusage.

Спать ночью надо... :-)  setr_usage. 

>   Непонятно:
> 
> 1. Где этот лимит (RLIMIT_CPU) в выводе ulimit (не удивлюсь если это
> "cpu time", но пока не нашёл подтверждения или опровержения).

Он не только там может быть. Вот примерчик тут есть:
http://www.makelinux.net/alp/061

-- 
С уважением, Сергей Афонин
asy@altlinux.ru


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

* Re: [devel] Q: [python3-3.3.1] RLIMIT в hasher`е
  2013-04-11  8:45                     ` Sergey Y. Afonin
@ 2013-04-11 11:48                       ` Aleksey Avdeev
  2013-04-11 11:55                         ` Paul Wolneykien
  0 siblings, 1 reply; 19+ messages in thread
From: Aleksey Avdeev @ 2013-04-11 11:48 UTC (permalink / raw)
  To: ALT Linux Team development discussions

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

11.04.2013 12:45, Sergey Y. Afonin пишет:
> On Thursday 11 April 2013, Aleksey Avdeev wrote:
> 
>>>>>>> Что вообще тестирует тест по имени test_setrusage_refcount?
> 
>>   Если переводить его название, то получается что-то типа "тест
>> установки rusage счетчика ссылок". Причём я незнаю что именно скрывается
>> под rusage.
> 
> Спать ночью надо... :-)  setr_usage. 

  Т. е. setrusage должно раскрываться как set r_usage? Спасибо, не знал.

> 
>>   Непонятно:
>>
>> 1. Где этот лимит (RLIMIT_CPU) в выводе ulimit (не удивлюсь если это
>> "cpu time", но пока не нашёл подтверждения или опровержения).
> 
> Он не только там может быть. Вот примерчик тут есть:
> http://www.makelinux.net/alp/061

  Проблема, что я не знаю следующего:

1. Где (как) посмотреть текущее значение RLIMIT_CPU из консоли.

2. Какие у него (RLIMIT_CPU) приделы изменения. (И как их узнать из
консоли.)

3. Как узнать из консоли, кто имеет право его менять (RLIMIT_CPU).

  А что именно тестирует данный тест (test_setrusage_refcount) и каков
смысл его кода мне без разницы: проблема локализована и она на несколько
уровней ниже, чем ответы на данные вопросы.

-- 

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



[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 897 bytes --]

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

* Re: [devel] Q: [python3-3.3.1] RLIMIT в hasher`е
  2013-04-11 11:48                       ` Aleksey Avdeev
@ 2013-04-11 11:55                         ` Paul Wolneykien
  2013-04-11 12:15                           ` Aleksey Avdeev
  0 siblings, 1 reply; 19+ messages in thread
From: Paul Wolneykien @ 2013-04-11 11:55 UTC (permalink / raw)
  To: devel

11.04.2013 15:48, Aleksey Avdeev пишет:
>    А что именно тестирует данный тест (test_setrusage_refcount) и каков
> смысл его кода мне без разницы: проблема локализована и она на несколько
> уровней ниже, чем ответы на данные вопросы.

   Тогда можно ещё раз: в чём именно состоит проблема? Нужно знать с 
какой ошибкой завершается этот тест и что именно в этот момент пытается 
сделать программа.



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

* Re: [devel] Q: [python3-3.3.1] RLIMIT в hasher`е
  2013-04-11 11:55                         ` Paul Wolneykien
@ 2013-04-11 12:15                           ` Aleksey Avdeev
  0 siblings, 0 replies; 19+ messages in thread
From: Aleksey Avdeev @ 2013-04-11 12:15 UTC (permalink / raw)
  To: ALT Linux Team development discussions

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

11.04.2013 15:55, Paul Wolneykien пишет:
> 11.04.2013 15:48, Aleksey Avdeev пишет:
>>    А что именно тестирует данный тест (test_setrusage_refcount) и каков
>> смысл его кода мне без разницы: проблема локализована и она на несколько
>> уровней ниже, чем ответы на данные вопросы.
> 
>   Тогда можно ещё раз: в чём именно состоит проблема? Нужно знать с
> какой ошибкой завершается этот тест и что именно в этот момент пытается
> сделать программа.

  Это не важно (это несколько уровней выше). Важно, что вызов setrlimit,
с заданными параметрами, возвращает -1.

  Описание вызова и параметров:

10.04.2013 21:06, Aleksey Avdeev пишет:
> 10.04.2013 19:47, Dmitry V. Levin пишет:
...
>> Сколько значений RLIMIT_CPU передается в одном вызове setrlimit?
>> Какие значения RLIMIT_CPU в результате пытается установить этот код?
> 
>   Вызов происходит так:
> 
> setrlimit(resource, &rl)
> 
>   где:
> 
> resource = 0 (константа RLIMIT_CPU из /usr/include/bits/resource.h)
> 
> rl -- структура, содержащая:
> 
> rl.rlim_cur = 1000000
> 
> rl.rlim_max = 1000000
> 
>> На какое поведение setrlimit рассчитывает этот тест?
> 
>   Что setrlimit(resource, &rl) вернёт нечто отличное от -1.

PS: Всё что выше неважно (в рамках теста), т. к. там альтернативный
вариант (по вызовам и/или параметрам) только один: Вызов setrlimit
происходить не будет, если лимиты недоступны python`у. Но это не наш случай.

-- 

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



[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 897 bytes --]

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

* Re: [devel] Q: [python3-3.3.1] RLIMIT в hasher`е
  2013-04-10 17:39             ` Dmitry V. Levin
@ 2013-04-11 12:51               ` Aleksey Avdeev
  2013-04-11 13:02                 ` Dmitry V. Levin
  0 siblings, 1 reply; 19+ messages in thread
From: Aleksey Avdeev @ 2013-04-11 12:51 UTC (permalink / raw)
  To: ALT Linux Team development discussions

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

10.04.2013 21:39, Dmitry V. Levin пишет:
> On Wed, Apr 10, 2013 at 09:06:04PM +0400, Aleksey Avdeev wrote:
>> 10.04.2013 19:47, Dmitry V. Levin пишет:
>>> On Wed, Apr 10, 2013 at 06:41:36PM +0400, Aleksey Avdeev wrote:
>>>> 10.04.2013 17:45, Dmitry V. Levin пишет:
>>>>> On Wed, Apr 10, 2013 at 05:36:15PM +0400, Aleksey Avdeev wrote:
>>>>>> 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 в результате пытается установить этот код?
>>>>
>>>>   1000000 (см. выделение).
>>>>
>>>>   Там в конечном итоге setrlimit(resource, &rl)(см. функцию
>>>> resource_setrlimit(PyObject *self, PyObject *args) в
>>>> <http://git.altlinux.org/people/solo/packages/?p=python3.git;a=blob;f=python3/Modules/resource.c;h=b294a8cfe169bbc209e7e183b2eedbe018ed14b0;hb=001b4a54de71226a2f7e0d9f5a409774a686effd>)
>>>> возвращает errno == EPERM.
>>>
>>> Сколько значений RLIMIT_CPU передается в одном вызове setrlimit?
>>> Какие значения RLIMIT_CPU в результате пытается установить этот код?
>>
>>   Вызов происходит так:
>>
>> setrlimit(resource, &rl)
>>
>>   где:
>>
>> resource = 0 (константа RLIMIT_CPU из /usr/include/bits/resource.h)
>>
>> rl -- структура, содержащая:
>>
>> rl.rlim_cur = 1000000
>>
>> rl.rlim_max = 1000000
> 
> Верно.
> 
>>> На какое поведение setrlimit рассчитывает этот тест?
>>
>>   Что setrlimit(resource, &rl) вернёт нечто отличное от -1.
> 
> Верно.
> 
>>> Что вообще тестирует тест по имени test_setrusage_refcount?
>>
>>   Похоже он проверяет работоспособность вызова setrlimit (судя по коду).
> 
> Неверно.

  Это не важно, т. к., судя по логу, проблема именно в возврате -1,
вызовом setrlimit. В логе:

======================================================================
ERROR: test_setrusage_refcount (test.test_resource.ResourceTest)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/usr/src/RPM/BUILD/python3-3.3.1/Lib/test/test_resource.py",
line 125, in test_setrusage_refcount
    resource.setrlimit(resource.RLIMIT_CPU, BadSequence())
ValueError: not allowed to raise maximum limit
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

  А строка "not allowed to raise maximum limit" присутствует только в:

    if (setrlimit(resource, &rl) == -1) {
        if (errno == EINVAL)
            PyErr_SetString(PyExc_ValueError,
                            "current limit exceeds maximum limit");
        else if (errno == EPERM)
            PyErr_SetString(PyExc_ValueError,
                            "not allowed to raise maximum limit");
                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        else
            PyErr_SetFromErrno(PyExc_OSError);
        goto error;
    }

  Т. е. до вызова setrlimit, с указанными выше параметрами, дело
доходит. И корень проблемы в том, что он возвращает -1.

  А смысл теста -- вещь, в данном контексте, десятая.

-- 

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



[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 897 bytes --]

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

* Re: [devel] Q: [python3-3.3.1] RLIMIT в hasher`е
  2013-04-11 12:51               ` Aleksey Avdeev
@ 2013-04-11 13:02                 ` Dmitry V. Levin
  0 siblings, 0 replies; 19+ messages in thread
From: Dmitry V. Levin @ 2013-04-11 13:02 UTC (permalink / raw)
  To: ALT Linux Team development discussions

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

On Thu, Apr 11, 2013 at 04:51:28PM +0400, Aleksey Avdeev wrote:
> 10.04.2013 21:39, Dmitry V. Levin пишет:
> > On Wed, Apr 10, 2013 at 09:06:04PM +0400, Aleksey Avdeev wrote:
> >> 10.04.2013 19:47, Dmitry V. Levin пишет:
> >>> On Wed, Apr 10, 2013 at 06:41:36PM +0400, Aleksey Avdeev wrote:
> >>>> 10.04.2013 17:45, Dmitry V. Levin пишет:
> >>>>> On Wed, Apr 10, 2013 at 05:36:15PM +0400, Aleksey Avdeev wrote:
> >>>>>> 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 в результате пытается установить этот код?
> >>>>
> >>>>   1000000 (см. выделение).
> >>>>
> >>>>   Там в конечном итоге setrlimit(resource, &rl)(см. функцию
> >>>> resource_setrlimit(PyObject *self, PyObject *args) в
> >>>> <http://git.altlinux.org/people/solo/packages/?p=python3.git;a=blob;f=python3/Modules/resource.c;h=b294a8cfe169bbc209e7e183b2eedbe018ed14b0;hb=001b4a54de71226a2f7e0d9f5a409774a686effd>)
> >>>> возвращает errno == EPERM.
> >>>
> >>> Сколько значений RLIMIT_CPU передается в одном вызове setrlimit?
> >>> Какие значения RLIMIT_CPU в результате пытается установить этот код?
> >>
> >>   Вызов происходит так:
> >>
> >> setrlimit(resource, &rl)
> >>
> >>   где:
> >>
> >> resource = 0 (константа RLIMIT_CPU из /usr/include/bits/resource.h)
> >>
> >> rl -- структура, содержащая:
> >>
> >> rl.rlim_cur = 1000000
> >>
> >> rl.rlim_max = 1000000
> > 
> > Верно.
> > 
> >>> На какое поведение setrlimit рассчитывает этот тест?
> >>
> >>   Что setrlimit(resource, &rl) вернёт нечто отличное от -1.
> > 
> > Верно.
> > 
> >>> Что вообще тестирует тест по имени test_setrusage_refcount?
> >>
> >>   Похоже он проверяет работоспособность вызова setrlimit (судя по коду).
> > 
> > Неверно.
> 
>   Это не важно, т. к., судя по логу, проблема именно в возврате -1,
> вызовом setrlimit. В логе:
> 
> ======================================================================
> ERROR: test_setrusage_refcount (test.test_resource.ResourceTest)
> ----------------------------------------------------------------------
> Traceback (most recent call last):
>   File "/usr/src/RPM/BUILD/python3-3.3.1/Lib/test/test_resource.py",
> line 125, in test_setrusage_refcount
>     resource.setrlimit(resource.RLIMIT_CPU, BadSequence())
> ValueError: not allowed to raise maximum limit
>             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 
>   А строка "not allowed to raise maximum limit" присутствует только в:
> 
>     if (setrlimit(resource, &rl) == -1) {
>         if (errno == EINVAL)
>             PyErr_SetString(PyExc_ValueError,
>                             "current limit exceeds maximum limit");
>         else if (errno == EPERM)
>             PyErr_SetString(PyExc_ValueError,
>                             "not allowed to raise maximum limit");
>                              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
>         else
>             PyErr_SetFromErrno(PyExc_OSError);
>         goto error;
>     }
> 
>   Т. е. до вызова setrlimit, с указанными выше параметрами, дело
> доходит. И корень проблемы в том, что он возвращает -1.
> 
>   А смысл теста -- вещь, в данном контексте, десятая.

Ну хватит уже позориться.


-- 
ldv

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

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

end of thread, other threads:[~2013-04-11 13:02 UTC | newest]

Thread overview: 19+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2013-04-10  9:11 [devel] Q: [python3-3.3.1] RLIMIT в hasher`е Aleksey Avdeev
2013-04-10 12:53 ` Dmitry V. Levin
2013-04-10 13:36   ` Aleksey Avdeev
2013-04-10 13:45     ` Dmitry V. Levin
2013-04-10 14:41       ` Aleksey Avdeev
2013-04-10 15:47         ` Dmitry V. Levin
2013-04-10 17:06           ` Aleksey Avdeev
2013-04-10 17:39             ` Dmitry V. Levin
2013-04-11 12:51               ` Aleksey Avdeev
2013-04-11 13:02                 ` Dmitry V. Levin
2013-04-10 19:10             ` Paul Wolneykien
2013-04-10 19:54               ` Aleksey Avdeev
2013-04-10 20:12                 ` Dmitry V. Levin
2013-04-10 20:47                   ` Aleksey Avdeev
2013-04-10 21:22                     ` Dmitry V. Levin
2013-04-11  8:45                     ` Sergey Y. Afonin
2013-04-11 11:48                       ` Aleksey Avdeev
2013-04-11 11:55                         ` Paul Wolneykien
2013-04-11 12:15                           ` Aleksey Avdeev

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