]> Sergey Matveev's repositories - btrtrc.git/commitdiff
Synchronize piece completion on piece hash failure
authorMatt Joiner <anacrolix@gmail.com>
Sun, 28 Jan 2018 05:02:14 +0000 (16:02 +1100)
committerMatt Joiner <anacrolix@gmail.com>
Sun, 28 Jan 2018 05:02:14 +0000 (16:02 +1100)
Pieces that were unknown, remained unknown despite hashing for that very reason.

torrent.go

index 976a04e3ca692bbe0d97dee719060e7a31f7c7ef..f342de225cbef828011bdee74cb28be111bcafb7 100644 (file)
@@ -1486,7 +1486,6 @@ func (t *Torrent) pieceHashed(piece int, correct bool) {
                if err != nil {
                        log.Printf("%T: error marking piece complete %d: %s", t.storage, piece, err)
                }
-               t.updatePieceCompletion(piece)
        } else {
                if len(touchers) != 0 {
                        for _, c := range touchers {
@@ -1507,7 +1506,9 @@ func (t *Torrent) pieceHashed(piece int, correct bool) {
                        c.Drop()
                }
                t.onIncompletePiece(piece)
+               p.Storage().MarkNotComplete()
        }
+       t.updatePieceCompletion(piece)
 }
 
 func (t *Torrent) cancelRequestsForPiece(piece int) {