View Issue Details
| ID | Project | Category | View Status | Date Submitted | Last Update |
|---|---|---|---|---|---|
| 0001624 | GNUnet | other | public | 2010-11-30 13:12 | 2011-09-19 10:45 |
| Reporter | mrwiggles | Assigned To | mrwiggles | ||
| Priority | high | Severity | major | Reproducibility | random |
| Status | closed | Resolution | fixed | ||
| Summary | 0001624: Infinite loop (bad linked list) | ||||
| Description | Transport API problem, somehow the list of h->neighbours is not terminated by a NULL pointer; or the entry being searched for is not in the list. Not sure if it is supposed to be a circular linked list and the item should be there, or if it is normally NULL terminated. | ||||
| Additional Information | $2 = (struct NeighbourList *) 0x7f966c3c9ed8 (gdb) print pos->next->next $3 = (struct NeighbourList *) 0x24555d0 (gdb) print pos->next->next->next $4 = (struct NeighbourList *) 0x7f966c3c9ed8 (gdb) print pos->next->next->next->next $5 = (struct NeighbourList *) 0x24555d0 (gdb) bt #0 neighbour_free (n=0x2451290) at transport_api.c:1108 #1 0x00007f966c817d16 in neighbour_disconnect (n=0x2451290) at transport_api.c:1140 #2 0x00007f966c818cbf in demultiplexer (cls=0x24455f0, msg=0x7fffb6097780) at transport_api.c:1615 #3 0x00007f966c5e1299 in receive_task (cls=0x244b060, tc=0x7fffb6097870) at client.c:529 #4 0x00007f966c6005f1 in run_ready (rs=0x243de60, ws=0x243f330) at scheduler.c:644 #5 0x00007f966c600abf in GNUNET_SCHEDULER_run (task=0x7f966c606f71 <service_task>, task_cls=0x7fffb6097d30) at scheduler.c:786 #6 0x00007f966c607e9d in GNUNET_SERVICE_run (argc=3, argv=0x7fffb6097f48, serviceName=0x40a92a "core", opt=GNUNET_SERVICE_OPTION_NONE, task=0x409c35 <run>, task_cls=0x0) at service.c:1577 #7 0x0000000000409f8a in main (argc=3, argv=0x7fffb6097f48) at gnunet-service-core.c:4412 (gdb) list 1103 GNUNET_break (n->is_connected == GNUNET_NO); 1104 GNUNET_break (n->transmit_stage == TS_NEW); 1105 1106 prev = NULL; 1107 pos = h->neighbours; 1108 while (pos != n) 1109 { 1110 prev = pos; 1111 pos = pos->next; 1112 } (gdb) print h->neighbours->next $8 = (struct NeighbourList *) 0x24555d0 (gdb) print h->neighbours $9 = (struct NeighbourList *) 0x7f966c3c9ed8 (gdb) print h->neighbours->next->next $10 = (struct NeighbourList *) 0x7f966c3c9ed8 (gdb) print h->neighbours->next->next->next $11 = (struct NeighbourList *) 0x24555d0 (gdb) print h->neighbours->next->next->next->next $12 = (struct NeighbourList *) 0x7f966c3c9ed8 | ||||
| Tags | No tags attached. | ||||
| Attached Files | |||||
|
|
Valgrind trace showing that "random attempt" at fixing core problem was BAD. |
|
|
It is supposed to be changed to a HT anyway, so maybe this is the time to do that... Also, the uninit-memory accesses in your trace suggest that some component is generating messages and fails to initialize some fields (!). |
|
|
mrwiggles: isn't this resolved now? |
|
|
should be fixed, marking as resolved. |
| Date Modified | Username | Field | Change |
|---|---|---|---|
| 2010-11-30 13:12 | mrwiggles | New Issue | |
| 2010-11-30 13:58 | mrwiggles | File Added: valgrind_core.984 | |
| 2010-11-30 13:58 | mrwiggles | Note Added: 0004190 | |
| 2010-11-30 14:01 | mrwiggles | Note Edited: 0004190 | |
| 2010-11-30 16:03 | Christian Grothoff | Note Added: 0004191 | |
| 2010-12-05 21:59 | Christian Grothoff | Note Added: 0004201 | |
| 2010-12-05 21:59 | Christian Grothoff | Status | new => assigned |
| 2010-12-05 21:59 | Christian Grothoff | Assigned To | => mrwiggles |
| 2010-12-07 13:13 | mrwiggles | Note Added: 0004204 | |
| 2010-12-07 13:15 | mrwiggles | Status | assigned => closed |
| 2010-12-07 13:15 | mrwiggles | Resolution | open => fixed |
| 2010-12-07 13:15 | mrwiggles | Fixed in Version | => Git master |
| 2011-09-19 10:45 | Christian Grothoff | Fixed in Version | Git master => 0.9.0pre3 |
| 2011-09-19 10:45 | Christian Grothoff | Target Version | => 0.9.0pre3 |