.stversions: folders are written, files not (Staggered File Versioning)

Hello,

Device-A Win7, 1.1.4 
Device-B Mac OSX Sierra, 1.1.4
Both have Staggered File Versioning set up.

Since some versions (say 2-3 months?) of syncthing I recognize, that locally deleted files from Device A will not moved (and suffixed with a timestamp) to the .stversions folder of Device B anymore, and vice versa.

Additional strangeness, this does not happen with all files, but with mostly all. (means, some files are moved to the “trash”, some are not…and just vanish. BUT the folder those files were located is always written to the “trash”/.stversions folder, so I have empty folders)

It might help, that I point out, that those folders are on the same NTFS harddrive (P:), where Folder P uses the whole P:\ Folder P_test only uses P:\test. I think I configured it well using .stignores, but who knows…

Folder P_test is synced to Device A <-> Device B

Folder P is synced to another Device, not available atm.

Here is my config.xml (parts of it)

<configuration version="28">
    <folder id="foo" label="foo" path="P:\" type="sendonly" rescanIntervalS="10800" fsWatcherEnabled="true" fsWatcherDelayS="60" ignorePerms="true" autoNormalize="true">
        <filesystemType>basic</filesystemType>
        <minDiskFree unit="GB">1</minDiskFree>
        <versioning type="staggered">
            <param key="cleanInterval" val="3600"></param>
            <param key="maxAge" val="31536000"></param>
            <param key="versionsPath" val=""></param>
        </versioning>
        <copiers>0</copiers>
        <pullerMaxPendingKiB>0</pullerMaxPendingKiB>
        <hashers>1</hashers>
        <order>random</order>
        <ignoreDelete>false</ignoreDelete>
        <scanProgressIntervalS>0</scanProgressIntervalS>
        <pullerPauseS>0</pullerPauseS>
        <maxConflicts>-1</maxConflicts>
        <disableSparseFiles>false</disableSparseFiles>
        <disableTempIndexes>false</disableTempIndexes>
        <paused>false</paused>
        <weakHashThresholdPct>25</weakHashThresholdPct>
        <markerName>.stfolder</markerName>
        <useLargeBlocks>true</useLargeBlocks>
        <copyOwnershipFromParent>false</copyOwnershipFromParent>
    </folder>
    <folder id="P_test" label="P_test" path="P:\Test" type="sendreceive" rescanIntervalS="360" fsWatcherEnabled="true" fsWatcherDelayS="20" ignorePerms="true" autoNormalize="true">
        <filesystemType>basic</filesystemType>
        <minDiskFree unit="GB">1</minDiskFree>
        <versioning type="staggered">
            <param key="versionsPath" val=""></param>
            <param key="cleanInterval" val="3600"></param>
            <param key="maxAge" val="2592000"></param>
        </versioning>
        <copiers>0</copiers>
        <pullerMaxPendingKiB>0</pullerMaxPendingKiB>
        <hashers>1</hashers>
        <order>random</order>
        <ignoreDelete>false</ignoreDelete>
        <scanProgressIntervalS>0</scanProgressIntervalS>
        <pullerPauseS>0</pullerPauseS>
        <maxConflicts>10</maxConflicts>
        <disableSparseFiles>false</disableSparseFiles>
        <disableTempIndexes>false</disableTempIndexes>
        <paused>false</paused>
        <weakHashThresholdPct>25</weakHashThresholdPct>
        <markerName>.stfolder</markerName>
        <useLargeBlocks>true</useLargeBlocks>
        <copyOwnershipFromParent>false</copyOwnershipFromParent>
    </folder>
     <ldap></ldap>
    <options>
        <listenAddress>default</listenAddress>
        <globalAnnounceServer>default</globalAnnounceServer>
        <globalAnnounceEnabled>true</globalAnnounceEnabled>
        <localAnnounceEnabled>true</localAnnounceEnabled>
        <localAnnouncePort>21027</localAnnouncePort>
        <localAnnounceMCAddr>[ff12::8384]:21027</localAnnounceMCAddr>
        <maxSendKbps>0</maxSendKbps>
        <maxRecvKbps>0</maxRecvKbps>
        <reconnectionIntervalS>60</reconnectionIntervalS>
        <relaysEnabled>true</relaysEnabled>
        <relayReconnectIntervalM>10</relayReconnectIntervalM>
        <startBrowser>false</startBrowser>
        <natEnabled>true</natEnabled>
        <natLeaseMinutes>60</natLeaseMinutes>
        <natRenewalMinutes>30</natRenewalMinutes>
        <natTimeoutSeconds>10</natTimeoutSeconds>
        <urAccepted>3</urAccepted>
        <urSeen>3</urSeen>
        <urUniqueID>myuid</urUniqueID>
        <urURL>https://data.syncthing.net/newdata</urURL>
        <urPostInsecurely>false</urPostInsecurely>
        <urInitialDelayS>1800</urInitialDelayS>
        <restartOnWakeup>true</restartOnWakeup>
        <autoUpgradeIntervalH>12</autoUpgradeIntervalH>
        <upgradeToPreReleases>false</upgradeToPreReleases>
        <keepTemporariesH>24</keepTemporariesH>
        <cacheIgnoredFiles>false</cacheIgnoredFiles>
        <progressUpdateIntervalS>5</progressUpdateIntervalS>
        <limitBandwidthInLan>false</limitBandwidthInLan>
        <minHomeDiskFree unit="GB">1</minHomeDiskFree>
        <releasesURL>https://upgrades.syncthing.net/meta.json</releasesURL>
        <overwriteRemoteDeviceNamesOnConnect>false</overwriteRemoteDeviceNamesOnConnect>
        <tempIndexMinBlocks>10</tempIndexMinBlocks>
        <trafficClass>0</trafficClass>
        <defaultFolderPath>~</defaultFolderPath>
        <setLowPriority>true</setLowPriority>
        <maxConcurrentScans>0</maxConcurrentScans>
    </options>
</configuration>

Those are the ignores:

.stignore for Folder P and Folder P_test contain:

!.stignore_global
!.stignore_specific

#include .stignore_global
#include .stignore_specific

The “.stignore_specific” ignores are here:

Folder P_test has only one single line containing a comment //

Folder P ignores those 3 directories:

/Test
/iCloud Test
/System Volume Information

I can reproduce it quite often (I just delete a file from Folder P or Folder P_test, wait or rescan those Folders and check the .stversion directory. Only the directory is written, from where I deleted the files, not the files itself.

Any Idea? (Or more info I need to provide. I have no informative logs, because I do not know what to debug exactly)

P.S. There is another Issue with the file versioning here: https://github.com/syncthing/syncthing/issues/5835

1 Like

Again, try the RC, there was a fix related to this.

Nice, it looks like its gone with the new version (v1.2.0). Thank you!