test: Mend tests for latest event changes etc

This commit is contained in:
Jakob Borg 2017-11-12 23:28:45 +01:00
parent 72c5f2e5c6
commit 6e148e20cd
8 changed files with 212 additions and 87 deletions

View File

@ -213,7 +213,7 @@ type Event struct {
} }
func (p *Process) Events(since int) ([]Event, error) { func (p *Process) Events(since int) ([]Event, error) {
bs, err := p.Get(fmt.Sprintf("/rest/events?since=%d", since)) bs, err := p.Get(fmt.Sprintf("/rest/events?since=%d&timeout=10", since))
if err != nil { if err != nil {
return nil, err return nil, err
} }
@ -291,6 +291,16 @@ func (p *Process) ResumeDevice(dev protocol.DeviceID) error {
return err return err
} }
func (p *Process) PauseAll() error {
_, err := p.Post("/rest/system/pause", nil)
return err
}
func (p *Process) ResumeAll() error {
_, err := p.Post("/rest/system/resume", nil)
return err
}
func InSync(folder string, ps ...*Process) bool { func InSync(folder string, ps ...*Process) bool {
for _, p := range ps { for _, p := range ps {
p.eventMut.Lock() p.eventMut.Lock()
@ -314,10 +324,12 @@ func InSync(folder string, ps ...*Process) bool {
sourceID := ps[i].id.String() sourceID := ps[i].id.String()
sourceSeq := ps[i].sequence[folder][sourceID] sourceSeq := ps[i].sequence[folder][sourceID]
l.Debugf("sourceSeq = ps[%d].sequence[%q][%q] = %d", i, folder, sourceID, sourceSeq)
for j := range ps { for j := range ps {
if i != j { if i != j {
remoteSeq := ps[j].sequence[folder][sourceID] remoteSeq := ps[j].sequence[folder][sourceID]
if remoteSeq != sourceSeq { if remoteSeq != sourceSeq {
l.Debugf("remoteSeq = ps[%d].sequence[%q][%q] = %d", j, folder, sourceID, remoteSeq)
return false return false
} }
} }
@ -455,9 +467,13 @@ func (p *Process) eventLoop() {
log.Println("eventLoop: events:", err) log.Println("eventLoop: events:", err)
continue continue
} }
since = events[len(events)-1].ID
for _, ev := range events { for _, ev := range events {
if ev.ID != since+1 {
l.Warnln("Event ID jumped", since, "to", ev.ID)
}
since = ev.ID
switch ev.Type { switch ev.Type {
case "Starting": case "Starting":
// The Starting event tells us where the configuration is. Load // The Starting event tells us where the configuration is. Load
@ -484,10 +500,17 @@ func (p *Process) eventLoop() {
notScanned[id] = struct{}{} notScanned[id] = struct{}{}
} }
l.Debugln("Started", p.id)
case "StateChanged": case "StateChanged":
// When a folder changes to idle, we tick it off by removing // When a folder changes to idle, we tick it off by removing
// it from p.notScanned. // it from p.notScanned.
if len(p.folders) == 0 {
// We haven't parsed the config yet, shouldn't happen
panic("race, or lost startup event")
}
if !p.startComplete { if !p.startComplete {
data := ev.Data.(map[string]interface{}) data := ev.Data.(map[string]interface{})
to := data["to"].(string) to := data["to"].(string)
@ -512,7 +535,11 @@ func (p *Process) eventLoop() {
if m == nil { if m == nil {
m = make(map[string]int64) m = make(map[string]int64)
} }
m[p.id.String()] = version device := p.id.String()
if device == "" {
panic("race, or startup not complete")
}
m[device] = version
p.sequence[folder] = m p.sequence[folder] = m
p.done[folder] = false p.done[folder] = false
l.Debugf("LocalIndexUpdated %v %v done=false\n\t%+v", p.id, folder, m) l.Debugf("LocalIndexUpdated %v %v done=false\n\t%+v", p.id, folder, m)

View File

@ -1,10 +1,11 @@
<configuration version="16"> <configuration version="26">
<folder id="default" label="" path="s1/" type="readwrite" rescanIntervalS="10" ignorePerms="false" autoNormalize="true"> <folder id="default" label="" path="s1/" type="readwrite" rescanIntervalS="10" fsWatcherEnabled="false" fsWatcherDelayS="10" ignorePerms="false" autoNormalize="true">
<device id="I6KAH76-66SLLLB-5PFXSOA-UFJCDZC-YAOMLEK-CP2GB32-BV5RQST-3PSROAU"></device> <filesystemType>basic</filesystemType>
<device id="MRIW7OK-NETT3M4-N6SBWME-N25O76W-YJKVXPH-FUMQJ3S-P57B74J-GBITBAC"></device> <device id="I6KAH76-66SLLLB-5PFXSOA-UFJCDZC-YAOMLEK-CP2GB32-BV5RQST-3PSROAU" introducedBy=""></device>
<device id="373HSRP-QLPNLIE-JYKZVQF-P4PKZ63-R2ZE6K3-YD442U2-JHBGBQG-WWXAHAU"></device> <device id="MRIW7OK-NETT3M4-N6SBWME-N25O76W-YJKVXPH-FUMQJ3S-P57B74J-GBITBAC" introducedBy=""></device>
<device id="7PBCTLL-JJRYBSA-MOWZRKL-MSDMN4N-4US4OMX-SYEXUS4-HSBGNRY-CZXRXAT"></device> <device id="373HSRP-QLPNLIE-JYKZVQF-P4PKZ63-R2ZE6K3-YD442U2-JHBGBQG-WWXAHAU" introducedBy=""></device>
<minDiskFreePct>1</minDiskFreePct> <device id="7PBCTLL-JJRYBSA-MOWZRKL-MSDMN4N-4US4OMX-SYEXUS4-HSBGNRY-CZXRXAT" introducedBy=""></device>
<minDiskFree unit="%">1</minDiskFree>
<versioning></versioning> <versioning></versioning>
<copiers>1</copiers> <copiers>1</copiers>
<pullers>16</pullers> <pullers>16</pullers>
@ -12,16 +13,19 @@
<order>random</order> <order>random</order>
<ignoreDelete>false</ignoreDelete> <ignoreDelete>false</ignoreDelete>
<scanProgressIntervalS>0</scanProgressIntervalS> <scanProgressIntervalS>0</scanProgressIntervalS>
<pullerSleepS>0</pullerSleepS>
<pullerPauseS>0</pullerPauseS> <pullerPauseS>0</pullerPauseS>
<maxConflicts>-1</maxConflicts> <maxConflicts>-1</maxConflicts>
<disableSparseFiles>false</disableSparseFiles> <disableSparseFiles>false</disableSparseFiles>
<disableTempIndexes>false</disableTempIndexes> <disableTempIndexes>false</disableTempIndexes>
<paused>false</paused>
<weakHashThresholdPct>25</weakHashThresholdPct>
<markerName>.stfolder</markerName>
</folder> </folder>
<folder id="¯\_(ツ)_/¯ Räksmörgås 动作 Адрес" label="" path="s12-1/" type="readwrite" rescanIntervalS="10" ignorePerms="false" autoNormalize="true"> <folder id="¯\_(ツ)_/¯ Räksmörgås 动作 Адрес" label="" path="s12-1/" type="readwrite" rescanIntervalS="10" fsWatcherEnabled="false" fsWatcherDelayS="10" ignorePerms="false" autoNormalize="true">
<device id="I6KAH76-66SLLLB-5PFXSOA-UFJCDZC-YAOMLEK-CP2GB32-BV5RQST-3PSROAU"></device> <filesystemType>basic</filesystemType>
<device id="MRIW7OK-NETT3M4-N6SBWME-N25O76W-YJKVXPH-FUMQJ3S-P57B74J-GBITBAC"></device> <device id="I6KAH76-66SLLLB-5PFXSOA-UFJCDZC-YAOMLEK-CP2GB32-BV5RQST-3PSROAU" introducedBy=""></device>
<minDiskFreePct>1</minDiskFreePct> <device id="MRIW7OK-NETT3M4-N6SBWME-N25O76W-YJKVXPH-FUMQJ3S-P57B74J-GBITBAC" introducedBy=""></device>
<minDiskFree unit="%">1</minDiskFree>
<versioning></versioning> <versioning></versioning>
<copiers>1</copiers> <copiers>1</copiers>
<pullers>16</pullers> <pullers>16</pullers>
@ -29,26 +33,33 @@
<order>random</order> <order>random</order>
<ignoreDelete>false</ignoreDelete> <ignoreDelete>false</ignoreDelete>
<scanProgressIntervalS>0</scanProgressIntervalS> <scanProgressIntervalS>0</scanProgressIntervalS>
<pullerSleepS>0</pullerSleepS>
<pullerPauseS>0</pullerPauseS> <pullerPauseS>0</pullerPauseS>
<maxConflicts>-1</maxConflicts> <maxConflicts>-1</maxConflicts>
<disableSparseFiles>false</disableSparseFiles> <disableSparseFiles>false</disableSparseFiles>
<disableTempIndexes>false</disableTempIndexes> <disableTempIndexes>false</disableTempIndexes>
<paused>false</paused>
<weakHashThresholdPct>25</weakHashThresholdPct>
<markerName>.stfolder</markerName>
</folder> </folder>
<device id="EJHMPAQ-OGCVORE-ISB4IS3-SYYVJXF-TKJGLTU-66DIQPF-GJ5D2GX-GQ3OWQK" name="s4" compression="metadata" introducer="false"> <device id="EJHMPAQ-OGCVORE-ISB4IS3-SYYVJXF-TKJGLTU-66DIQPF-GJ5D2GX-GQ3OWQK" name="s4" compression="metadata" introducer="false" skipIntroductionRemovals="false" introducedBy="">
<address>kcp://127.0.0.1:22004</address> <address>tcp://127.0.0.1:22004</address>
<paused>false</paused>
</device> </device>
<device id="I6KAH76-66SLLLB-5PFXSOA-UFJCDZC-YAOMLEK-CP2GB32-BV5RQST-3PSROAU" name="s1" compression="metadata" introducer="false"> <device id="I6KAH76-66SLLLB-5PFXSOA-UFJCDZC-YAOMLEK-CP2GB32-BV5RQST-3PSROAU" name="s1" compression="metadata" introducer="false" skipIntroductionRemovals="false" introducedBy="">
<address>kcp://127.0.0.1:22001</address> <address>tcp://127.0.0.1:22001</address>
<paused>false</paused>
</device> </device>
<device id="MRIW7OK-NETT3M4-N6SBWME-N25O76W-YJKVXPH-FUMQJ3S-P57B74J-GBITBAC" name="s2" compression="metadata" introducer="false"> <device id="MRIW7OK-NETT3M4-N6SBWME-N25O76W-YJKVXPH-FUMQJ3S-P57B74J-GBITBAC" name="s2" compression="metadata" introducer="false" skipIntroductionRemovals="false" introducedBy="">
<address>kcp://127.0.0.1:22002</address> <address>tcp://127.0.0.1:22002</address>
<paused>false</paused>
</device> </device>
<device id="373HSRP-QLPNLIE-JYKZVQF-P4PKZ63-R2ZE6K3-YD442U2-JHBGBQG-WWXAHAU" name="s3" compression="metadata" introducer="false"> <device id="373HSRP-QLPNLIE-JYKZVQF-P4PKZ63-R2ZE6K3-YD442U2-JHBGBQG-WWXAHAU" name="s3" compression="metadata" introducer="false" skipIntroductionRemovals="false" introducedBy="">
<address>kcp://127.0.0.1:22003</address> <address>tcp://127.0.0.1:22003</address>
<paused>false</paused>
</device> </device>
<device id="7PBCTLL-JJRYBSA-MOWZRKL-MSDMN4N-4US4OMX-SYEXUS4-HSBGNRY-CZXRXAT" name="s4" compression="metadata" introducer="false"> <device id="7PBCTLL-JJRYBSA-MOWZRKL-MSDMN4N-4US4OMX-SYEXUS4-HSBGNRY-CZXRXAT" name="s4" compression="metadata" introducer="false" skipIntroductionRemovals="false" introducedBy="">
<address>kcp://127.0.0.1:22004</address> <address>tcp://127.0.0.1:22004</address>
<paused>false</paused>
</device> </device>
<gui enabled="true" tls="false" debugging="true"> <gui enabled="true" tls="false" debugging="true">
<address>127.0.0.1:8081</address> <address>127.0.0.1:8081</address>
@ -58,7 +69,7 @@
<theme>default</theme> <theme>default</theme>
</gui> </gui>
<options> <options>
<listenAddress>kcp://127.0.0.1:22001</listenAddress> <listenAddress>tcp://127.0.0.1:22001</listenAddress>
<globalAnnounceServer>default</globalAnnounceServer> <globalAnnounceServer>default</globalAnnounceServer>
<globalAnnounceEnabled>false</globalAnnounceEnabled> <globalAnnounceEnabled>false</globalAnnounceEnabled>
<localAnnounceEnabled>true</localAnnounceEnabled> <localAnnounceEnabled>true</localAnnounceEnabled>
@ -75,23 +86,36 @@
<natRenewalMinutes>30</natRenewalMinutes> <natRenewalMinutes>30</natRenewalMinutes>
<natTimeoutSeconds>10</natTimeoutSeconds> <natTimeoutSeconds>10</natTimeoutSeconds>
<urAccepted>-1</urAccepted> <urAccepted>-1</urAccepted>
<urUniqueID></urUniqueID> <urSeen>2</urSeen>
<urUniqueID>tmwxxCqi</urUniqueID>
<urURL>https://data.syncthing.net/newdata</urURL> <urURL>https://data.syncthing.net/newdata</urURL>
<urPostInsecurely>false</urPostInsecurely> <urPostInsecurely>false</urPostInsecurely>
<urInitialDelayS>1800</urInitialDelayS> <urInitialDelayS>1800</urInitialDelayS>
<restartOnWakeup>true</restartOnWakeup> <restartOnWakeup>true</restartOnWakeup>
<autoUpgradeIntervalH>12</autoUpgradeIntervalH> <autoUpgradeIntervalH>12</autoUpgradeIntervalH>
<upgradeToPreReleases>false</upgradeToPreReleases>
<keepTemporariesH>24</keepTemporariesH> <keepTemporariesH>24</keepTemporariesH>
<cacheIgnoredFiles>false</cacheIgnoredFiles> <cacheIgnoredFiles>false</cacheIgnoredFiles>
<progressUpdateIntervalS>5</progressUpdateIntervalS> <progressUpdateIntervalS>5</progressUpdateIntervalS>
<symlinksEnabled>true</symlinksEnabled>
<limitBandwidthInLan>false</limitBandwidthInLan> <limitBandwidthInLan>false</limitBandwidthInLan>
<minHomeDiskFreePct>1</minHomeDiskFreePct> <minHomeDiskFree unit="%">1</minHomeDiskFree>
<releasesURL>https://upgrades.syncthing.net/meta.json</releasesURL> <releasesURL>https://upgrades.syncthing.net/meta.json</releasesURL>
<overwriteRemoteDeviceNamesOnConnect>false</overwriteRemoteDeviceNamesOnConnect> <overwriteRemoteDeviceNamesOnConnect>false</overwriteRemoteDeviceNamesOnConnect>
<tempIndexMinBlocks>10</tempIndexMinBlocks> <tempIndexMinBlocks>10</tempIndexMinBlocks>
<trafficClass>0</trafficClass>
<weakHashSelectionMethod>auto</weakHashSelectionMethod>
<stunServer>default</stunServer>
<stunKeepaliveSeconds>24</stunKeepaliveSeconds>
<kcpNoDelay>false</kcpNoDelay>
<kcpUpdateIntervalMs>25</kcpUpdateIntervalMs>
<kcpFastResend>false</kcpFastResend>
<kcpCongestionControl>true</kcpCongestionControl>
<kcpSendWindowSize>128</kcpSendWindowSize>
<kcpReceiveWindowSize>128</kcpReceiveWindowSize>
<defaultFolderPath>~</defaultFolderPath>
<upnpEnabled>true</upnpEnabled> <upnpEnabled>true</upnpEnabled>
<upnpRenewalMinutes>30</upnpRenewalMinutes> <upnpRenewalMinutes>30</upnpRenewalMinutes>
<upnpTimeoutSeconds>10</upnpTimeoutSeconds> <upnpTimeoutSeconds>10</upnpTimeoutSeconds>
<minHomeDiskFreePct>0</minHomeDiskFreePct>
</options> </options>
</configuration> </configuration>

View File

@ -1,9 +1,10 @@
<configuration version="16"> <configuration version="26">
<folder id="default" label="" path="s2" type="readwrite" rescanIntervalS="15" ignorePerms="false" autoNormalize="true"> <folder id="default" label="" path="s2" type="readwrite" rescanIntervalS="15" fsWatcherEnabled="false" fsWatcherDelayS="10" ignorePerms="false" autoNormalize="true">
<device id="I6KAH76-66SLLLB-5PFXSOA-UFJCDZC-YAOMLEK-CP2GB32-BV5RQST-3PSROAU"></device> <filesystemType>basic</filesystemType>
<device id="MRIW7OK-NETT3M4-N6SBWME-N25O76W-YJKVXPH-FUMQJ3S-P57B74J-GBITBAC"></device> <device id="I6KAH76-66SLLLB-5PFXSOA-UFJCDZC-YAOMLEK-CP2GB32-BV5RQST-3PSROAU" introducedBy=""></device>
<device id="373HSRP-QLPNLIE-JYKZVQF-P4PKZ63-R2ZE6K3-YD442U2-JHBGBQG-WWXAHAU"></device> <device id="MRIW7OK-NETT3M4-N6SBWME-N25O76W-YJKVXPH-FUMQJ3S-P57B74J-GBITBAC" introducedBy=""></device>
<minDiskFreePct>1</minDiskFreePct> <device id="373HSRP-QLPNLIE-JYKZVQF-P4PKZ63-R2ZE6K3-YD442U2-JHBGBQG-WWXAHAU" introducedBy=""></device>
<minDiskFree unit="%">1</minDiskFree>
<versioning></versioning> <versioning></versioning>
<copiers>1</copiers> <copiers>1</copiers>
<pullers>16</pullers> <pullers>16</pullers>
@ -11,17 +12,19 @@
<order>random</order> <order>random</order>
<ignoreDelete>false</ignoreDelete> <ignoreDelete>false</ignoreDelete>
<scanProgressIntervalS>0</scanProgressIntervalS> <scanProgressIntervalS>0</scanProgressIntervalS>
<pullerSleepS>0</pullerSleepS>
<pullerPauseS>0</pullerPauseS> <pullerPauseS>0</pullerPauseS>
<maxConflicts>-1</maxConflicts> <maxConflicts>-1</maxConflicts>
<disableSparseFiles>false</disableSparseFiles> <disableSparseFiles>false</disableSparseFiles>
<disableTempIndexes>false</disableTempIndexes> <disableTempIndexes>false</disableTempIndexes>
<disableWeakHash>false</disableWeakHash> <paused>false</paused>
<weakHashThresholdPct>25</weakHashThresholdPct>
<markerName>.stfolder</markerName>
</folder> </folder>
<folder id="¯\_(ツ)_/¯ Räksmörgås 动作 Адрес" label="" path="s12-2" type="readwrite" rescanIntervalS="15" ignorePerms="false" autoNormalize="true"> <folder id="¯\_(ツ)_/¯ Räksmörgås 动作 Адрес" label="" path="s12-2" type="readwrite" rescanIntervalS="15" fsWatcherEnabled="false" fsWatcherDelayS="10" ignorePerms="false" autoNormalize="true">
<device id="I6KAH76-66SLLLB-5PFXSOA-UFJCDZC-YAOMLEK-CP2GB32-BV5RQST-3PSROAU"></device> <filesystemType>basic</filesystemType>
<device id="MRIW7OK-NETT3M4-N6SBWME-N25O76W-YJKVXPH-FUMQJ3S-P57B74J-GBITBAC"></device> <device id="I6KAH76-66SLLLB-5PFXSOA-UFJCDZC-YAOMLEK-CP2GB32-BV5RQST-3PSROAU" introducedBy=""></device>
<minDiskFreePct>1</minDiskFreePct> <device id="MRIW7OK-NETT3M4-N6SBWME-N25O76W-YJKVXPH-FUMQJ3S-P57B74J-GBITBAC" introducedBy=""></device>
<minDiskFree unit="%">1</minDiskFree>
<versioning></versioning> <versioning></versioning>
<copiers>1</copiers> <copiers>1</copiers>
<pullers>16</pullers> <pullers>16</pullers>
@ -29,17 +32,19 @@
<order>random</order> <order>random</order>
<ignoreDelete>false</ignoreDelete> <ignoreDelete>false</ignoreDelete>
<scanProgressIntervalS>0</scanProgressIntervalS> <scanProgressIntervalS>0</scanProgressIntervalS>
<pullerSleepS>0</pullerSleepS>
<pullerPauseS>0</pullerPauseS> <pullerPauseS>0</pullerPauseS>
<maxConflicts>-1</maxConflicts> <maxConflicts>-1</maxConflicts>
<disableSparseFiles>false</disableSparseFiles> <disableSparseFiles>false</disableSparseFiles>
<disableTempIndexes>false</disableTempIndexes> <disableTempIndexes>false</disableTempIndexes>
<disableWeakHash>false</disableWeakHash> <paused>false</paused>
<weakHashThresholdPct>25</weakHashThresholdPct>
<markerName>.stfolder</markerName>
</folder> </folder>
<folder id="s23" label="" path="s23-2" type="readwrite" rescanIntervalS="15" ignorePerms="false" autoNormalize="true"> <folder id="s23" label="" path="s23-2" type="readwrite" rescanIntervalS="15" fsWatcherEnabled="false" fsWatcherDelayS="10" ignorePerms="false" autoNormalize="true">
<device id="MRIW7OK-NETT3M4-N6SBWME-N25O76W-YJKVXPH-FUMQJ3S-P57B74J-GBITBAC"></device> <filesystemType>basic</filesystemType>
<device id="373HSRP-QLPNLIE-JYKZVQF-P4PKZ63-R2ZE6K3-YD442U2-JHBGBQG-WWXAHAU"></device> <device id="MRIW7OK-NETT3M4-N6SBWME-N25O76W-YJKVXPH-FUMQJ3S-P57B74J-GBITBAC" introducedBy=""></device>
<minDiskFreePct>1</minDiskFreePct> <device id="373HSRP-QLPNLIE-JYKZVQF-P4PKZ63-R2ZE6K3-YD442U2-JHBGBQG-WWXAHAU" introducedBy=""></device>
<minDiskFree unit="%">1</minDiskFree>
<versioning></versioning> <versioning></versioning>
<copiers>1</copiers> <copiers>1</copiers>
<pullers>16</pullers> <pullers>16</pullers>
@ -47,21 +52,25 @@
<order>random</order> <order>random</order>
<ignoreDelete>false</ignoreDelete> <ignoreDelete>false</ignoreDelete>
<scanProgressIntervalS>0</scanProgressIntervalS> <scanProgressIntervalS>0</scanProgressIntervalS>
<pullerSleepS>0</pullerSleepS>
<pullerPauseS>0</pullerPauseS> <pullerPauseS>0</pullerPauseS>
<maxConflicts>-1</maxConflicts> <maxConflicts>-1</maxConflicts>
<disableSparseFiles>false</disableSparseFiles> <disableSparseFiles>false</disableSparseFiles>
<disableTempIndexes>false</disableTempIndexes> <disableTempIndexes>false</disableTempIndexes>
<disableWeakHash>false</disableWeakHash> <paused>false</paused>
<weakHashThresholdPct>25</weakHashThresholdPct>
<markerName>.stfolder</markerName>
</folder> </folder>
<device id="I6KAH76-66SLLLB-5PFXSOA-UFJCDZC-YAOMLEK-CP2GB32-BV5RQST-3PSROAU" name="s1" compression="metadata" introducer="false"> <device id="I6KAH76-66SLLLB-5PFXSOA-UFJCDZC-YAOMLEK-CP2GB32-BV5RQST-3PSROAU" name="s1" compression="metadata" introducer="false" skipIntroductionRemovals="false" introducedBy="">
<address>kcp://127.0.0.1:22001</address> <address>tcp://127.0.0.1:22001</address>
<paused>false</paused>
</device> </device>
<device id="MRIW7OK-NETT3M4-N6SBWME-N25O76W-YJKVXPH-FUMQJ3S-P57B74J-GBITBAC" name="s2" compression="metadata" introducer="false"> <device id="MRIW7OK-NETT3M4-N6SBWME-N25O76W-YJKVXPH-FUMQJ3S-P57B74J-GBITBAC" name="s2" compression="metadata" introducer="false" skipIntroductionRemovals="false" introducedBy="">
<address>kcp://127.0.0.1:22002</address> <address>tcp://127.0.0.1:22002</address>
<paused>false</paused>
</device> </device>
<device id="373HSRP-QLPNLIE-JYKZVQF-P4PKZ63-R2ZE6K3-YD442U2-JHBGBQG-WWXAHAU" name="s3" compression="metadata" introducer="false"> <device id="373HSRP-QLPNLIE-JYKZVQF-P4PKZ63-R2ZE6K3-YD442U2-JHBGBQG-WWXAHAU" name="s3" compression="metadata" introducer="false" skipIntroductionRemovals="false" introducedBy="">
<address>kcp://127.0.0.1:22003</address> <address>tcp://127.0.0.1:22003</address>
<paused>false</paused>
</device> </device>
<gui enabled="true" tls="false" debugging="true"> <gui enabled="true" tls="false" debugging="true">
<address>127.0.0.1:8082</address> <address>127.0.0.1:8082</address>
@ -70,7 +79,7 @@
</gui> </gui>
<options> <options>
<listenAddress>dynamic+https://relays.syncthing.net/endpoint</listenAddress> <listenAddress>dynamic+https://relays.syncthing.net/endpoint</listenAddress>
<listenAddress>kcp://127.0.0.1:22002</listenAddress> <listenAddress>tcp://127.0.0.1:22002</listenAddress>
<globalAnnounceServer>default</globalAnnounceServer> <globalAnnounceServer>default</globalAnnounceServer>
<globalAnnounceEnabled>false</globalAnnounceEnabled> <globalAnnounceEnabled>false</globalAnnounceEnabled>
<localAnnounceEnabled>true</localAnnounceEnabled> <localAnnounceEnabled>true</localAnnounceEnabled>
@ -87,20 +96,33 @@
<natRenewalMinutes>1</natRenewalMinutes> <natRenewalMinutes>1</natRenewalMinutes>
<natTimeoutSeconds>10</natTimeoutSeconds> <natTimeoutSeconds>10</natTimeoutSeconds>
<urAccepted>-1</urAccepted> <urAccepted>-1</urAccepted>
<urUniqueID></urUniqueID> <urSeen>2</urSeen>
<urUniqueID>x7AWqz5k</urUniqueID>
<urURL>https://data.syncthing.net/newdata</urURL> <urURL>https://data.syncthing.net/newdata</urURL>
<urPostInsecurely>false</urPostInsecurely> <urPostInsecurely>false</urPostInsecurely>
<urInitialDelayS>1800</urInitialDelayS> <urInitialDelayS>1800</urInitialDelayS>
<restartOnWakeup>true</restartOnWakeup> <restartOnWakeup>true</restartOnWakeup>
<autoUpgradeIntervalH>12</autoUpgradeIntervalH> <autoUpgradeIntervalH>12</autoUpgradeIntervalH>
<upgradeToPreReleases>false</upgradeToPreReleases>
<keepTemporariesH>24</keepTemporariesH> <keepTemporariesH>24</keepTemporariesH>
<cacheIgnoredFiles>false</cacheIgnoredFiles> <cacheIgnoredFiles>false</cacheIgnoredFiles>
<progressUpdateIntervalS>5</progressUpdateIntervalS> <progressUpdateIntervalS>5</progressUpdateIntervalS>
<symlinksEnabled>true</symlinksEnabled>
<limitBandwidthInLan>false</limitBandwidthInLan> <limitBandwidthInLan>false</limitBandwidthInLan>
<minHomeDiskFreePct>1</minHomeDiskFreePct> <minHomeDiskFree unit="%">1</minHomeDiskFree>
<releasesURL>https://upgrades.syncthing.net/meta.json</releasesURL> <releasesURL>https://upgrades.syncthing.net/meta.json</releasesURL>
<overwriteRemoteDeviceNamesOnConnect>false</overwriteRemoteDeviceNamesOnConnect> <overwriteRemoteDeviceNamesOnConnect>false</overwriteRemoteDeviceNamesOnConnect>
<tempIndexMinBlocks>10</tempIndexMinBlocks> <tempIndexMinBlocks>10</tempIndexMinBlocks>
<trafficClass>0</trafficClass>
<weakHashSelectionMethod>auto</weakHashSelectionMethod>
<stunServer>default</stunServer>
<stunKeepaliveSeconds>24</stunKeepaliveSeconds>
<kcpNoDelay>false</kcpNoDelay>
<kcpUpdateIntervalMs>25</kcpUpdateIntervalMs>
<kcpFastResend>false</kcpFastResend>
<kcpCongestionControl>true</kcpCongestionControl>
<kcpSendWindowSize>128</kcpSendWindowSize>
<kcpReceiveWindowSize>128</kcpReceiveWindowSize>
<defaultFolderPath>~</defaultFolderPath>
<minHomeDiskFreePct>0</minHomeDiskFreePct>
</options> </options>
</configuration> </configuration>

View File

@ -1,8 +1,9 @@
<configuration version="16"> <configuration version="26">
<folder id="s23" label="" path="s23-3" type="readwrite" rescanIntervalS="20" ignorePerms="false" autoNormalize="true"> <folder id="s23" label="" path="s23-3" type="readwrite" rescanIntervalS="20" fsWatcherEnabled="false" fsWatcherDelayS="10" ignorePerms="false" autoNormalize="true">
<device id="MRIW7OK-NETT3M4-N6SBWME-N25O76W-YJKVXPH-FUMQJ3S-P57B74J-GBITBAC"></device> <filesystemType>basic</filesystemType>
<device id="373HSRP-QLPNLIE-JYKZVQF-P4PKZ63-R2ZE6K3-YD442U2-JHBGBQG-WWXAHAU"></device> <device id="MRIW7OK-NETT3M4-N6SBWME-N25O76W-YJKVXPH-FUMQJ3S-P57B74J-GBITBAC" introducedBy=""></device>
<minDiskFreePct>1</minDiskFreePct> <device id="373HSRP-QLPNLIE-JYKZVQF-P4PKZ63-R2ZE6K3-YD442U2-JHBGBQG-WWXAHAU" introducedBy=""></device>
<minDiskFree unit="%">1</minDiskFree>
<versioning></versioning> <versioning></versioning>
<copiers>1</copiers> <copiers>1</copiers>
<pullers>16</pullers> <pullers>16</pullers>
@ -10,18 +11,20 @@
<order>random</order> <order>random</order>
<ignoreDelete>false</ignoreDelete> <ignoreDelete>false</ignoreDelete>
<scanProgressIntervalS>0</scanProgressIntervalS> <scanProgressIntervalS>0</scanProgressIntervalS>
<pullerSleepS>0</pullerSleepS>
<pullerPauseS>0</pullerPauseS> <pullerPauseS>0</pullerPauseS>
<maxConflicts>-1</maxConflicts> <maxConflicts>-1</maxConflicts>
<disableSparseFiles>false</disableSparseFiles> <disableSparseFiles>false</disableSparseFiles>
<disableTempIndexes>false</disableTempIndexes> <disableTempIndexes>false</disableTempIndexes>
<disableWeakHash>false</disableWeakHash> <paused>false</paused>
<weakHashThresholdPct>25</weakHashThresholdPct>
<markerName>.stfolder</markerName>
</folder> </folder>
<folder id="default" label="" path="s3" type="readwrite" rescanIntervalS="20" ignorePerms="false" autoNormalize="true"> <folder id="default" label="" path="s3" type="readwrite" rescanIntervalS="20" fsWatcherEnabled="false" fsWatcherDelayS="10" ignorePerms="false" autoNormalize="true">
<device id="I6KAH76-66SLLLB-5PFXSOA-UFJCDZC-YAOMLEK-CP2GB32-BV5RQST-3PSROAU"></device> <filesystemType>basic</filesystemType>
<device id="MRIW7OK-NETT3M4-N6SBWME-N25O76W-YJKVXPH-FUMQJ3S-P57B74J-GBITBAC"></device> <device id="I6KAH76-66SLLLB-5PFXSOA-UFJCDZC-YAOMLEK-CP2GB32-BV5RQST-3PSROAU" introducedBy=""></device>
<device id="373HSRP-QLPNLIE-JYKZVQF-P4PKZ63-R2ZE6K3-YD442U2-JHBGBQG-WWXAHAU"></device> <device id="MRIW7OK-NETT3M4-N6SBWME-N25O76W-YJKVXPH-FUMQJ3S-P57B74J-GBITBAC" introducedBy=""></device>
<minDiskFreePct>1</minDiskFreePct> <device id="373HSRP-QLPNLIE-JYKZVQF-P4PKZ63-R2ZE6K3-YD442U2-JHBGBQG-WWXAHAU" introducedBy=""></device>
<minDiskFree unit="%">1</minDiskFree>
<versioning type="simple"> <versioning type="simple">
<param key="keep" val="5"></param> <param key="keep" val="5"></param>
</versioning> </versioning>
@ -31,21 +34,25 @@
<order>random</order> <order>random</order>
<ignoreDelete>false</ignoreDelete> <ignoreDelete>false</ignoreDelete>
<scanProgressIntervalS>0</scanProgressIntervalS> <scanProgressIntervalS>0</scanProgressIntervalS>
<pullerSleepS>0</pullerSleepS>
<pullerPauseS>0</pullerPauseS> <pullerPauseS>0</pullerPauseS>
<maxConflicts>-1</maxConflicts> <maxConflicts>-1</maxConflicts>
<disableSparseFiles>false</disableSparseFiles> <disableSparseFiles>false</disableSparseFiles>
<disableTempIndexes>false</disableTempIndexes> <disableTempIndexes>false</disableTempIndexes>
<disableWeakHash>false</disableWeakHash> <paused>false</paused>
<weakHashThresholdPct>25</weakHashThresholdPct>
<markerName>.stfolder</markerName>
</folder> </folder>
<device id="I6KAH76-66SLLLB-5PFXSOA-UFJCDZC-YAOMLEK-CP2GB32-BV5RQST-3PSROAU" name="s1" compression="metadata" introducer="false"> <device id="I6KAH76-66SLLLB-5PFXSOA-UFJCDZC-YAOMLEK-CP2GB32-BV5RQST-3PSROAU" name="s1" compression="metadata" introducer="false" skipIntroductionRemovals="false" introducedBy="">
<address>tcp://127.0.0.1:22001</address> <address>tcp://127.0.0.1:22001</address>
<paused>false</paused>
</device> </device>
<device id="MRIW7OK-NETT3M4-N6SBWME-N25O76W-YJKVXPH-FUMQJ3S-P57B74J-GBITBAC" name="s2" compression="metadata" introducer="false"> <device id="MRIW7OK-NETT3M4-N6SBWME-N25O76W-YJKVXPH-FUMQJ3S-P57B74J-GBITBAC" name="s2" compression="metadata" introducer="false" skipIntroductionRemovals="false" introducedBy="">
<address>tcp://127.0.0.1:22002</address> <address>tcp://127.0.0.1:22002</address>
<paused>false</paused>
</device> </device>
<device id="373HSRP-QLPNLIE-JYKZVQF-P4PKZ63-R2ZE6K3-YD442U2-JHBGBQG-WWXAHAU" name="s3" compression="metadata" introducer="false"> <device id="373HSRP-QLPNLIE-JYKZVQF-P4PKZ63-R2ZE6K3-YD442U2-JHBGBQG-WWXAHAU" name="s3" compression="metadata" introducer="false" skipIntroductionRemovals="false" introducedBy="">
<address>tcp://127.0.0.1:22003</address> <address>tcp://127.0.0.1:22003</address>
<paused>false</paused>
</device> </device>
<gui enabled="true" tls="false" debugging="true"> <gui enabled="true" tls="false" debugging="true">
<address>127.0.0.1:8083</address> <address>127.0.0.1:8083</address>
@ -71,20 +78,33 @@
<natRenewalMinutes>30</natRenewalMinutes> <natRenewalMinutes>30</natRenewalMinutes>
<natTimeoutSeconds>10</natTimeoutSeconds> <natTimeoutSeconds>10</natTimeoutSeconds>
<urAccepted>-1</urAccepted> <urAccepted>-1</urAccepted>
<urSeen>2</urSeen>
<urUniqueID></urUniqueID> <urUniqueID></urUniqueID>
<urURL>https://data.syncthing.net/newdata</urURL> <urURL>https://data.syncthing.net/newdata</urURL>
<urPostInsecurely>false</urPostInsecurely> <urPostInsecurely>false</urPostInsecurely>
<urInitialDelayS>1800</urInitialDelayS> <urInitialDelayS>1800</urInitialDelayS>
<restartOnWakeup>true</restartOnWakeup> <restartOnWakeup>true</restartOnWakeup>
<autoUpgradeIntervalH>12</autoUpgradeIntervalH> <autoUpgradeIntervalH>12</autoUpgradeIntervalH>
<upgradeToPreReleases>false</upgradeToPreReleases>
<keepTemporariesH>24</keepTemporariesH> <keepTemporariesH>24</keepTemporariesH>
<cacheIgnoredFiles>false</cacheIgnoredFiles> <cacheIgnoredFiles>false</cacheIgnoredFiles>
<progressUpdateIntervalS>5</progressUpdateIntervalS> <progressUpdateIntervalS>5</progressUpdateIntervalS>
<symlinksEnabled>true</symlinksEnabled>
<limitBandwidthInLan>false</limitBandwidthInLan> <limitBandwidthInLan>false</limitBandwidthInLan>
<minHomeDiskFreePct>1</minHomeDiskFreePct> <minHomeDiskFree unit="%">1</minHomeDiskFree>
<releasesURL>https://upgrades.syncthing.net/meta.json</releasesURL> <releasesURL>https://upgrades.syncthing.net/meta.json</releasesURL>
<overwriteRemoteDeviceNamesOnConnect>false</overwriteRemoteDeviceNamesOnConnect> <overwriteRemoteDeviceNamesOnConnect>false</overwriteRemoteDeviceNamesOnConnect>
<tempIndexMinBlocks>10</tempIndexMinBlocks> <tempIndexMinBlocks>10</tempIndexMinBlocks>
<trafficClass>0</trafficClass>
<weakHashSelectionMethod>auto</weakHashSelectionMethod>
<stunServer>default</stunServer>
<stunKeepaliveSeconds>24</stunKeepaliveSeconds>
<kcpNoDelay>false</kcpNoDelay>
<kcpUpdateIntervalMs>25</kcpUpdateIntervalMs>
<kcpFastResend>false</kcpFastResend>
<kcpCongestionControl>true</kcpCongestionControl>
<kcpSendWindowSize>128</kcpSendWindowSize>
<kcpReceiveWindowSize>128</kcpReceiveWindowSize>
<defaultFolderPath>~</defaultFolderPath>
<minHomeDiskFreePct>0</minHomeDiskFreePct>
</options> </options>
</configuration> </configuration>

View File

@ -1,7 +1,8 @@
<configuration version="15"> <configuration version="26">
<folder id="default" label="" path="s4/" type="readwrite" rescanIntervalS="60" ignorePerms="false" autoNormalize="false"> <folder id="default" label="" path="s4/" type="readwrite" rescanIntervalS="60" fsWatcherEnabled="false" fsWatcherDelayS="10" ignorePerms="false" autoNormalize="false">
<device id="7PBCTLL-JJRYBSA-MOWZRKL-MSDMN4N-4US4OMX-SYEXUS4-HSBGNRY-CZXRXAT"></device> <filesystemType>basic</filesystemType>
<minDiskFreePct>1</minDiskFreePct> <device id="7PBCTLL-JJRYBSA-MOWZRKL-MSDMN4N-4US4OMX-SYEXUS4-HSBGNRY-CZXRXAT" introducedBy=""></device>
<minDiskFree unit="%">1</minDiskFree>
<versioning></versioning> <versioning></versioning>
<copiers>1</copiers> <copiers>1</copiers>
<pullers>16</pullers> <pullers>16</pullers>
@ -9,14 +10,17 @@
<order>random</order> <order>random</order>
<ignoreDelete>false</ignoreDelete> <ignoreDelete>false</ignoreDelete>
<scanProgressIntervalS>0</scanProgressIntervalS> <scanProgressIntervalS>0</scanProgressIntervalS>
<pullerSleepS>0</pullerSleepS>
<pullerPauseS>0</pullerPauseS> <pullerPauseS>0</pullerPauseS>
<maxConflicts>-1</maxConflicts> <maxConflicts>-1</maxConflicts>
<disableSparseFiles>false</disableSparseFiles> <disableSparseFiles>false</disableSparseFiles>
<disableTempIndexes>false</disableTempIndexes> <disableTempIndexes>false</disableTempIndexes>
<paused>false</paused>
<weakHashThresholdPct>25</weakHashThresholdPct>
<markerName>.stfolder</markerName>
</folder> </folder>
<device id="7PBCTLL-JJRYBSA-MOWZRKL-MSDMN4N-4US4OMX-SYEXUS4-HSBGNRY-CZXRXAT" name="s4" compression="metadata" introducer="false"> <device id="7PBCTLL-JJRYBSA-MOWZRKL-MSDMN4N-4US4OMX-SYEXUS4-HSBGNRY-CZXRXAT" name="s4" compression="metadata" introducer="false" skipIntroductionRemovals="false" introducedBy="">
<address>dynamic</address> <address>dynamic</address>
<paused>false</paused>
</device> </device>
<gui enabled="true" tls="false" debugging="true"> <gui enabled="true" tls="false" debugging="true">
<address>127.0.0.1:8084</address> <address>127.0.0.1:8084</address>
@ -42,20 +46,33 @@
<natRenewalMinutes>30</natRenewalMinutes> <natRenewalMinutes>30</natRenewalMinutes>
<natTimeoutSeconds>10</natTimeoutSeconds> <natTimeoutSeconds>10</natTimeoutSeconds>
<urAccepted>-1</urAccepted> <urAccepted>-1</urAccepted>
<urSeen>2</urSeen>
<urUniqueID></urUniqueID> <urUniqueID></urUniqueID>
<urURL>https://data.syncthing.net/newdata</urURL> <urURL>https://data.syncthing.net/newdata</urURL>
<urPostInsecurely>false</urPostInsecurely> <urPostInsecurely>false</urPostInsecurely>
<urInitialDelayS>1800</urInitialDelayS> <urInitialDelayS>1800</urInitialDelayS>
<restartOnWakeup>true</restartOnWakeup> <restartOnWakeup>true</restartOnWakeup>
<autoUpgradeIntervalH>12</autoUpgradeIntervalH> <autoUpgradeIntervalH>12</autoUpgradeIntervalH>
<upgradeToPreReleases>false</upgradeToPreReleases>
<keepTemporariesH>24</keepTemporariesH> <keepTemporariesH>24</keepTemporariesH>
<cacheIgnoredFiles>false</cacheIgnoredFiles> <cacheIgnoredFiles>false</cacheIgnoredFiles>
<progressUpdateIntervalS>5</progressUpdateIntervalS> <progressUpdateIntervalS>5</progressUpdateIntervalS>
<symlinksEnabled>true</symlinksEnabled>
<limitBandwidthInLan>false</limitBandwidthInLan> <limitBandwidthInLan>false</limitBandwidthInLan>
<minHomeDiskFreePct>1</minHomeDiskFreePct> <minHomeDiskFree unit="%">1</minHomeDiskFree>
<releasesURL>https://upgrades.syncthing.net/meta.json</releasesURL> <releasesURL>https://upgrades.syncthing.net/meta.json</releasesURL>
<overwriteRemoteDeviceNamesOnConnect>false</overwriteRemoteDeviceNamesOnConnect> <overwriteRemoteDeviceNamesOnConnect>false</overwriteRemoteDeviceNamesOnConnect>
<tempIndexMinBlocks>10</tempIndexMinBlocks> <tempIndexMinBlocks>10</tempIndexMinBlocks>
<trafficClass>0</trafficClass>
<weakHashSelectionMethod>auto</weakHashSelectionMethod>
<stunServer>default</stunServer>
<stunKeepaliveSeconds>24</stunKeepaliveSeconds>
<kcpNoDelay>false</kcpNoDelay>
<kcpUpdateIntervalMs>25</kcpUpdateIntervalMs>
<kcpFastResend>false</kcpFastResend>
<kcpCongestionControl>true</kcpCongestionControl>
<kcpSendWindowSize>128</kcpSendWindowSize>
<kcpReceiveWindowSize>128</kcpReceiveWindowSize>
<defaultFolderPath>~</defaultFolderPath>
<minHomeDiskFreePct>0</minHomeDiskFreePct>
</options> </options>
</configuration> </configuration>

View File

@ -205,6 +205,10 @@ func testSyncCluster(t *testing.T) {
p2 := startInstance(t, 3) p2 := startInstance(t, 3)
defer checkedStop(t, p2) defer checkedStop(t, p2)
p0.ResumeAll()
p1.ResumeAll()
p2.ResumeAll()
p := []*rc.Process{p0, p1, p2} p := []*rc.Process{p0, p1, p2}
start := time.Now() start := time.Now()
@ -351,6 +355,10 @@ func testSyncClusterForcedRescan(t *testing.T) {
p2 := startInstance(t, 3) p2 := startInstance(t, 3)
defer checkedStop(t, p2) defer checkedStop(t, p2)
p0.ResumeAll()
p1.ResumeAll()
p2.ResumeAll()
p := []*rc.Process{p0, p1, p2} p := []*rc.Process{p0, p1, p2}
start := time.Now() start := time.Now()
@ -514,6 +522,9 @@ func TestSyncSparseFile(t *testing.T) {
p1 := startInstance(t, 2) p1 := startInstance(t, 2)
defer checkedStop(t, p1) defer checkedStop(t, p1)
p0.ResumeAll()
p1.ResumeAll()
rc.AwaitSync("default", p0, p1) rc.AwaitSync("default", p0, p1)
log.Println("Comparing...") log.Println("Comparing...")

View File

@ -83,6 +83,9 @@ func benchmarkTransfer(t *testing.T, files, sizeExp int) {
receiver := startInstance(t, 2) receiver := startInstance(t, 2)
defer checkedStop(t, receiver) defer checkedStop(t, receiver)
sender.ResumeAll()
receiver.ResumeAll()
var t0, t1 time.Time var t0, t1 time.Time
lastEvent := 0 lastEvent := 0
loop: loop:

View File

@ -541,6 +541,7 @@ func startInstance(t *testing.T, i int) *rc.Process {
t.Fatal(err) t.Fatal(err)
} }
p.AwaitStartup() p.AwaitStartup()
p.PauseAll()
return p return p
} }