Message246573
| Author |
scoder |
| Recipients |
Aaron.Meurer, BreamoreBoy, Tim.Graham, amaury.forgeotdarc, anacrolix, asvetlov, brechtm, eric.snow, ezio.melotti, giampaolo.rodola, jcea, josh.r, kachayev, kmike, meador.inge, pitrou, poke, python-dev, rhettinger, scoder, serhiy.storchaka |
| Date |
2015年07月10日.17:59:51 |
| SpamBayes Score |
-1.0 |
| Marked as misclassified |
Yes |
| Message-id |
<1436551192.55.0.730731079802.issue14373@psf.upfronthosting.co.za> |
| In-reply-to |
| Content |
I'm witnessing a crash in the C implementation during garbage collection. Interestingly, it only shows in the Py3.6 branch, not in Py3.5 (both latest). Here's the gdb session:
Program received signal SIGSEGV, Segmentation fault.
lru_cache_tp_traverse (self=0x7ffff2a80ae8, visit=0x43c528 <visit_decref>, arg=0x0) at ./Modules/_functoolsmodule.c:1040
1040 lru_list_elem *next = link->next;
(gdb) list
1035 static int
1036 lru_cache_tp_traverse(lru_cache_object *self, visitproc visit, void *arg)
1037 {
1038 lru_list_elem *link = self->root.next;
1039 while (link != &self->root) {
1040 lru_list_elem *next = link->next;
1041 Py_VISIT(link);
1042 link = next;
1043 }
1044 Py_VISIT(self->maxsize_O);
(gdb) print link
1ドル = (lru_list_elem *) 0x0
(gdb) print self
2ドル = (lru_cache_object *) 0x7ffff2a80ae8
(gdb) print self->root.next
3ドル = (struct lru_list_elem *) 0x0
(gdb) print self->root
4ドル = {ob_base = {_ob_next = 0x7ffff2a26458, _ob_prev = 0x90e860 <refchain>, ob_refcnt = 1, ob_type = 0x92c500 <lru_cache_type>}, prev = 0x0, next = 0x0, key = 0x0, result = 0x0}
IIUC correctly, there is only one entry and the code doesn't expect that. An additional "is empty?" NULL check may or may not be the right fix. It might also be the linking itself that's incorrect here. The code seems to expect a cyclic data structure which is apparently not maintained that way. |
|
History
|
|---|
| Date |
User |
Action |
Args |
| 2015年07月10日 17:59:52 | scoder | set | recipients:
+ scoder, rhettinger, jcea, amaury.forgeotdarc, pitrou, giampaolo.rodola, ezio.melotti, asvetlov, poke, meador.inge, anacrolix, Aaron.Meurer, BreamoreBoy, python-dev, eric.snow, serhiy.storchaka, brechtm, kmike, kachayev, josh.r, Tim.Graham |
| 2015年07月10日 17:59:52 | scoder | set | messageid: <1436551192.55.0.730731079802.issue14373@psf.upfronthosting.co.za> |
| 2015年07月10日 17:59:52 | scoder | link | issue14373 messages |
| 2015年07月10日 17:59:51 | scoder | create |
|