fixing crash of mesh service -- reproduced by regex profiler w 100 peers -- on shutdo...
authorChristian Grothoff <christian@grothoff.org>
Wed, 14 Nov 2012 15:53:47 +0000 (15:53 +0000)
committerChristian Grothoff <christian@grothoff.org>
Wed, 14 Nov 2012 15:53:47 +0000 (15:53 +0000)
src/dht/dht_api.c
src/dht/gnunet-service-dht_clients.c
src/dht/gnunet-service-dht_neighbours.c

index f469007784aa40a9bef9d8f7ecd2499a9be06d4b..0e709a83ff72785d8b5ffeddd7abb8b07a1b50dd 100644 (file)
@@ -1268,6 +1268,7 @@ GNUNET_DHT_get_start (struct GNUNET_DHT_Handle *handle,
                                pending);
   pending->in_pending_queue = GNUNET_YES;
   get_handle = GNUNET_malloc (sizeof (struct GNUNET_DHT_GetHandle));
+  get_handle->dht_handle = handle;
   get_handle->iter = iter;
   get_handle->iter_cls = iter_cls;
   get_handle->message = pending;
index 85cdf8252a9881a7d1783a0aae61d71fb27bbda2..0e309e59e26b9fe7521c96755ac7835b887feb8a 100644 (file)
 #include "dht.h"
 
 
+/**
+ * Should routing details be logged to stderr (for debugging)?
+ */
+#define LOG_ROUTE_DETAILS_STDERR GNUNET_YES
+
+
 /**
  * Linked list of messages to send to clients.
  */
@@ -581,6 +587,16 @@ handle_dht_local_get (void *cls, struct GNUNET_SERVER_Client *client,
   GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
               "Received request for %s from local client %p\n",
               GNUNET_h2s (&get->key), client);
+
+  if (LOG_ROUTE_DETAILS_STDERR)
+  {
+    fprintf (stderr, 
+            "XDHT CLIENT-GET %s @ %u\n", 
+            GNUNET_h2s (&get->key), 
+            getpid ());
+  }
+
+
   cqr = GNUNET_malloc (sizeof (struct ClientQueryRecord) + xquery_size);
   cqr->key = get->key;
   cqr->client = find_active_client (client);
@@ -1002,6 +1018,13 @@ forward_reply (void *cls, const struct GNUNET_HashCode * key, void *value)
   struct GNUNET_HashCode ch;
   unsigned int i;
 
+  if (LOG_ROUTE_DETAILS_STDERR)
+  {
+    fprintf (stderr, 
+            "XDHT CLIENT-RESULT %s @ %u\n", 
+            GNUNET_h2s (key), 
+            getpid ());
+  }
   if ((record->type != GNUNET_BLOCK_TYPE_ANY) && (record->type != frc->type))
   {
     GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
index 5d11e55ae3f75afe31229dad541e4cd5a4dfefd8..ea4baa9e9bb5c58d56f178848ddf380fd768c436 100644 (file)
@@ -97,7 +97,7 @@
 /**
  * Should routing details be logged to stderr (for debugging)?
  */
-#define LOG_ROUTE_DETAILS_STDERR GNUNET_NO
+#define LOG_ROUTE_DETAILS_STDERR GNUNET_YES
 
 
 GNUNET_NETWORK_STRUCT_BEGIN
@@ -1598,7 +1598,9 @@ handle_dht_p2p_put (void *cls, const struct GNUNET_PeerIdentity *peer,
     char *tmp;
     
     tmp = GNUNET_strdup (GNUNET_i2s (&my_identity));
-    fprintf (stderr, "XDHT PUT %s: %s<-%s\n", GNUNET_h2s (&put->key), tmp, GNUNET_i2s (peer));
+    fprintf (stderr, "XDHT PUT %s: %s(%u)<-%s\n", 
+            GNUNET_h2s (&put->key), tmp, getpid (),
+            GNUNET_i2s (peer));
     GNUNET_free (tmp);                                                                                
   }
 
@@ -1855,7 +1857,9 @@ handle_dht_p2p_get (void *cls, const struct GNUNET_PeerIdentity *peer,
     char *tmp;
     
     tmp = GNUNET_strdup (GNUNET_i2s (&my_identity));
-    fprintf (stderr, "XDHT GET %s: %s<-%s\n", GNUNET_h2s (&get->key), tmp, GNUNET_i2s (peer));
+    fprintf (stderr, "XDHT GET %s: %s(%u)<-%s\n", 
+            GNUNET_h2s (&get->key), tmp, getpid(),
+            GNUNET_i2s (peer));
     GNUNET_free (tmp);                                                                                
   }
 
@@ -1989,7 +1993,10 @@ handle_dht_p2p_result (void *cls, const struct GNUNET_PeerIdentity *peer,
     char *tmp;
     
     tmp = GNUNET_strdup (GNUNET_i2s (&my_identity));
-    fprintf (stderr, "XDHT RESULT %s: %s<-%s\n", GNUNET_h2s (&prm->key), tmp, GNUNET_i2s (peer));
+    fprintf (stderr, 
+            "XDHT RESULT %s: %s(%u)<-%s\n", 
+            GNUNET_h2s (&prm->key), tmp, 
+            getpid(), GNUNET_i2s (peer));
     GNUNET_free (tmp);                                                                                
   }