View Issue Details
| ID | Project | Category | View Status | Date Submitted | Last Update |
|---|---|---|---|---|---|
| 0002569 | GNUnet | core service | public | 2012-09-29 15:42 | 2012-11-05 18:33 |
| Reporter | LRN | Assigned To | Christian Grothoff | ||
| Priority | urgent | Severity | crash | Reproducibility | always |
| Status | closed | Resolution | fixed | ||
| Product Version | Git master | ||||
| Target Version | 0.9.4 | Fixed in Version | 0.9.4 | ||
| Summary | 0002569: Crash while freeing server mst in test_gnunet_fs_psd.py | ||||
| Description | subj May or may not be related to the fact that previous test left some processes: PASS: perf_gnunet_service_fs_p2p_respect.exe Timeout communicating with ARM service. PASS: test_gnunet_fs_psd.py killing arm process 11172 gnunet-service-arm killing non-arm process 8612 gnunet-service-core | ||||
| Additional Information |
Program received signal SIGSEGV, Segmentation fault.
0x62affdef in GNUNET_SERVER_mst_destroy (mst=0x0) at server_mst.c:310
310 GNUNET_free (mst->hdr);
(gdb) bt
#0 0x62affdef in GNUNET_SERVER_mst_destroy (mst=0x0) at server_mst.c:310
#1 0x004041b6 in GSC_CLIENTS_done () at gnunet-service-core_clients.c:902
#2 0x00401458 in shutdown_task (cls=0x0, tc=0x28fc80) at gnunet-service-core.c:78
#3 0x62af95bc in run_ready (rs=0x68afe8, ws=0x68c000) at scheduler.c:602
#4 0x62af9d5e in GNUNET_SCHEDULER_run (task=0x62b060b7 <service_task>, task_cls=0x28fe18) at scheduler.c:790
#5 0x62b06e16 in GNUNET_SERVICE_run (argc=3, argv=0x1dec5d0, service_name=0x40f12a <__register_frame_info+4256042> "core", options=GNUNET_SERVICE_OPTION_NONE, task=0x401641 <run>, task_cls=0x0) at service.c:1804
#6 0x00401882 in main (argc=3, argv=0x1dec5d0) at gnunet-service-core.c:180
(gdb) l
305 * @param mst tokenizer to destroy
306 */
307 void
308 GNUNET_SERVER_mst_destroy (struct GNUNET_SERVER_MessageStreamTokenizer *mst)
309 {
310 GNUNET_free (mst->hdr);
311 GNUNET_free (mst);
312 }
313
314
(gdb) p mst
$1 = (struct GNUNET_SERVER_MessageStreamTokenizer *) 0x0
| ||||
| Tags | No tags attached. | ||||
|
|
Ah! The recent splitting of gnunet-service-core's "run" method into a pre-key generation and post-key generation part means that IF gnunet-service-core is shutdown prior to key generation completion, GSC_CLIENTS_done might be called even though GSC_CLIENTS_init was never invoked. In this case, client_mst is NULL. Fix is trivial. An equivalent issue also applies to GSC_SESSIONS. Both are fixed in SVN 24130. |
| Date Modified | Username | Field | Change |
|---|---|---|---|
| 2012-09-29 15:42 | LRN | New Issue | |
| 2012-09-29 15:43 | LRN | Description Updated | |
| 2012-09-29 15:43 | LRN | Additional Information Updated | |
| 2012-09-29 16:31 | Christian Grothoff | Assigned To | => Christian Grothoff |
| 2012-09-29 16:31 | Christian Grothoff | Status | new => assigned |
| 2012-09-29 16:31 | Christian Grothoff | Priority | normal => urgent |
| 2012-09-29 16:31 | Christian Grothoff | Target Version | => 0.9.4 |
| 2012-09-29 21:18 | Christian Grothoff | Note Added: 0006385 | |
| 2012-09-29 21:18 | Christian Grothoff | Status | assigned => resolved |
| 2012-09-29 21:18 | Christian Grothoff | Fixed in Version | => 0.9.4 |
| 2012-09-29 21:18 | Christian Grothoff | Resolution | open => fixed |
| 2012-11-05 18:33 | Christian Grothoff | Status | resolved => closed |