View Issue Details

IDProjectCategoryView StatusLast Update
0002458GNUnetnamestore servicepublic2012-11-05 18:34
ReporterChristian Grothoff Assigned ToChristian Grothoff  
PriorityurgentSeverityblockReproducibilityhave not tried
Status closedResolutionfixed 
Product VersionGit master 
Target Version0.9.4Fixed in Version0.9.4 
Summary0002458: namestore fails to terminate and instead goes into infinite loop at 100% CPU
DescriptionThe namestore went into an 'infinite' loop iterating over the (AFAIK entirely empty) database with increasingly insane offsets:
(gdb) print *zi
$4 = {next = 0x0, prev = 0x0, client = 0xbf9b80, has_zone = 1, zone = {bits = {969344875, 502515347, 1284176735, 585570901, 2275369411, 1828873488, 980617594, 2628203479}}, request_id = 0, offset = 932103, must_have_flags = 0,
  must_not_have_flags = 0}

Steps To ReproduceJust starting the current gnunet-setup, enabling GNS and flipping the database from sqlite to postgres, which causes gnunet-setup to re-start the gnunet-service-namestore (gnunet-setup also tries to iterate over the contents when this happens).
Additional Information(gdb) ba
#0 get_record_and_call_iterator (plugin=0x7f4f79d05690, stmt_name=0x7f4f79b04772 "iterate_by_zone", res=0xbfc310, iter=0x4092d0 <zone_iteraterate_proc>, iter_cls=0x7fff0dd28bb0) at plugin_namestore_postgres.c:369
#1 0x00007f4f79b02259 in namestore_postgres_iterate_records (cls=0x7f4f79d05690, zone=0xbfc2cc, name=0x0, offset=932103, iter=0x4092d0 <zone_iteraterate_proc>, iter_cls=0x7fff0dd28bb0) at plugin_namestore_postgres.c:510
#2 0x0000000000409fe6 in find_next_zone_iteration_result (proc=0x7fff0dd28bb0) at gnunet-service-namestore.c:1952
#3 0x000000000040ac96 in run_zone_iteration_round (zi=0xbfc2b0) at gnunet-service-namestore.c:2072
#4 0x000000000040b2da in handle_iteration_start (cls=0x0, client=0xbfc170, message=0xbfc270) at gnunet-service-namestore.c:2135
#5 0x00007f4f7b31bbac in GNUNET_SERVER_inject (server=0xbde860, sender=0xbfc170, message=0xbfc270) at server.c:902
#6 0x00007f4f7b31c802 in client_message_tokenizer_callback (cls=0xbde860, client=0xbfc170, message=0xbfc270) at server.c:1119
#7 0x00007f4f7b31e7fd in GNUNET_SERVER_mst_receive (mst=0xbf9b40, client_identity=0xbfc170, buf=0x0, size=0, purge=0, one_shot=-1) at server_mst.c:224
#8 0x00007f4f7b31be92 in process_mst (client=0xbfc170, ret=0) at server.c:972
#9 0x00007f4f7b31c4bd in process_incoming (cls=0xbfc170, buf=0x7fff0dd290f0, available=48, addr=0xbf9a30, addrlen=2, errCode=0) at server.c:1060
#10 0x00007f4f7b2f0c14 in receive_ready (cls=0xbf9a50, tc=0x7fff0dd39190) at connection.c:1055
#11 0x00007f4f7b3180fc in run_ready (rs=0xbde240, ws=0xbde2d0) at scheduler.c:602
#12 0x00007f4f7b3188e2 in GNUNET_SCHEDULER_run (task=0x7f4f7b3253cf <service_task>, task_cls=0x7fff0dd39490) at scheduler.c:790
#13 0x00007f4f7b326e1e in GNUNET_SERVICE_run (argc=1, argv=0x7fff0dd396e8, service_name=0x40d1f1 "namestore", options=GNUNET_SERVICE_OPTION_NONE, task=0x40bd6b <run>, task_cls=0x0) at service.c:1788
#14 0x000000000040c341 in main (argc=1, argv=0x7fff0dd396e8) at gnunet-service-namestore.c:2390
TagsNo tags attached.

Activities

Christian Grothoff

2012-06-26 00:07

manager   ~0006146

The same problem also arises with the existing testcases IF we switch the database from sqlite to postgres. So this seems to be a bit plugin-specific (which is odd as the plugins should behave the same way...). So might be a postgres-namestore-plugin bug as well.

Christian Grothoff

2012-06-26 00:37

manager   ~0006147

Fixed issue in postgres plugin in SVN 22283. Also had to actually make sure that the PG database was dropped on shutdown; still having trouble when postgres plugin test is run multiple times in a row.

Christian Grothoff

2012-06-26 13:46

manager   ~0006150

Rest of issue fixed on SVN 22285.

Issue History

Date Modified Username Field Change
2012-06-24 10:46 Christian Grothoff New Issue
2012-06-24 10:46 Christian Grothoff Summary namestore fails to terminate => namestore fails to terminate and instead goes into infinite loop at 100% CPU
2012-06-26 00:07 Christian Grothoff Note Added: 0006146
2012-06-26 00:37 Christian Grothoff Note Added: 0006147
2012-06-26 00:37 Christian Grothoff Assigned To => Christian Grothoff
2012-06-26 00:37 Christian Grothoff Status new => assigned
2012-06-26 13:46 Christian Grothoff Note Added: 0006150
2012-06-26 13:46 Christian Grothoff Status assigned => resolved
2012-06-26 13:46 Christian Grothoff Fixed in Version => 0.9.4
2012-06-26 13:46 Christian Grothoff Resolution open => fixed
2012-11-05 18:34 Christian Grothoff Status resolved => closed
2013-10-02 13:56 Christian Grothoff Category namestore => namestore service