gnunet-svn
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[GNUnet-SVN] r35767 - gnunet/src/fs


From: gnunet
Subject: [GNUnet-SVN] r35767 - gnunet/src/fs
Date: Thu, 21 May 2015 12:07:58 +0200

Author: grothoff
Date: 2015-05-21 12:07:58 +0200 (Thu, 21 May 2015)
New Revision: 35767

Modified:
   gnunet/src/fs/gnunet-service-fs_cp.c
   gnunet/src/fs/gnunet-service-fs_push.c
Log:
with respect to #3615: we might (theoretically) get a migration stop before we 
finished the peerstore lookup; in that case, we would do a GSF_push_start() 
twice (once via revive migration, and once from peerstore lookup succeeding), 
and then on disconnect only stop once, keeping the migration going for a 
disconnected peer.  That still does not explain the bug report, as the '*cp' in 
the report doesn't show BADFOOD, and we'd expect a free'd cp in this case to be 
used for the transmission. Still, this is a possible issue which can be fixed 
by ignoring migration stop messages until after peerstore lookup succeeded

Modified: gnunet/src/fs/gnunet-service-fs_cp.c
===================================================================
--- gnunet/src/fs/gnunet-service-fs_cp.c        2015-05-21 09:54:13 UTC (rev 
35766)
+++ gnunet/src/fs/gnunet-service-fs_cp.c        2015-05-21 10:07:58 UTC (rev 
35767)
@@ -741,7 +741,8 @@
               GNUNET_i2s (other),
              GNUNET_STRINGS_relative_time_to_string (bt, GNUNET_YES));
   cp->ppd.migration_blocked_until = GNUNET_TIME_relative_to_absolute (bt);
-  if (NULL == cp->mig_revive_task)
+  if ( (NULL == cp->mig_revive_task) &&
+       (NULL == cp->respect_iterate_req) )
   {
     GSF_push_stop_ (cp);
     cp->mig_revive_task =

Modified: gnunet/src/fs/gnunet-service-fs_push.c
===================================================================
--- gnunet/src/fs/gnunet-service-fs_push.c      2015-05-21 09:54:13 UTC (rev 
35766)
+++ gnunet/src/fs/gnunet-service-fs_push.c      2015-05-21 10:07:58 UTC (rev 
35767)
@@ -611,6 +611,7 @@
       break;
   if (NULL != mrp)
   {
+    /* same peer added twice, must not happen */
     GNUNET_break (0);
     return;
   }




reply via email to

[Prev in Thread] Current Thread [Next in Thread]