View Issue Details

IDProjectCategoryView StatusLast Update
0001736GNUnettransport servicepublic2011-09-19 10:45
Reportermrwiggles Assigned ToMatthias Wachs  
PrioritynormalSeveritycrashReproducibilitysometimes
Status closedResolutionfixed 
Product VersionGit master 
Summary0001736: Transport crash on peer restart
DescriptionPeer was connected to 20 peers, then shutdown, then started again. Transport crashed after a few seconds running...


#3 0xb74ca82b in tcp_plugin_send (cls=0x805ffc8, target=0x8180488, msg=0x81804dc "\022
TagsNo tags attached.

Activities

mrwiggles

2011-07-15 13:51

reporter   ~0004507

Something to do with shutdown?

Invalid read of size 8
==3035== at 0x402F84: find_transport (gnunet-service-transport.c:1040)
==3035== by 0x403D78: a2s (gnunet-service-transport.c:1361)
==3035== by 0x40678D: plugin_env_notify_address (gnunet-service-transport.c:2589)
==3035== by 0x6EBA345: tcp_nat_cb_remove_addr (plugin_transport_http.c:3048)
==3035== by 0x6EBA52A: tcp_nat_port_map_callback (plugin_transport_http.c:3092)
==3035== by 0x6AAB14C: GNUNET_NAT_unregister (nat.c:1383)
==3035== by 0x6EBA5A6: libgnunet_plugin_transport_http_done (plugin_transport_http.c:3128)
==3035== by 0x5464928: GNUNET_PLUGIN_unload (plugin.c:272)
==3035== by 0x40EAB5: shutdown_task (gnunet-service-transport.c:6280)
==3035== by 0x546910D: run_ready (scheduler.c:648)
==3035== by 0x5469510: GNUNET_SCHEDULER_run (scheduler.c:795)
==3035== by 0x547112F: GNUNET_SERVICE_run (service.c:1627)
==3035== Address 0x6518c50 is 16 bytes inside a block of size 160 free'd
==3035== at 0x4C268FE: free (vg_replace_malloc.c:366)
==3035== by 0x5448BF1: GNUNET_xfree_ (common_allocation.c:196)
==3035== by 0x40EB74: shutdown_task (gnunet-service-transport.c:6289)
==3035== by 0x546910D: run_ready (scheduler.c:648)
==3035== by 0x5469510: GNUNET_SCHEDULER_run (scheduler.c:795)
==3035== by 0x547112F: GNUNET_SERVICE_run (service.c:1627)
==3035== by 0x40FF95: main (gnunet-service-transport.c:6802)
==3035==
==3035== Invalid read of size 1
==3035== at 0x4C28CB4: strcmp (mc_replace_strmem.c:538)
==3035== by 0x402F96: find_transport (gnunet-service-transport.c:1040)
==3035== by 0x403D78: a2s (gnunet-service-transport.c:1361)
==3035== by 0x40678D: plugin_env_notify_address (gnunet-service-transport.c:2589)
==3035== by 0x6EBA345: tcp_nat_cb_remove_addr (plugin_transport_http.c:3048)
==3035== by 0x6EBA52A: tcp_nat_port_map_callback (plugin_transport_http.c:3092)
==3035== by 0x6AAB14C: GNUNET_NAT_unregister (nat.c:1383)
==3035== by 0x6EBA5A6: libgnunet_plugin_transport_http_done (plugin_transport_http.c:3128)
==3035== by 0x5464928: GNUNET_PLUGIN_unload (plugin.c:272)
==3035== by 0x40EAB5: shutdown_task (gnunet-service-transport.c:6280)
==3035== by 0x546910D: run_ready (scheduler.c:648)
==3035== by 0x5469510: GNUNET_SCHEDULER_run (scheduler.c:795)
==3035== Address 0x6518d20 is 0 bytes inside a block of size 6 free'd
==3035== at 0x4C268FE: free (vg_replace_malloc.c:366)
==3035== by 0x5448BF1: GNUNET_xfree_ (common_allocation.c:196)
==3035== by 0x40EB19: shutdown_task (gnunet-service-transport.c:6282)
==3035== by 0x546910D: run_ready (scheduler.c:648)
==3035== by 0x5469510: GNUNET_SCHEDULER_run (scheduler.c:795)
==3035== by 0x547112F: GNUNET_SERVICE_run (service.c:1627)
==3035== by 0x40FF95: main (gnunet-service-transport.c:6802)

