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年10月31日 01:49 by bfroehle, last changed 2022年04月11日 14:57 by admin. This issue is now closed.
| Messages (9) | |||
|---|---|---|---|
| msg174255 - (view) | Author: Bradley Froehle (bfroehle) * | Date: 2012年10月31日 01:49 | |
In Python 3.3.0, several global `PyTypeObject`s are not initialized using PyType_Ready(...). The list of uninitialized type objects:: PyCapsule_Type PyLongRangeIter_Type PyFieldNameIter_Type PyFormatterIter_Type PySTEntry_Type PyCell_Type PyInstanceMethod_Type PyClassMethodDescr_Type PyMethodDescr_Type PyCallIter_Type PySeqIter_Type PyDictDummy_Type Each of these can be verified using gdb:: $ gdb -quiet python3.3 Reading symbols from /opt/python/3.3.0/bin/python3.3...done. (gdb) break Py_Finalize Breakpoint 1 at 0x4a40a0: file Python/pythonrun.c, line 478. (gdb) run -c "pass" Starting program: /opt/python/3.3.0/bin/python3.3 -c "pass" [Thread debugging using libthread_db enabled] Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1". Breakpoint 1, Py_Finalize () at Python/pythonrun.c:478 478 if (!initialized) (gdb) print PyCell_Type->tp_mro 1ドル = (PyObject *) 0x0 (The list of uninitialized types was built by searching "info variables" in gdb to produce a list of PyTypeObjects. Those with <name>->tp_mro != NULL were treated as properly initialized. The remainder were further inspected by hand to throw out additional false positives, like those from modules which had been statically compiled into the Python binary). I'm not sure if any of these actually need fixing, but for PyCell_Type this issue already resulted in one obscure bug: #16268. |
|||
| msg174258 - (view) | Author: Roundup Robot (python-dev) (Python triager) | Date: 2012年10月31日 03:34 | |
New changeset eec0cafe171d by Benjamin Peterson in branch '3.2': initialize more global type objects (closes #16369) http://hg.python.org/cpython/rev/eec0cafe171d New changeset 9371bf2287c4 by Benjamin Peterson in branch '3.3': merge 3.2 (#16369) http://hg.python.org/cpython/rev/9371bf2287c4 New changeset aa52d8559ce5 by Benjamin Peterson in branch 'default': merge 3.3 (#16369) http://hg.python.org/cpython/rev/aa52d8559ce5 New changeset 315bd0ceb97a by Benjamin Peterson in branch '2.7': initialize more global type objects (closes #16369) http://hg.python.org/cpython/rev/315bd0ceb97a |
|||
| msg174310 - (view) | Author: Roundup Robot (python-dev) (Python triager) | Date: 2012年10月31日 16:11 | |
New changeset abe8a2908f08 by Jesus Cea in branch '2.7': Closes #16369: Global PyTypeObjects not initialized with PyType_Ready(...). DOCUMENT IT! http://hg.python.org/cpython/rev/abe8a2908f08 New changeset e9ea7f6a7107 by Jesus Cea in branch '3.2': Closes #16369: Global PyTypeObjects not initialized with PyType_Ready(...). DOCUMENT IT! http://hg.python.org/cpython/rev/e9ea7f6a7107 New changeset 9a4e2d394ba0 by Jesus Cea in branch '3.3': MERGE: Closes #16369: Global PyTypeObjects not initialized with PyType_Ready(...). DOCUMENT IT! http://hg.python.org/cpython/rev/9a4e2d394ba0 New changeset e5f39546989f by Jesus Cea in branch 'default': MERGE: Closes #16369: Global PyTypeObjects not initialized with PyType_Ready(...). DOCUMENT IT! http://hg.python.org/cpython/rev/e5f39546989f |
|||
| msg174311 - (view) | Author: Jesús Cea Avión (jcea) * (Python committer) | Date: 2012年10月31日 16:12 | |
Benjamin, 3.3/3.4 "PyDictDummy_Type" initialization is missing too. That code was introduced in """ changeset: 76485:6e5855854a2e user: Benjamin Peterson <benjamin@python.org> date: Mon Apr 23 11:24:50 2012 -0400 summary: Implement PEP 412: Key-sharing dictionaries (closes #13903) """ Reopening and assigning to you :-) (if you don't want to work on this, let me know) |
|||
| msg174315 - (view) | Author: Jesús Cea Avión (jcea) * (Python committer) | Date: 2012年10月31日 16:19 | |
Any option of having a test? |
|||
| msg174330 - (view) | Author: Benjamin Peterson (benjamin.peterson) * (Python committer) | Date: 2012年10月31日 17:00 | |
It doesn't need to be initialized. |
|||
| msg174334 - (view) | Author: Jesús Cea Avión (jcea) * (Python committer) | Date: 2012年10月31日 17:10 | |
Even if not "needed" to be initialize, we might do it for regularity (no special cases are special enough :-). Or, if left alone, at least document it in the code. |
|||
| msg174340 - (view) | Author: Roundup Robot (python-dev) (Python triager) | Date: 2012年10月31日 17:36 | |
New changeset e87d617cef23 by Benjamin Peterson in branch 'default': make PyGrammar_LabelRepr return a const char * (closes #16369) http://hg.python.org/cpython/rev/e87d617cef23 |
|||
| msg174341 - (view) | Author: Benjamin Peterson (benjamin.peterson) * (Python committer) | Date: 2012年10月31日 17:39 | |
Oops, that was supposed to go to #16375. |
|||
| History | |||
|---|---|---|---|
| Date | User | Action | Args |
| 2022年04月11日 14:57:37 | admin | set | github: 60573 |
| 2012年10月31日 17:39:40 | benjamin.peterson | set | messages: + msg174341 |
| 2012年10月31日 17:36:28 | python-dev | set | messages: + msg174340 |
| 2012年10月31日 17:10:08 | jcea | set | messages: + msg174334 |
| 2012年10月31日 17:00:43 | benjamin.peterson | set | status: open -> closed resolution: fixed messages: + msg174330 |
| 2012年10月31日 16:30:43 | Arfrever | set | nosy:
+ Arfrever |
| 2012年10月31日 16:19:06 | jcea | set | messages: + msg174315 |
| 2012年10月31日 16:12:39 | jcea | set | status: closed -> open assignee: benjamin.peterson versions: + Python 2.7, Python 3.2, Python 3.4 nosy: + benjamin.peterson messages: + msg174311 resolution: fixed -> (no value) |
| 2012年10月31日 16:11:06 | python-dev | set | messages: + msg174310 |
| 2012年10月31日 15:43:05 | jcea | set | nosy:
+ jcea |
| 2012年10月31日 03:35:08 | benjamin.peterson | link | issue16268 superseder |
| 2012年10月31日 03:34:46 | python-dev | set | status: open -> closed nosy: + python-dev messages: + msg174258 resolution: fixed stage: resolved |
| 2012年10月31日 01:49:25 | bfroehle | create | |