View Issue Details
| ID | Project | Category | View Status | Date Submitted | Last Update |
|---|---|---|---|---|---|
| 0003119 | GNUnet | cadet service | public | 2013-11-18 21:28 | 2013-12-24 20:54 |
| Reporter | Christian Grothoff | Assigned To | Bart Polot | ||
| Priority | high | Severity | major | Reproducibility | always |
| Status | closed | Resolution | fixed | ||
| Product Version | Git master | ||||
| Target Version | 0.10.0 | Fixed in Version | 0.10.0 | ||
| Summary | 0003119: various assertion failures in mesh during FS test on sparcbot | ||||
| Description | Nov 18 21:03:08-393952 mesh-103327 ERROR Assertion failed at gnunet-service-mesh_connection.c:2508. Nov 18 21:03:08-394917 mesh-103327 ERROR Assertion failed at gnunet-service-mesh_peer.c:843. Nov 18 21:03:08-395146 mesh-p2p-103327 WARNING * type unknown: 271 Nov 18 21:03:08-726256 mesh-103327 ERROR Assertion failed at gnunet-service-mesh_connection.c:2515. Nov 18 21:03:08-730481 mesh-103327 ERROR Assertion failed at gnunet-service-mesh_connection.c:2515. Nov 18 21:03:08-734059 mesh-103327 ERROR Assertion failed at gnunet-service-mesh_connection.c:2515. Nov 18 21:03:08-738536 mesh-103327 ERROR Assertion failed at gnunet-service-mesh_connection.c:2515. Nov 18 21:03:08-742660 mesh-103327 ERROR Assertion failed at gnunet-service-mesh_connection.c:2515. Nov 18 21:03:08-746498 mesh-103327 ERROR Assertion failed at gnunet-service-mesh_connection.c:2515. Nov 18 21:03:08-750756 mesh-103327 ERROR Assertion failed at gnunet-service-mesh_connection.c:2515. Nov 18 21:03:08-754977 mesh-103327 ERROR Assertion failed at gnunet-service-mesh_connection.c:2515. Nov 18 21:03:08-759240 mesh-103327 ERROR Assertion failed at gnunet-service-mesh_connection.c:2515. Nov 18 21:03:08-763376 mesh-103327 ERROR Assertion failed at gnunet-service-mesh_connection.c:2515. Nov 18 21:03:08-767416 mesh-103327 ERROR Assertion failed at gnunet-service-mesh_connection.c:2515. Nov 18 21:03:08-771923 mesh-103327 ERROR Assertion failed at gnunet-service-mesh_connection.c:2515. Nov 18 21:03:08-776655 mesh-103327 ERROR Assertion failed at gnunet-service-mesh_connection.c:2515. Nov 18 21:03:08-781438 mesh-103327 ERROR Assertion failed at gnunet-service-mesh_connection.c:2515. Nov 18 21:03:08-786469 mesh-103327 ERROR Assertion failed at gnunet-service-mesh_connection.c:2515. Nov 18 21:03:08-791207 mesh-103327 ERROR Assertion failed at gnunet-service-mesh_connection.c:2515. Nov 18 21:03:08-795993 mesh-103327 ERROR Assertion failed at gnunet-service-mesh_connection.c:2515. Nov 18 21:03:08-800555 mesh-103327 ERROR Assertion failed at gnunet-service-mesh_connection.c:2515. Nov 18 21:03:08-805306 mesh-103327 ERROR Assertion failed at gnunet-service-mesh_connection.c:2515. Nov 18 21:03:08-810238 mesh-103327 ERROR Assertion failed at gnunet-service-mesh_connection.c:2515. Nov 18 21:03:08-814833 mesh-103327 ERROR Assertion failed at gnunet-service-mesh_connection.c:2515. Nov 18 21:03:08-819769 mesh-103327 ERROR Assertion failed at gnunet-service-mesh_connection.c:2515. Nov 18 21:03:08-826416 mesh-103327 ERROR Assertion failed at gnunet-service-mesh_connection.c:2515. Nov 18 21:03:08-831179 mesh-103327 ERROR Assertion failed at gnunet-service-mesh_connection.c:2515. Nov 18 21:03:08-835855 mesh-103327 ERROR Assertion failed at gnunet-service-mesh_connection.c:2515. Nov 18 21:03:09-823802 mesh-103326 ERROR Assertion failed at gnunet-service-mesh_connection.c:2515. Nov 18 21:03:09-871907 mesh-103326 ERROR Assertion failed at gnunet-service-mesh_connection.c:2515. Nov 18 21:03:09-927836 mesh-103326 ERROR Assertion failed at gnunet-service-mesh_connection.c:2515. Nov 18 21:03:09-982957 mesh-103326 ERROR Assertion failed at gnunet-service-mesh_connection.c:2515. Nov 18 21:03:10-032090 mesh-103326 ERROR Assertion failed at gnunet-service-mesh_connection.c:2515. Nov 18 21:03:10-084098 mesh-103326 ERROR Assertion failed at gnunet-service-mesh_connection.c:2515. Nov 18 21:03:10-135913 mesh-103326 ERROR Assertion failed at gnunet-service-mesh_connection.c:2515. Nov 18 21:03:10-182521 mesh-103326 ERROR Assertion failed at gnunet-service-mesh_connection.c:2515. Nov 18 21:03:10-236092 mesh-103326 ERROR Assertion failed at gnunet-service-mesh_connection.c:2515. Nov 18 21:03:10-286800 mesh-103326 ERROR Assertion failed at gnunet-service-mesh_connection.c:2515. Nov 18 21:03:10-334100 mesh-103326 ERROR Assertion failed at gnunet-service-mesh_connection.c:2515. Nov 18 21:03:10-385102 mesh-103326 ERROR Assertion failed at gnunet-service-mesh_connection.c:2515. Nov 18 21:03:10-436785 mesh-103326 ERROR Assertion failed at gnunet-service-mesh_connection.c:2515. Nov 18 21:03:10-483710 mesh-103326 ERROR Assertion failed at gnunet-service-mesh_connection.c:2515. Nov 18 21:03:10-535725 mesh-103326 ERROR Assertion failed at gnunet-service-mesh_connection.c:2515. Nov 18 21:03:10-586759 mesh-103326 ERROR Assertion failed at gnunet-service-mesh_connection.c:2515. Nov 18 21:03:10-629411 mesh-103326 ERROR Assertion failed at gnunet-service-mesh_connection.c:2515. Nov 18 21:03:10-673943 mesh-103326 ERROR Assertion failed at gnunet-service-mesh_connection.c:2515. Nov 18 21:03:11-023163 mesh-103327 WARNING External protocol violation detected at gnunet-service-mesh_channel.c:1622. Download speed was 280 KiB/s PASS: test_gnunet_service_fs_p2p_mesh | ||||
| Tags | No tags attached. | ||||
|
|
Flow control assertions, will disappear on successful channel level callbacks. |
|
|
Can't reproduce, FS tries to destroy a NULL channel: (gdb) bt #0 0x00007f424ef16740 in GNUNET_MESH_channel_destroy (channel=0x0) at mesh_api.c:1464 #1 0x0000000000417840 in reset_mesh (mh=0x15509b0) at gnunet-service-fs_mesh_client.c:222 #2 0x000000000041799c in reset_mesh_task (cls=0x15509b0, tc=0x7ffff228be30) at gnunet-service-fs_mesh_client.c:272 #3 0x00007f424e8cf7eb in run_ready (rs=0x152e550, ws=0x152e5e0) at scheduler.c:593 #4 0x00007f424e8d0079 in GNUNET_SCHEDULER_run (task=0x7f424e8dc20c <service_task>, task_cls=0x7ffff228c1d0) at scheduler.c:808 #5 0x00007f424e8dde3a in GNUNET_SERVICE_run (argc=3, argv=0x7ffff228c448, service_name=0x41ae4b "fs", options=GNUNET_SERVICE_OPTION_NONE, task=0x40556c <run>, task_cls=0x0) at service.c:1478 #6 0x00000000004057d7 in main (argc=3, argv=0x7ffff228c448) at gnunet-service-fs.c:721 (gdb) bt full #0 0x00007f424ef16740 in GNUNET_MESH_channel_destroy (channel=0x0) at mesh_api.c:1464 h = 0x8000000dc msg = {header = {size = 0, type = 0}, channel_id = 0, peer = {public_key = {q_y = "\260\275(\362\377\177\000\000\340G@\000\000\000\000\000@\304(\362\377\177\000\000\000\000\000\000\000\000\000"}}, port = 1317645595, opt = 32578} th = 0x200000000 __FUNCTION__ = "GNUNET_MESH_channel_destroy" #1 0x0000000000417840 in reset_mesh (mh=0x15509b0) at gnunet-service-fs_mesh_client.c:222 channel = 0x0 __FUNCTION__ = "reset_mesh" #2 0x000000000041799c in reset_mesh_task (cls=0x15509b0, tc=0x7ffff228be30) at gnunet-service-fs_mesh_client.c:272 mh = 0x15509b0 #3 0x00007f424e8cf7eb in run_ready (rs=0x152e550, ws=0x152e5e0) at scheduler.c:593 p = GNUNET_SCHEDULER_PRIORITY_DEFAULT pos = 0x15584b0 tc = {reason = GNUNET_SCHEDULER_REASON_TIMEOUT, read_ready = 0x152e550, write_ready = 0x152e5e0} __FUNCTION__ = "run_ready" #4 0x00007f424e8d0079 in GNUNET_SCHEDULER_run (task=0x7f424e8dc20c <service_task>, task_cls=0x7ffff228c1d0) at scheduler.c:808 rs = 0x152e550 ws = 0x152e5e0 timeout = {rel_value_us = 0} ret = 1 shc_int = 0x15337c0 shc_term = 0x1531190 shc_quit = 0x152f010 shc_hup = 0x152f0c0 shc_pipe = 0x152ef60 last_tr = 136 busy_wait_warning = 0 pr = 0x1530f90 c = 0 '\000' __FUNCTION__ = "GNUNET_SCHEDULER_run" #5 0x00007f424e8dde3a in GNUNET_SERVICE_run (argc=3, argv=0x7ffff228c448, service_name=0x41ae4b "fs", options=GNUNET_SERVICE_OPTION_NONE, task=0x40556c <run>, task_cls=0x0) at service.c:1478 err = 0 ret = 3 cfg_fn = 0x15258a0 "~/.gnunet/gnunet.conf" opt_cfg_fn = 0x1525ae0 "/tmp/testbedXCqBUm/0/config" loglev = 0x0 logfile = 0x0 do_daemonize = 0 i = 4216172 skew_offset = 139922787350157 skew_variance = 1 clock_offset = 139922787394085 sctx = {cfg = 0x1525880, server = 0x152f430, addrs = 0x0, service_name = 0x41ae4b "fs", task = 0x40556c <run>, task_cls = 0x0, v4_denied = 0x0, v6_denied = 0x0, v4_allowed = 0x153d160, v6_allowed = 0x152e4f0, my_handlers = 0x1528ba0, addrlens = 0x0, lsocks = 0x152e460, shutdown_task = 0, timeout = {rel_value_us = 18446744073709551615}, ret = 1, ready_confirm_fd = -1, require_found = 1, match_uid = 0, match_gid = 1, options = GNUNET_SERVICE_OPTION_NONE} cfg = 0x1525880 xdg = 0x0 service_options = {{shortName = 99 'c', name = 0x7f424e8eaa6d "config", argumentHelp = 0x7f424e8eaa74 "FILENAME", description = 0x7f424e8eaa80 "use configuration file FILENAME", require_argument = 1, processor = 0x7f424e8be4b4 <GNUNET_GETOPT_set_string>, scls = 0x7ffff228c288}, {shortName = 100 'd', name = 0x7f424e8eaaa0 "daemonize", argumentHelp = 0x0, description = 0x7f424e8eaab0 "do daemonize (detach from terminal)", require_argument = 0, processor = 0x7f424e8be487 <GNUNET_GETOPT_set_one>, scls = 0x7ffff228c274}, {shortName = 104 'h', name = 0x7f424e8eaad4 "help", argumentHelp = 0x0, description = 0x7f424e8eaad9 "print this help", require_argument = 0, processor = 0x7f424e8bdf4e <GNUNET_GETOPT_format_help_>, scls = 0x0}, {shortName = 76 'L', name = 0x7f424e8eaae9 "log", argumentHelp = 0x7f424e8eaaed "LOGLEVEL", description = 0x7f424e8eaaf8 "configure logging to use LOGLEVEL", require_argument = 1, processor = 0x7f424e8be4b4 <GNUNET_GETOPT_set_string>, scls = 0x7ffff228c280}, {shortName = 108 'l', name = 0x7f424e8eab1a "logfile", argumentHelp = 0x7f424e8eab22 "LOGFILE", description = 0x7f424e8eab30 "configure logging to write logs to LOGFILE", require_argument = 1, processor = 0x7f424e8be4b4 <GNUNET_GETOPT_set_string>, scls = 0x7ffff228c278}, { shortName = 118 'v', name = 0x7f424e8eab5b "version", argumentHelp = 0x0, description = 0x7f424e8eab63 "print the version number", require_argument = 0, processor = 0x7f424e8bdf08 <GNUNET_GETOPT_print_version_>, scls = 0x7f424e8eab7c}, {shortName = 0 '\000', name = 0x0, argumentHelp = 0x0, description = 0x0, require_argument = 0, processor = 0x0, scls = 0x0}} __FUNCTION__ = "GNUNET_SERVICE_run" #6 0x00000000004057d7 in main (argc=3, argv=0x7ffff228c448) at gnunet-service-fs.c:721 No locals. (gdb) up 1 #1 0x0000000000417840 in reset_mesh (mh=0x15509b0) at gnunet-service-fs_mesh_client.c:222 222 GNUNET_MESH_channel_destroy (channel); (gdb) p *mh $1 = {pending_head = 0x0, pending_tail = 0x0, waiting_map = 0x152f5c0, channel = 0x0, wh = 0x0, target = {public_key = {q_y = "7\252\271\320\332\324\314G\252\tk\300$\211\\,\224\226\061L\001%\257\002/Gcc\f\261\262\327"}}, timeout_task = 162, reset_task = 0} (gdb) |
|
|
Bart, that should be fixed now. |
|
|
Also, I get those breaks on machines other than sparcbot as well. |
|
|
The assertion that is repeated a lot of times is really a warning when mesh drops traffic, so not anything too critical. It should be fixed however with the full channel callback system. All other assertions seem to be fixed. |
|
|
After r30950 there should be a fair reduction in assertions (and maybe a tiny performance bump) as channels are smarter about cancelling unnecessary traffic. Some assertions remain due to channels generating more traffic that the connection has allowed them to, for instance to send back ACK for incoming traffic when the queue is full of outgoing traffic. |
|
|
Antoher step in the right direction: r30959 avoids dropping "unsolicited" management traffic when a connection buffer is full. Drops are not completely gone. Since management traffic is still "accounted for" it can use the queue slots reserved for pre-aproved clients and when they send their traffic, IT gets dropped. Next step: don't count management traffic as occuping a place in the queue. |
|
|
Last errors should be gone with r30982. |
| Date Modified | Username | Field | Change |
|---|---|---|---|
| 2013-11-18 21:28 | Christian Grothoff | New Issue | |
| 2013-11-18 21:28 | Christian Grothoff | Status | new => assigned |
| 2013-11-18 21:28 | Christian Grothoff | Assigned To | => Bart Polot |
| 2013-11-18 21:53 | Christian Grothoff | Reproducibility | have not tried => always |
| 2013-11-20 00:23 | Christian Grothoff | Target Version | => 0.10.0 |
| 2013-11-21 18:20 | Bart Polot | Note Added: 0007670 | |
| 2013-11-21 18:20 | Bart Polot | Status | assigned => confirmed |
| 2013-11-26 13:38 | Bart Polot | Note Added: 0007693 | |
| 2013-11-26 13:38 | Bart Polot | Status | confirmed => feedback |
| 2013-11-28 13:21 | Christian Grothoff | Note Added: 0007737 | |
| 2013-11-28 13:21 | Christian Grothoff | Status | feedback => assigned |
| 2013-11-28 13:22 | Christian Grothoff | Note Added: 0007738 | |
| 2013-11-28 13:44 | Bart Polot | Note Added: 0007739 | |
| 2013-11-28 13:44 | Bart Polot | Status | assigned => acknowledged |
| 2013-11-28 13:45 | Bart Polot | Note Edited: 0007739 | |
| 2013-11-28 19:01 | Bart Polot | Note Added: 0007741 | |
| 2013-11-29 03:50 | Bart Polot | Note Added: 0007743 | |
| 2013-11-29 19:13 | Bart Polot | Note Added: 0007750 | |
| 2013-11-29 19:13 | Bart Polot | Status | acknowledged => resolved |
| 2013-11-29 19:13 | Bart Polot | Fixed in Version | => Git master |
| 2013-11-29 19:13 | Bart Polot | Resolution | open => fixed |
| 2013-12-08 23:55 | Christian Grothoff | Fixed in Version | Git master => 0.10.0 |
| 2013-12-24 20:54 | Christian Grothoff | Status | resolved => closed |
| 2014-05-09 18:34 | Christian Grothoff | Category | mesh service => cadet service |