This issue tracker has been migrated to GitHub ,
and is currently read-only.
For more information,
see the GitHub FAQs in the Python's Developer Guide.
Created on 2012年09月12日 03:13 by Arfrever, last changed 2022年04月11日 14:57 by admin. This issue is now closed.
| Messages (8) | |||
|---|---|---|---|
| msg170349 - (view) | Author: Arfrever Frehtes Taifersar Arahesis (Arfrever) * (Python triager) | Date: 2012年09月12日 03:13 | |
#include <Python.h>
#include <stdlib.h>
int main()
{
int i;
for (i = 0; i < 100; i++) {
printf("%d\n", i);
Py_Initialize();
Py_Finalize();
}
return 0;
}
The above code succeeds with Python 3.2, but causes segmentation fault with Python 3.3:
$ ./reinitializations
0
1
2
3
4
5
6
7
8
9
Segmentation fault
$
|
|||
| msg170357 - (view) | Author: Stefan Krah (skrah) * (Python committer) | Date: 2012年09月12日 07:32 | |
The segfault occurs in a path in import.c that has a comment "XXX this this should really not happen.": Program received signal SIGSEGV, Segmentation fault. 0x000000000047d733 in type_dealloc (type=0x8381e0) at Objects/typeobject.c:2694 2694 _PyObject_GC_UNTRACK(type); (gdb) bt #0 0x000000000047d733 in type_dealloc (type=0x8381e0) at Objects/typeobject.c:2694 #1 0x000000000045d8ef in free_keys_object (keys=0x8eb810) at Objects/dictobject.c:374 #2 0x0000000000463513 in dict_dealloc (mp=0x8fa9c0) at Objects/dictobject.c:1392 #3 0x0000000000503118 in _PyImport_FixupExtensionObject (mod=0xa0cd40, name=0xb1fa90, filename=0xb1fa90) at Python/import.c:498 (gdb) f 3 #3 0x0000000000503118 in _PyImport_FixupExtensionObject (mod=0xa0cd40, name=0xb1fa90, filename=0xb1fa90) at Python/import.c:498 498 Py_DECREF(def->m_base.m_copy); (gdb) l 493 if (def->m_size == -1) { 494 if (def->m_base.m_copy) { 495 /* Somebody already imported the module, 496 likely under a different name. 497 XXX this should really not happen. */ 498 Py_DECREF(def->m_base.m_copy); 499 def->m_base.m_copy = NULL; 500 } 501 dict = PyModule_GetDict(mod); 502 if (dict == NULL) |
|||
| msg170358 - (view) | Author: Stefan Krah (skrah) * (Python committer) | Date: 2012年09月12日 07:38 | |
Maybe related: If you increase the number of passes in Modules/_testembed.c, pass 9 fails: --- Pass 9 --- _testembed: Objects/typeobject.c:2693: type_dealloc: Assertion `type->tp_flags & (1L<<9)' failed. Aborted |
|||
| msg170397 - (view) | Author: Roundup Robot (python-dev) (Python triager) | Date: 2012年09月12日 16:02 | |
New changeset 8d22d9528164 by Antoine Pitrou in branch 'default': Issue #15926: Fix crash after multiple reinitializations of the interpreter. http://hg.python.org/cpython/rev/8d22d9528164 |
|||
| msg170398 - (view) | Author: Antoine Pitrou (pitrou) * (Python committer) | Date: 2012年09月12日 16:03 | |
This should be fixed now. Georg, this is up to you whether this deserves being ported to 3.3.0 or not. |
|||
| msg170410 - (view) | Author: Arfrever Frehtes Taifersar Arahesis (Arfrever) * (Python triager) | Date: 2012年09月12日 17:35 | |
+1 for including the fix in 3.3.0. This segmentation fault was reproducible in test suite of dbus-python: http://cgit.freedesktop.org/dbus/dbus-python/tree/test/import-repeatedly.c |
|||
| msg170961 - (view) | Author: Georg Brandl (georg.brandl) * (Python committer) | Date: 2012年09月22日 07:05 | |
Picked as 6708224f8bee. |
|||
| msg171097 - (view) | Author: Roundup Robot (python-dev) (Python triager) | Date: 2012年09月24日 05:46 | |
New changeset 6708224f8bee by Antoine Pitrou in branch 'default': Issue #15926: Fix crash after multiple reinitializations of the interpreter. http://hg.python.org/cpython/rev/6708224f8bee |
|||
| History | |||
|---|---|---|---|
| Date | User | Action | Args |
| 2022年04月11日 14:57:35 | admin | set | github: 60130 |
| 2012年09月24日 05:46:47 | python-dev | set | messages: + msg171097 |
| 2012年09月22日 07:05:39 | georg.brandl | set | status: open -> closed messages: + msg170961 |
| 2012年09月12日 17:35:43 | Arfrever | set | priority: high -> release blocker messages: + msg170410 |
| 2012年09月12日 16:03:51 | pitrou | set | nosy:
+ georg.brandl messages: + msg170398 assignee: georg.brandl resolution: fixed stage: needs patch -> resolved |
| 2012年09月12日 16:02:45 | python-dev | set | nosy:
+ python-dev messages: + msg170397 |
| 2012年09月12日 07:40:20 | skrah | set | type: crash components: + Interpreter Core stage: needs patch |
| 2012年09月12日 07:38:13 | skrah | set | messages: + msg170358 |
| 2012年09月12日 07:32:56 | skrah | set | nosy:
+ eric.snow, skrah, brett.cannon, pitrou messages: + msg170357 |
| 2012年09月12日 03:13:01 | Arfrever | create | |