mrwiggles

2011-07-15 16:15

reporter   ~0004515

#2 0x00000000068a405a in tcp_plugin_send (cls=0x64c2750, target=0x944da20, msg=0x944da78 "\001\360", msgbuf_size=496, priority=0, timeout=...,
    session=0x94384f0, addr=0x9437cc0, addrlen=6, force_address=0, cont=0x404470 <transmit_send_continuation>, cont_cls=0x944d9f0)
    at plugin_transport_tcp.c:1199
#3 0x0000000000404f7d in try_transmission_to_peer (n=0x9436300) at gnunet-service-transport.c:1757
#4 0x0000000000405366 in transmit_to_peer (client=0x65d2ef0, peer_address=0x0, priority=0, timeout=..., message_buf=0x927b508 "\001\360",
    message_buf_size=496, is_internal=0, neighbour=0x9436300) at gnunet-service-transport.c:1845
#5 0x000000000040d64d in transmit_client_message (cls=0x927b4f0, n=0x9436300) at gnunet-service-transport.c:5660
#6 0x0000000000408002 in setup_peer_check_blacklist (peer=0x7feff0020, do_hello=1, cont=0x40d5a4 <transmit_client_message>, cont_cls=0x927b4f0)
    at gnunet-service-transport.c:3511
#7 0x000000000040d83a in handle_send (cls=0x0, client=0x65d08a0, message=0x7feff0010) at gnunet-service-transport.c:5719
#8 0x000000000546afc4 in GNUNET_SERVER_inject (server=0x64b8650, sender=0x65d08a0, message=0x7feff0010) at server.c:721
#9 0x000000000546b420 in client_message_tokenizer_callback (cls=0x64b8650, client=0x65d08a0, message=0x7feff0010) at server.c:961
#10 0x000000000546c1a7 in GNUNET_SERVER_mst_receive (mst=0x65d0960, client_identity=0x65d08a0, buf=0x7feff0010 "\002@", size=576, purge=0, one_shot=-1)
    at server_mst.c:271
#11 0x000000000546b301 in process_incoming (cls=0x65d08a0, buf=0x7feff0010, available=576, addr=0x65d06e0, addrlen=2, errCode=0) at server.c:889
#12 0x000000000544e47d in receive_ready (cls=0x65d0730, tc=0x7ff0000a0) at connection.c:1213
#13 0x00000000054690ba in run_ready (rs=0x64b7ec0, ws=0x64b7f90) at scheduler.c:648
#14 0x00000000054694bd in GNUNET_SCHEDULER_run (task=0x547017e <service_task>, task_cls=0x7ff000350) at scheduler.c:795
#15 0x00000000054710dc in GNUNET_SERVICE_run (argc=5, argv=0x7ff000568, serviceName=0x412d58 "transport", opt=GNUNET_SERVICE_OPTION_NONE,
    task=0x40f649 <run>, task_cls=0x0) at service.c:1627
#16 0x000000000040fff7 in main (argc=5, argv=0x7ff000568) at gnunet-service-transport.c:6812

Matthias Wachs

2011-07-15 16:45

reporter   ~0004516

Guessing: After reconnect, transport service uses old session, altready freed in the plugin?

root

2011-08-04 09:40

administrator   ~0004546

Added a break at plugin_transport_tcp.c:1201 to help diagnose.

Christian Grothoff

2011-09-14 13:18

manager   ~0004571

Code was completely rewritten, so this should no longer be relevant.

Issue History

Date Modified Username Field Change
2011-07-14 13:32 mrwiggles New Issue
2011-07-14 13:32 mrwiggles Status new => assigned
2011-07-14 13:32 mrwiggles Assigned To => Matthias Wachs
2011-07-15 13:51 mrwiggles Note Added: 0004507
2011-07-15 16:15 mrwiggles Note Added: 0004515
2011-07-15 16:45 Matthias Wachs Note Added: 0004516
2011-08-04 09:40 root Note Added: 0004546
2011-09-14 13:18 Christian Grothoff Note Added: 0004571
2011-09-14 13:18 Christian Grothoff Status assigned => closed
2011-09-14 13:18 Christian Grothoff Resolution open => fixed
2011-09-14 13:18 Christian Grothoff Fixed in Version => Git master
2011-09-19 10:45 Christian Grothoff Fixed in Version Git master => 0.9.0pre3
2011-09-19 10:45 Christian Grothoff Target Version => 0.9.0pre3