Partially downloaded files not syncing to peers

Hi there,

Just hoping someone might be able to help clarify how Syncthing manages the announcements of partially downloaded files. I have tempindexes enabled but for some reason if a peer has a large (60GB+) file, the other peers will only ever download from that specific peer, even though other peers may have almost half the file at that point. Once any other peers finish completely downloading it, they become a source for the others and everything speeds up. I’ve probably not explained that particularly well.

I have 6 peers, all on the same hardware (Intel based NAS, 6-bay RAID, Debian Buster, Syncthing 1.18.1). Config is pretty standard, only non-standard change is setting envvar to limit Go usable CPU cores to 2.

Does Syncthing announce partial files using the same RemoteIndexUpdated event as with full files? Is there any other config options that may affect whether partial downloads are seeded? These are the ones I could find that may affect this:

        <order>random</order>
        <disableTempIndexes>false</disableTempIndexes>
        <blockPullOrder>standard</blockPullOrder>
        <copyRangeMethod>standard</copyRangeMethod>
        <tempIndexMinBlocks>10</tempIndexMinBlocks>

Any help or clarification would be greatly appreciated Thanks! Jon

1 Like

Is that the same settings on all devices?

You could enable model debugging to see if the temp index messages are flying around or not.

Hi Audrius

Thanks for the reply. Same settings on all peers (managed via API from a central server)

With Model on i see: SharedPullerState Completion REQ(out)

With Protocol: download-progress and download-progress -message. Would this be how St communicates file completion?

Also If I may ask. On one peer (call it peer1) i’ve tried pausing all other peers except one (the one left connected is 70% through a download that peer1 needs). peer1 shows out of sync despite having 70% available to download from the other peer. This is what is confusing me somewhat! :slight_smile:

Thanks, Jon

The latter at least is expected; Syncthing won’t attempt to sync a file unless it’s (fully) available from somewhere.

Thanks Jakob, I did wonder if that was the case.