View Issue Details

IDProjectCategoryView StatusLast Update
0001887GNUnettransport servicepublic2011-11-30 18:38
ReporterLRN Assigned ToChristian Grothoff  
PrioritynormalSeveritycrashReproducibilityalways
Status closedResolutionfixed 
Product VersionGit master 
Target Version0.9.0Fixed in Version0.9.0 
Summary0001887: transport service crashes in every test
Descriptionsee the attached crashinfo.txt
TagsNo tags attached.
Attached Files
crashinfo.txt (3,568 bytes)   
Attaching to process 12900
[New Thread 12900.0x318c]
[New Thread 12900.0x282c]
[New Thread 12900.0xc38]
[New Thread 12900.0x2f34]
[New Thread 12900.0x3184]
Reading symbols from d:\progs\gnunet\bin\gnunet-service-transport.exe...done.
[Switching to Thread 12900.0x3184]
Continuing.

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 12900.0x318c]
0x772515ee in ntdll!LdrQueryProcessModuleInformation () from E:\Windows\SysWOW64\ntdll.dll
[Switching to thread 1 (Thread 12900.0x318c)]
#0  0x772515ee in ntdll!LdrQueryProcessModuleInformation () from E:\Windows\SysWOW64\ntdll.dll
#0  0x772515ee in ntdll!LdrQueryProcessModuleInformation () from E:\Windows\SysWOW64\ntdll.dll
#1  0x772515ee in ntdll!LdrQueryProcessModuleInformation () from E:\Windows\SysWOW64\ntdll.dll
#2  0x7724015e in ntdll!LdrFindResource_U () from E:\Windows\SysWOW64\ntdll.dll
#3  0x0028f53c in ?? ()
#4  0x0040fffd in find_validation_entry (public_key=0x0, neighbour=0x1d429bc, tname=0x1d45818 "tcp", addr=0x1d45828 "$", addrlen=0)
    at gnunet-service-transport_validation.c:601
#5  0x00411c60 in GST_validation_set_address_use (sender=0x1d429bc, plugin_name=0x1d45818 "tcp", session=0x1d2d5c0, sender_address=0x1d45828,
    sender_address_len=0, in_use=0) at gnunet-service-transport_validation.c:1207
#6  0x00409868 in _fu347__skip_log () at gnunet-service-transport_neighbours.c:873
#7  0x0040a27c in _fu371__skip_log () at gnunet-service-transport_neighbours.c:1019
#8  0x62494948 in GNUNET_CONTAINER_multihashmap_iterate (map=0x1d2d178, it=0x40a19b <disconnect_all_neighbours>, it_cls=0x0)
    at container_multihashmap.c:213
#9  0x0040a369 in GST_neighbours_stop () at gnunet-service-transport_neighbours.c:1050
#10 0x0040200d in shutdown_task (cls=0x0, tc=0x28fc90) at gnunet-service-transport.c:454
#11 0x624b3b9b in run_ready (rs=0x1d2c348, ws=0x1d2c460) at scheduler.c:684
#12 0x624b42e3 in GNUNET_SCHEDULER_run (task=0x624be19c <service_task>, task_cls=0x28fe28) at scheduler.c:864
#13 0x624bee80 in GNUNET_SERVICE_run (argc=3, argv=0x1d2a138, serviceName=0x414293 "transport", opt=GNUNET_SERVICE_OPTION_NONE,
    task=0x4020a2 <run>, task_cls=0x0) at service.c:1584
#14 0x0040240f in main (argc=3, argv=0x1d2a138) at gnunet-service-transport.c:556
(gdb) up 4
#4  0x0040fffd in find_validation_entry (public_key=0x0, neighbour=0x1d429bc, tname=0x1d45818 "tcp", addr=0x1d45828 "$", addrlen=0)
    at gnunet-service-transport_validation.c:601
601       GNUNET_CONTAINER_multihashmap_get_multiple (validation_map,
(gdb) l
596
597       vemc.ve = NULL;
598       vemc.transport_name = tname;
599       vemc.addr = addr;
600       vemc.addrlen = addrlen;
601       GNUNET_CONTAINER_multihashmap_get_multiple (validation_map,
602                                                   &neighbour->hashPubKey,
603                                                   &validation_entry_match, &vemc);
604       if (NULL != (ve = vemc.ve))
605         return ve;
(gdb) l *((DWORD*)0x0028f53c)[3]
0x62494ea4 is in GNUNET_CONTAINER_multihashmap_get_multiple (container_multihashmap.c:479).
474       int count;
475       struct MapEntry *e;
476       struct MapEntry *n;
477
478       count = 0;
479       n = map->map[idx_of (map, key)];
480       while (NULL != (e = n))
481       {
482         n = e->next;
483         if (0 != memcmp (key, &e->key, sizeof (GNUNET_HashCode)))
(gdb) p *validation_map
Cannot access memory at address 0x0
(gdb) p validation_map
$1 = (struct GNUNET_CONTAINER_MultiHashMap *) 0x0
crashinfo.txt (3,568 bytes)   
0001-Try-to-fix-1887.patch (935 bytes)   
From 2c0752f65a053407dad16b4b7e7389177adadbe7 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=D0=A0=D1=83=D1=81=D0=BB=D0=B0=D0=BD=20=D0=98=D0=B6=D0=B1=D1?=
 =?UTF-8?q?=83=D0=BB=D0=B0=D1=82=D0=BE=D0=B2?= <lrn1986@gmail.com>
Date: Tue, 8 Nov 2011 16:17:27 +0400
Subject: [PATCH] Try to fix #1887

---
 src/transport/gnunet-service-transport.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/src/transport/gnunet-service-transport.c b/src/transport/gnunet-service-transport.c
index 11a8e23..5c9c69c 100644
--- a/src/transport/gnunet-service-transport.c
+++ b/src/transport/gnunet-service-transport.c
@@ -450,8 +450,8 @@ neighbours_disconnect_notification (void *cls,
 static void
 shutdown_task (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
 {
-  GST_validation_stop ();
   GST_neighbours_stop ();
+  GST_validation_stop ();
   GST_plugins_unload ();
 
   GNUNET_ATS_scheduling_done (GST_ats);
-- 
1.7.4

0001-Try-to-fix-1887.patch (935 bytes)   

Activities

LRN

2011-11-08 13:32

reporter   ~0004883

0001-Try-to-fix-1887.patch should to the trick.

Christian Grothoff

2011-11-09 15:18

manager   ~0004892

I pretty much applied an equivalent patch earlier today. So this should be fixed by now.

Issue History

Date Modified Username Field Change
2011-11-08 13:05 LRN New Issue
2011-11-08 13:05 LRN Status new => assigned
2011-11-08 13:05 LRN Assigned To => Matthias Wachs
2011-11-08 13:05 LRN File Added: crashinfo.txt
2011-11-08 13:31 LRN File Added: 0001-Try-to-fix-1887.patch
2011-11-08 13:32 LRN Note Added: 0004883
2011-11-09 15:18 Christian Grothoff Note Added: 0004892
2011-11-09 15:18 Christian Grothoff Status assigned => resolved
2011-11-09 15:18 Christian Grothoff Fixed in Version => 0.9.0
2011-11-09 15:18 Christian Grothoff Resolution open => fixed
2011-11-09 15:18 Christian Grothoff Assigned To Matthias Wachs => Christian Grothoff
2011-11-29 14:46 Christian Grothoff Target Version => 0.9.0
2011-11-30 18:38 Christian Grothoff Status resolved => closed