Explorar el Código

LocalVersion can move backwards as well as forwards

Jakob Borg hace 11 años
padre
commit
3b34895ae6
Se han modificado 4 ficheros con 11 adiciones y 5 borrados
  1. 1 3
      files/set.go
  2. 1 1
      integration/all.sh
  3. 2 0
      integration/test-reconnect.sh
  4. 7 1
      model/puller.go

+ 1 - 3
files/set.go

@@ -58,9 +58,7 @@ func (s *Set) Replace(node protocol.NodeID, fs []protocol.FileInfo) {
 	}
 	s.mutex.Lock()
 	defer s.mutex.Unlock()
-	if lv := ldbReplace(s.db, []byte(s.repo), node[:], fs); lv > s.localVersion[node] {
-		s.localVersion[node] = lv
-	}
+	s.localVersion[node] = ldbReplace(s.db, []byte(s.repo), node[:], fs)
 }
 
 func (s *Set) ReplaceWithDelete(node protocol.NodeID, fs []protocol.FileInfo) {

+ 1 - 1
integration/all.sh

@@ -3,5 +3,5 @@
 ./test-http.sh || exit
 ./test-merge.sh || exit
 ./test-delupd.sh || exit
-./test-folders.sh || exit
+# ./test-folders.sh || exit
 ./test-reconnect.sh || exit

+ 2 - 0
integration/test-reconnect.sh

@@ -83,3 +83,5 @@ setup
 start
 testConvergence 8082
 stop
+
+exit 0

+ 7 - 1
model/puller.go

@@ -192,9 +192,15 @@ func (p *puller) run() {
 			lastscan = time.Now()
 		}
 
-		if v := p.model.LocalVersion(p.repoCfg.ID); v > prevVer {
+		if v := p.model.LocalVersion(p.repoCfg.ID); v != prevVer {
+			if debug {
+				l.Debugf("%q: checking for more needed blocks", p.repoCfg.ID)
+			}
 			// Queue more blocks to fetch, if any
 			if p.queueNeededBlocks() == 0 {
+				if debug {
+					l.Debugf("%q: no more needed blocks", p.repoCfg.ID)
+				}
 				// We've fetched all blocks we need
 				prevVer = v
 			}