2016-10-17 4 views
-7

Пример на этой странице: https://wiki.python.org/moin/CrashingPython#Exhausting_Resources Почему случай не может быть воспроизведен в моем python 2.7 Почему это может привести к сбою python?Почему питон не падает в этом случае?

$ python 
Python 2.4.2 (#2, Sep 30 2005, 21:19:01) 
[GCC 4.0.2 20050808 (prerelease) (Ubuntu 4.0.1-4ubuntu8)] on linux2 
Type "help", "copyright", "credits" or "license" for more information. 
>>> f = lambda: None 
>>> for i in xrange(1000000): 
...  f = f.__call__ 
... 
>>> del f 
Segmentation fault 
+3

Ошибки постоянно фиксируются, включая этот. Почему должно быть конкретное объяснение того, почему это невозможно воспроизвести в Python 2.7? –

+0

Я даже не могу воспроизвести это с помощью Python 2.4.6, так что вы получите хороший узкий диапазон, чтобы искать [историю изменений] (https://hg.python.org/cpython/file/2.4/Misc/NEWS). –

+2

И там у нас есть это: http://bugs.python.org/issue532646, исправлено в Python 2.4.4. –

ответ

0

Это была просто ошибка, см. issue #532646.

Все программное обеспечение имеет ошибки, и проект Python не является исключением. Он не может быть воспроизведен в 2.7, потому что ошибка найдена и исправлена.

В частности, страница, которую вы нашли документы такие различные некачественного или ошибки, и в нем говорится так в верхней:

Хотя много усилий было потрачено на что делает его трудно или невозможно разбить интерпретатор Python при нормальном использовании есть много довольно простых способов свернуть интерпретатор. Недавно BDFL произнесла список рассылки python-dev:

Я не говорю, что это не царапается. Я говорю, что если вы рухнете, это ошибка, если не будет доказана.

Любой известный, по-прежнему выдающиеся ошибки добавляются в crashers test suite. Если вы вернетесь к истории этих тестов, вы сможете найти больше crashers и версии Python, к которым они применяются. Большинство из них требуют неясных настроек, например, в вашем вопросе.

Смежные вопросы