View Issue Details

IDProjectCategoryView StatusLast Update
0003581GNUnetpeerstorepublic2018-06-06 22:25
ReporterChristian Grothoff Assigned ToChristian Grothoff Due Date
PriorityurgentSeveritycrashReproducibilityalways
Status closedResolutionfixed 
Product VersionGit master 
Target Version0.11.0pre66Fixed in Version0.11.0pre66 
Summary0003581: peerstore fails to respect MQ semantics
DescriptionPeerstore currently stores the MQ's envelope in the context for an operation, and if it experiences a reconnect, re-uses the envelope to retransmit the request. However, envelopes don't survive the death of their MQ after they have been 'send', so this causes a crash. For example, during integration tests, I get:

Core was generated by `/home/grothoff/lib//gnunet/libexec/gnunet-service-fs -c /home/grothoff/svn/gnun'.
Program terminated with signal 6, Aborted.
#0 0x00007fa77f3f0107 in raise () from /lib/x86_64-linux-gnu/libc.so.6
(gdb) ba
#0 0x00007fa77f3f0107 in raise () from /lib/x86_64-linux-gnu/libc.so.6
#1 0x00007fa77f3f14e8 in abort () from /lib/x86_64-linux-gnu/libc.so.6
#2 0x00007fa77febbfa5 in GNUNET_abort () at common_logging.c:289
#3 0x00007fa77ff01a75 in GNUNET_MQ_send (mq=0x1a85b00, ev=0x1a88800) at mq.c:279
#4 0x00007fa77fc84d9e in reconnect (h=0x1a5eed0) at peerstore_api.c:375
#5 0x00007fa77fc846a8 in handle_client_error (cls=0x1a5eed0, error=GNUNET_MQ_ERROR_READ) at peerstore_api.c:300
#6 0x00007fa77ff0165c in GNUNET_MQ_inject_error (mq=0x1a85b00, error=GNUNET_MQ_ERROR_READ) at mq.c:255
#7 0x00007fa77ff0362c in connection_client_transmit_queued (cls=0x1a85b00, size=0, buf=0x0) at mq.c:615
#8 0x00007fa77feb62a2 in client_notify (cls=0x1a888d0, size=0, buf=0x0) at client.c:1137
#9 0x00007fa77fecdc76 in connect_error (cls=0x1a88a70, tc=0x7fffee323cb0) at connection.c:1265
#10 0x00007fa77ff1d524 in run_ready (rs=0x1a5cea0, ws=0x1a5cf30) at scheduler.c:595
#11 0x00007fa77ff1e5b3 in GNUNET_SCHEDULER_run (task=0x7fa77ff33eaf <service_task>, task_cls=0x7fffee324050) at scheduler.c:817
#12 0x00007fa77ff37362 in GNUNET_SERVICE_run (argc=3, argv=0x7fffee3242d8, service_name=0x42fef3 "fs",
    options=GNUNET_SERVICE_OPTION_NONE, task=0x4073c2 <run>, task_cls=0x0) at service.c:1498
#13 0x00000000004078a6 in main (argc=3, argv=0x7fffee3242d8) at gnunet-service-fs.c:839
Additional InformationI'm committing a fix for the "Store" operation in SVN 34670: the message data is kept in the struct, and a fresh envelope is build on reconnect. This still needs to be done for the other operations...
TagsNo tags attached.

Activities

otarabai

2014-12-18 17:40

reporter   ~0008707

Should be fixed in revision 34685

Christian Grothoff

2014-12-19 10:15

manager   ~0008710

Seems to work now in SVN 34689 (with additional simplifications/fixes).
[note that other issues discussed in e-mail remain unresolved],.

Issue History

Date ModifiedUsernameFieldChange
2014-12-16 22:45Christian GrothoffNew Issue
2014-12-16 22:45Christian GrothoffStatusnew => assigned
2014-12-16 22:45Christian GrothoffAssigned To => otarabai
2014-12-16 22:45Christian GrothoffAdditional Information Updated
2014-12-18 17:40otarabaiNote Added: 0008707
2014-12-18 17:47otarabaiAssigned Tootarabai => Christian Grothoff
2014-12-18 17:47otarabaiStatusassigned => feedback
2014-12-19 10:15Christian GrothoffNote Added: 0008710
2014-12-19 10:15Christian GrothoffStatusfeedback => assigned
2014-12-19 10:15Christian GrothoffStatusassigned => resolved
2014-12-19 10:15Christian GrothoffFixed in Version => 0.11.0pre66
2014-12-19 10:15Christian GrothoffResolutionopen => fixed
2014-12-19 10:15Christian GrothoffTarget Version => 0.11.0pre66
2018-06-06 22:25Christian GrothoffStatusresolved => closed