* [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