View Issue Details

IDProjectCategoryView StatusLast Update
0001823GNUnettransport servicepublic2011-10-31 12:00
ReporterMatthias Wachs Assigned ToMatthias Wachs  
PriorityurgentSeveritycrashReproducibilitysometimes
Status closedResolutionfixed 
Summary0001823: transport tests do not always connect
Descriptionespecially in UDP testcases:

p1 sends PING to p2:
p1 -> PING -> p2

when test succeeds:
p2 replies with a PING to p1
p2 -> PING -> p1

when fails
silence

p2 does not "respond" to this ping


transport-testing issue?
transport issue?
TagsNo tags attached.

Activities

Matthias Wachs

2011-10-10 17:19

reporter   ~0004696

Oct 10 17:06:36-758338 transport-22293 INFO Creating a new private key. This may take a while.
Oct 10 17:06:36-763620 transport-22294 INFO Creating a new private key. This may take a while.
Oct 10 17:06:37-272485 transport-22294 INFO I am host `LMH3'. Stored new private key in `/tmp/test-transport/api-udp-p2/.hostkey'.
Oct 10 17:06:37-272837 transport-22294 INFO Starting transport plugins `udp'
Oct 10 17:06:37-272853 transport-22294 INFO Loading `udp' transport plugin
Oct 10 17:06:37-274080 test_transport_api_udp-22277 DEBUG Peer 2 (`LMH3') started
Oct 10 17:06:37-282186 transport-22293 INFO I am host `HMJ7'. Stored new private key in `/tmp/test-transport/api-udp-p1/.hostkey'.
Oct 10 17:06:37-287180 transport-22293 INFO Starting transport plugins `udp'
Oct 10 17:06:37-287200 transport-22293 INFO Loading `udp' transport plugin
Oct 10 17:06:37-288331 test_transport_api_udp-22277 DEBUG Peer 1 (`HMJ7') started
Oct 10 17:06:37-288370 test_transport_api_udp-22277 DEBUG Test tries to connect peer 1 (`HMJ7') -> peer 2 (`LMH3')
Oct 10 17:06:37-288391 transport-testing-22277 DEBUG New connect request BAE100
Oct 10 17:06:37-288414 transport-testing-22277 ERROR Asking peers 1 (`HMJ7') to connect peer 2 (`LMH3') using HELLO size 312
Oct 10 17:06:37-288730 transport-22293 DEBUG Received HELLO from `LMH3' with size 312
Oct 10 17:06:37-288766 transport-22293 DEBUG Adding `HELLO' without addresses for peer `LMH3'
Oct 10 17:06:37-288797 transport-22293 ERROR Validate address: `131.159.15.30:12050'
Oct 10 17:06:37-288831 transport-22293 DEBUG Transmitting plain PING to `LMH3'
Oct 10 17:06:37-288940 transport-22294 DEBUG Received HELLO from `HMJ7' with size 272
Oct 10 17:06:37-288972 transport-22294 DEBUG Adding `HELLO' without addresses for peer `HMJ7'
Oct 10 17:06:37-288998 transport-22294 DEBUG Received PING from `HMJ7'
Oct 10 17:06:37-300425 transport-22293 ERROR Validate address: `127.0.0.1:12050'
Oct 10 17:06:37-300455 transport-22293 DEBUG Transmitting plain PING to `LMH3'
Oct 10 17:06:37-301295 transport-22294 DEBUG Received HELLO from `HMJ7' with size 272
Oct 10 17:06:37-301366 transport-22294 DEBUG Adding `HELLO' without addresses for peer `HMJ7'
Oct 10 17:06:37-301426 transport-22294 DEBUG Received PING from `HMJ7'
Oct 10 17:06:38-288604 transport-testing-22277 ERROR Asking peers 1 (`HMJ7') to connect peer 2 (`LMH3') using HELLO size 312
Oct 10 17:06:38-288868 transport-22293 DEBUG Received HELLO from `LMH3' with size 312
Oct 10 17:06:38-288936 transport-22293 DEBUG Adding `HELLO' without addresses for peer `LMH3'
Oct 10 17:06:38-288957 transport-22293 ERROR Validate address: `131.159.15.30:12050'
Oct 10 17:06:38-288975 transport-22293 ERROR Cannot validate address, reason: blocked
Oct 10 17:06:38-288987 transport-22293 ERROR Validate address: `127.0.0.1:12050'
Oct 10 17:06:38-289022 transport-22293 ERROR Cannot validate address, reason: blocked
Oct 10 17:06:39-288629 transport-testing-22277 ERROR Asking peers 1 (`HMJ7') to connect peer 2 (`LMH3') using HELLO size 312
Oct 10 17:06:39-288829 transport-22293 DEBUG Received HELLO from `LMH3' with size 312
Oct 10 17:06:39-288854 transport-22293 DEBUG Adding `HELLO' without addresses for peer `LMH3'
Oct 10 17:06:39-288871 transport-22293 ERROR Validate address: `131.159.15.30:12050'
Oct 10 17:06:39-288886 transport-22293 ERROR Cannot validate address, reason: blocked
Oct 10 17:06:39-288901 transport-22293 ERROR Validate address: `127.0.0.1:12050'
Oct 10 17:06:39-288916 transport-22293 ERROR Cannot validate address, reason: blocked
Oct 10 17:06:40-288606 transport-testing-22277 ERROR Asking peers 1 (`HMJ7') to connect peer 2 (`LMH3') using HELLO size 312
Oct 10 17:06:40-288783 transport-22293 DEBUG Received HELLO from `LMH3' with size 312
Oct 10 17:06:40-288807 transport-22293 DEBUG Adding `HELLO' without addresses for peer `LMH3'
Oct 10 17:06:40-288824 transport-22293 ERROR Validate address: `131.159.15.30:12050'
Oct 10 17:06:40-288838 transport-22293 ERROR Cannot validate address, reason: blocked
Oct 10 17:06:40-288850 transport-22293 ERROR Validate address: `127.0.0.1:12050'
Oct 10 17:06:40-288868 transport-22293 ERROR Cannot validate address, reason: blocked
^COct 10 17:06:40-646129 test_transport_api_udp-22277 DEBUG Fail! Stopping peers
Oct 10 17:06:40-646157 test_transport_api_udp-22277 ERROR Fail! Could not connect peers
Oct 10 17:06:40-646173 transport-testing-22277 DEBUG Canceling connect request BAE100!

Matthias Wachs

2011-10-10 17:21

reporter   ~0004697

Last edited: 2011-10-10 18:32

Problem analyzed:

Peer1 sends HELLO without addresses
Peer2 has nothing to validate

Peer1 has new HELLO with addresses but cannot send this HELLO since validation is blocked...

Matthias Wachs

2011-10-10 17:34

reporter   ~0004698

Additional issue:

Peer2 could not send PONG using PING address since UDP & UNIX cannot/do not send PONGs in GST_validation_handle_ping() since
reliable existing bi-directional connections should be used (regardless of address)

        papi->send (papi->cls, sender, (const char *) pong,
                    ntohs (pong->header.size), PONG_PRIORITY,
                    HELLO_REVALIDATION_START_TIME, session, sender_address,
                    sender_address_len, --> GNUNET_SYSERR <--, NULL, NULL);

Matthias Wachs

2011-10-10 18:32

reporter   ~0004699

Additional information:

transport service startup is not in a strict order...

address notifications arrive after transport service is completely started ...

Matthias Wachs

2011-10-12 12:10

reporter   ~0004703

udp plugin is not stateless anymore and force_address==GNUNET_SYSERR is allowed

force_address==GNUNET_SYSERR uses inbound session created when peer has sent udp message to this address before

Issue History

Date Modified Username Field Change
2011-10-09 10:13 Matthias Wachs New Issue
2011-10-09 10:13 Matthias Wachs Status new => assigned
2011-10-09 10:13 Matthias Wachs Assigned To => Matthias Wachs
2011-10-10 17:19 Matthias Wachs Note Added: 0004696
2011-10-10 17:21 Matthias Wachs Note Added: 0004697
2011-10-10 17:34 Matthias Wachs Note Added: 0004698
2011-10-10 18:32 Matthias Wachs Note Added: 0004699
2011-10-10 18:32 Matthias Wachs Note Edited: 0004697
2011-10-12 11:31 Christian Grothoff Priority normal => urgent
2011-10-12 12:10 Matthias Wachs Note Added: 0004703
2011-10-12 12:10 Matthias Wachs Status assigned => closed
2011-10-12 12:10 Matthias Wachs Resolution open => fixed
2011-10-12 12:10 Matthias Wachs Status closed => feedback
2011-10-12 12:10 Matthias Wachs Resolution fixed => reopened
2011-10-12 12:10 Matthias Wachs Status feedback => resolved
2011-10-12 12:10 Matthias Wachs Resolution reopened => fixed
2011-10-31 12:00 Christian Grothoff Status resolved => closed