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.
| Author | Rhamphoryncus |
|---|---|
| Recipients | Rhamphoryncus |
| Date | 2008年06月13日.05:14:50 |
| SpamBayes Score | 0.04756887 |
| Marked as misclassified | No |
| Message-id | <1213334091.99.0.730324798344.issue3100@psf.upfronthosting.co.za> |
| In-reply-to |
| Content | |
|---|---|
1. MyRef is released from the module as part of shutdown 2. MyRef's subtype_dealloc DECREFs its dictptr (not clearing it, as MyRef is dead and should be unreachable) 3. the dict DECREFs the Dummy (MyRef's target) 4. Dummy's subtype_dealloc calls PyObject_ClearWeakRefs to notify of its demise 5. the callback is called, with the dead MyRef as an argument 6. If MyRef's dict is accessed a segfault occurs. Presumably just calling the callback does enough damage to explain the segfault without accessing MyRef's dict. As I understand, a deleted weakref doesn't call its callback. However, subtype_dealloc doesn't call the base type's tp_dealloc until *after* it does everything else. Does it need a special case for weakrefs, or maybe a tp_predealloc slot? |
|
| History | |||
|---|---|---|---|
| Date | User | Action | Args |
| 2008年06月13日 05:14:52 | Rhamphoryncus | set | spambayes_score: 0.0475689 -> 0.04756887 recipients: + Rhamphoryncus |
| 2008年06月13日 05:14:52 | Rhamphoryncus | set | spambayes_score: 0.0475689 -> 0.0475689 messageid: <1213334091.99.0.730324798344.issue3100@psf.upfronthosting.co.za> |
| 2008年06月13日 05:14:51 | Rhamphoryncus | link | issue3100 messages |
| 2008年06月13日 05:14:50 | Rhamphoryncus | create | |