View Issue Details

IDProjectCategoryView StatusLast Update
0005004GNUnetcore servicepublic2018-06-06 22:24
Reporterlurchi Assigned ToChristian Grothoff Due Date
PrioritynormalSeverityminorReproducibilityalways
Status closedResolutionfixed 
Product VersionGit master 
Target Version0.11.0pre66 
Summary0005004: RTT measurements: handly_dummy is called twice per echo
Descriptionin my branch 'improving-conversation' I implemented RTT measurements for gnunet-core. The measuring peer (A) sends a ping packet containing an identifier (timestamp) to an echo service on Peer B. When the echo is received the measured round-trip time is printed to stdout and the next ping is sent.
A timeout functionality is implemented: if an echo response contains an unexpected identifier it is dropped and a warning is logged (gnunet-core.c:234).

The bug is: handle_dummy is called twice for each received echo response. I verified with debug output that the ping packet is sent only once and that the echo service only sends one response. Maybe it's a simple logic bug, but I don't see it.
Steps To ReproducePeer B: gnunet-core -e
Peer A: gnunet-core -p <B's peerid> -r
TagsNo tags attached.

Activities

Christian Grothoff

2017-05-04 18:00

manager   ~0012103

When I run the code, I get this:
$ export GNUNET_FORCE_LOG="core;;;;DEBUG/"
$ gnunet-core -p DSTJBRRKZ8TBW3FGK6B0M5QXWT9WYNZ45H5MCV4HY7ST64Q8T9F0 -r
May 04 19:59:37-436465 core-api-11581 DEBUG Connecting to CORE service
May 04 19:59:37-436520 core-api-11581 INFO (Re)connecting to CORE service
May 04 19:59:37-437898 core-api-11581 DEBUG Connected to core service of peer `6YNB'.
May 04 19:59:37-437956 core-api-11581 DEBUG Received notification about connection from `DSTJ'.
May 04 19:59:37-437982 core-api-11581 DEBUG Asking core for transmission of 449 bytes to `DSTJ'
May 04 19:59:37-438001 core-api-11581 DEBUG Calling get_message with buffer of 449 bytes (uncorked)
May 04 19:59:37-438132 core-api-11581 DEBUG Received notification about transmission readiness to `DSTJ'.
May 04 19:59:37-479834 core-api-11581 DEBUG Received inbound message from `DSTJ'.
41889
May 04 19:59:37-479874 core-api-11581 DEBUG Asking core for transmission of 449 bytes to `DSTJ'
May 04 19:59:37-479891 core-api-11581 DEBUG Calling get_message with buffer of 449 bytes (uncorked)
May 04 19:59:37-479958 core-api-11581 DEBUG Received notification about transmission readiness to `DSTJ'.
May 04 19:59:37-515967 core-api-11581 DEBUG Received inbound message from `DSTJ'.
36117
May 04 19:59:37-515993 core-api-11581 DEBUG Asking core for transmission of 449 bytes to `DSTJ'
May 04 19:59:37-516007 core-api-11581 DEBUG Calling get_message with buffer of 449 bytes (uncorked)
May 04 19:59:37-516116 core-api-11581 DEBUG Received notification about transmission readiness to `DSTJ'.
May 04 19:59:37-545958 core-api-11581 DEBUG Received inbound message from `DSTJ'.
29989
May 04 19:59:37-545990 core-api-11581 DEBUG Asking core for transmission of 449 bytes to `DSTJ'
May 04 19:59:37-546009 core-api-11581 DEBUG Calling get_message with buffer of 449 bytes (uncorked)
May 04 19:59:37-546191 core-api-11581 DEBUG Received notification about transmission readiness to `DSTJ'.
May 04 19:59:37-607580 core-api-11581 DEBUG Received inbound message from `DSTJ'.
61615


Do you get the error always or rarely/sometimes?

lurchi

2017-05-04 19:12

developer   ~0012104

Haha, I'm stupid. Accidentally I was running two instances of 'gnunet-core -e', each one echoing the ping packets. Thanks for trying it out.

Issue History

Date ModifiedUsernameFieldChange
2017-05-04 16:34lurchiNew Issue
2017-05-04 17:52Christian GrothoffAssigned To => Christian Grothoff
2017-05-04 17:52Christian GrothoffStatusnew => assigned
2017-05-04 17:54Christian GrothoffProduct Version => Git master
2017-05-04 17:54Christian GrothoffTarget Version => 0.11.0pre66
2017-05-04 18:00Christian GrothoffNote Added: 0012103
2017-05-04 19:12lurchiNote Added: 0012104
2017-05-04 19:13lurchiStatusassigned => resolved
2017-05-04 19:13lurchiResolutionopen => fixed
2018-06-06 22:24Christian GrothoffStatusresolved => closed