Simon Frei
86e35f1879
lib/model: Less locking in ClusterConfig ( #5943 )
2019-08-11 19:30:24 +02:00
Simon Frei
4a619e74f2
lib/model: Fix incorrect locking ( #5939 )
2019-08-11 16:10:30 +02:00
Simon Frei
8a06cf0973
lib/model: Unflake TestPullInvalidIgnored ( #5918 )
2019-08-01 11:07:41 +02:00
Simon Frei
05835ed81f
all: Remove potentially problematic errors from panics ( fixes #5839 ) ( #5912 )
2019-07-31 10:53:35 +02:00
Simon Frei
df522576ac
lib/model: Don't call t.Fatal in goroutines ( fixes #5901 ) ( #5903 )
2019-07-30 17:50:51 +02:00
Simon Frei
fd847d4efe
lib/model: Fix flakyness of TestRequestRemoteRenameChanged ( #5904 )
2019-07-28 22:29:31 +02:00
Jakob Borg
c1c976aa2b
lib/model: Don't panic on failed chmod-back on directory ( fixes #5836 ) ( #5896 )
...
* lib/model: Don't panic on failed chmod-back on directory (fixes #5836 )
This makes the "in writable dir"-wrapper log chmod-back errors instead
of panicking. To do that we need a logger so the function moved into the
model package which is also the only place it's used. The tests came
along.
(The test also exercised osutil.RenameOrCopy like some sort of
piggybacking. I removed that.)
2019-07-28 10:25:05 +02:00
Jakob Borg
669bcb748f
lib/config, lib/model: Don't save on every pending folder/device update ( fixes #5888 ) ( #5890 )
...
Wrapper methods generally don't save by themselves.
2019-07-27 11:05:00 +01:00
Simon Frei
7a4c88d4e4
lib: Add mtime window when comparing files ( #5852 )
2019-07-23 21:48:53 +02:00
Simon Frei
35f40e9a58
lib/model: Create new file-set after stopping folder ( fixes #5882 ) ( #5883 )
2019-07-23 20:39:25 +02:00
Simon Frei
6f08162376
lib/model: Remove incorrect/useless panics ( #5881 )
2019-07-23 10:51:16 +02:00
Simon Frei
942659fb06
lib/model, lib/nat: More service termination speedup ( #5884 )
2019-07-23 10:49:22 +02:00
Simon Frei
b5b54ff057
lib/model: No watch-error on missing folder ( fixes #5833 ) ( #5876 )
2019-07-19 19:41:16 +02:00
Simon Frei
1cb55904bc
lib/model: Prevent panic in NeedFolderFiles ( fixes #5872 ) ( #5875 )
2019-07-19 19:39:52 +02:00
Simon Frei
2b622d0774
lib/model: Close conn on dev pause ( fixes #5873 ) ( #5874 )
2019-07-19 19:37:29 +02:00
Simon Frei
82b70b9fae
lib/model, lib/protocol: Track closing connections ( fixes #5828 ) ( #5829 )
2019-07-14 11:03:55 +02:00
Simon Frei
20c8dbd9ed
lib/model: Fix integer conversion ( fixes #5837 ) ( #5851 )
2019-07-12 16:37:12 +02:00
Simon Frei
3446d50201
lib/model: Remove pointless error that watch hasn't started ( fixes #5833 ) ( #5834 )
2019-07-10 11:00:06 +02:00
Simon Frei
9fef1552fc
lib/db, lib/model: Remove folder info from panics (ref #5839 ) ( #5840 )
2019-07-10 10:57:49 +02:00
Simon Frei
ba056578ec
lib: Add util.Service as suture.Service template ( fixes #5801 ) ( #5806 )
2019-07-09 11:40:30 +02:00
Simon Frei
863fe23347
gui, lib/model: Fix download progress accounting ( fixes #5811 ) ( #5815 )
2019-06-30 09:23:47 +02:00
Simon Frei
1cf352a722
lib/model: NewFileSet outside fmut ( #5818 )
2019-06-29 08:49:30 +02:00
Simon Frei
b58f6ca886
lib/model: Correct/unify check if item changed ( #5819 )
2019-06-29 07:45:41 +02:00
Simon Frei
3c7e7e971d
lib/model: Make jobQueue.Jobs paginated ( fixes #5754 ) ( #5804 )
...
* lib/model: Make jobQueue.Jobs paginated (fixes #5754 )
* fix, no test yet
* add test
2019-06-27 19:25:38 +01:00
Audrius Butkevicius
afde0727fe
lib/versioner: Revert naming change ( fixes #5807 ) ( #5808 )
2019-06-25 08:56:11 +03:00
Simon Frei
cea5962417
lib/model: Unflake TestPullInvalidIgnoredSR/SO ( fixes #5796 ) ( #5799 )
2019-06-17 15:23:28 +03:00
Simon Frei
abd363e8bb
lib/model: Don't error on pulling deletion of invalid file ( fixes #5791 ) ( #5792 )
2019-06-14 08:48:14 +02:00
Simon Frei
13a746e0fb
lib/model: Prevent nil deref if folder stopped ( fixes #5780 ) ( #5778 )
2019-06-11 11:48:51 +02:00
Audrius Butkevicius
21f50e2f8f
lib/versioner: Use mtime for version cleanup ( fixes #5765 ) ( #5769 )
2019-06-11 09:16:55 +02:00
Simon Frei
1054ce9354
lib/model: Refactor sending indexes as suture service ( #5757 )
2019-06-10 13:27:22 +02:00
Jakob Borg
997bb5e7e1
all: Remove "large blocks" config ( #5763 )
...
We now always use large / variable blocks.
2019-06-06 15:57:38 +01:00
Simon Frei
e39d3f95dd
lib/protocol: Prioritize close msg and add close timeout ( #5746 )
2019-06-05 14:01:59 +08:00
Audrius Butkevicius
e714df013f
lib/connections: Add QUIC protocol support ( fixes #5377 ) ( #5737 )
2019-05-29 09:56:40 +02:00
Simon Frei
129df0613b
lib/model: Unflake folder restart with blocking conn test (ref #5707 ) ( #5744 )
2019-05-27 10:58:09 +01:00
Simon Frei
486230768e
lib/fs, lib/model: Add error channel to Watch to avoid panics ( fixes #5697 ) ( #5734 )
...
* lib/fs, lib/model: Add error channel to Watch to avoid panics (fixes #5697 )
* forgot unsupported watch
* and more non(-standard)-unixy fixes
* and windows test
* review
2019-05-25 20:08:26 +01:00
Simon Frei
d91da8feee
lib/model: Readd special handling of conn close in TestIssue5063 ( #5743 )
...
This partially reverts commit 64518b0f7e
.
2019-05-25 18:51:13 +01:00
Simon Frei
64518b0f7e
lib/model: Close connections when model is stopped ( #5733 )
2019-05-25 16:00:32 +02:00
Simon Frei
5b306510a0
lib/model: Consistently cleanup model in tests ( #5724 )
2019-05-19 14:29:07 +02:00
Simon Frei
1b2b970f32
lib/model, lib/testutils: Test closing a connection on folder restart ( #5707 )
2019-05-18 08:53:59 +02:00
Simon Frei
5ffbb7668d
lib/model: Fix test flakyness regression (ref #5592 ) ( #5718 )
2019-05-18 08:52:50 +02:00
Simon Frei
441ea109a1
lib/model: Refactor file deletions when pulling ( #5699 )
2019-05-17 18:29:54 +02:00
André Colomb
e4956358fb
lib/model: Remove superfluous check for IndexID in remote ClusterConfig ( #5717 )
...
The check in ClusterConfig() when iterating through announced devices
in a folder explicitly skips entries without a non-zero IndexID.
Therefore, the check for IndexID == 0 just below will never be true
and the intended cleanup of local index data will not happen.
Plainly remove that check to make the intended case distinction work.
2019-05-12 21:17:55 +02:00
Simon Frei
2b246eeb52
lib/model: Move test utilities to separate files ( #5694 )
2019-05-10 13:33:45 +02:00
Jakob Borg
31be810eb6
lib/model: Don't fail operation when fsync() fails ( fixes #5704 ) ( #5705 )
2019-05-09 21:20:29 +01:00
Simon Frei
b45d77b6be
lib/model: Fix regression deleting directories on pull (ref #5690 ) ( #5691 )
2019-05-06 20:55:26 +02:00
Simon Frei
79e67b7f79
lib/model: Remove individual pull errors on retry ( fixes #5659 ) ( #5690 )
2019-05-06 17:21:56 +02:00
Simon Frei
5fa8467756
lib/model: Consistent use of locks ( #5684 )
2019-05-02 18:55:39 +01:00
Simon Frei
5954b105cd
lib/model: Let fakeConnection call Model.Closed on close ( #5682 )
2019-05-02 14:24:55 +02:00
Simon Frei
defc5dca65
lib/model: Use correct lock ( #5683 )
2019-05-02 14:09:42 +02:00
Simon Frei
fe4daf242b
cmd, lib/db: Actually close goleveldb ( fixes #5505 ) ( #5671 )
2019-05-02 11:15:00 +02:00
Audrius Butkevicius
0ca1f26ff8
lib/versioner: Restore for all versioners, cross-device support ( #5514 )
...
* lib/versioner: Restore for all versioners, cross-device support
Fixes #4631
Fixes #4586
Fixes #1634
Fixes #5338
Fixes #5419
2019-04-28 23:30:16 +01:00
Simon Frei
5da41f75fa
lib/model, lib/protocol: Wait for reader/writer loops on close ( fixes #4170 ) ( #5657 )
...
* lib/protocol: Wait for reader/writer loops on close (fixes #4170 )
* waitgroup
* lib/model: Don't hold lock while closing connection
* fix comments
* review (lock once, func argument) and naming
2019-04-28 11:58:51 +01:00
Simon Frei
110806842c
lib/model: Pass the old not new fileinfo to deleteItemOnDisk ( fixes #5654 ) ( #5655 )
2019-04-23 20:46:28 +01:00
Simon Frei
926e9228ed
lib/scanner, lib/model: File -> item when logging error ( #5664 )
2019-04-21 16:19:59 +01:00
Simon Frei
86e72d9973
lib/model: Use RLock and legacy polish ( #5663 )
2019-04-21 13:21:36 +01:00
Simon Frei
3bea59b0d9
lib/model: Refactor progressEmitter to de-/activate by config ( fixes #4613 ) ( #5623 )
2019-04-13 14:20:51 +02:00
Simon Frei
fca895a632
lib/model: Fix block index calculation for recheckFile ( fixes #5649 ) ( #5648 )
2019-04-12 15:21:07 +02:00
Simon Frei
9b2a73f9ab
lib/model: Pause pull for at least as long as failed pull took ( fixes #5641 ) ( #5643 )
2019-04-10 16:22:23 +02:00
Simon Frei
c305265c62
lib/model: Request errors conforming to BEP specs ( #5642 )
2019-04-10 11:47:24 +02:00
Simon Frei
395e524e2d
lib/model: Update db on scan/pull in folder ( #5608 )
2019-04-07 13:29:17 +02:00
Simon Frei
8d1eff7e41
lib/model: Missing queue.Done and reset between pulls ( fixes #5332 ) ( #5626 )
2019-03-27 20:19:35 +01:00
Simon Frei
0cff66fcbc
lib/model: Optimize puller for meta only changes ( #5622 )
2019-03-27 08:36:58 +00:00
Simon Frei
43a5be1c4b
lib/model: Send item finished even after deregistering ( fixes #5362 ) ( #5620 )
2019-03-26 21:31:33 +01:00
Simon Frei
b50039a920
cmd/syncthing, lib/api: Separate api/gui into own package (ref #4085 ) ( #5529 )
...
* cmd/syncthing, lib/gui: Separate gui into own package (ref #4085 )
* fix tests
* Don't use main as interface name (make old go happy)
* gui->api
* don't leak state via locations and use in-tree config
* let api (un-)subscribe to config
* interface naming and exporting
* lib/ur
* fix tests and lib/foldersummary
* shorter URVersion and ur debug fix
* review
* model.JsonCompletion(FolderCompletion) -> FolderCompletion.Map()
* rename debug facility https -> api
* folder summaries in model
* disassociate unrelated constants
* fix merge fail
* missing id assignement
2019-03-26 19:53:58 +00:00
Simon Frei
d4e81fff8a
lib/model: Remove unnecessary arguments in pulling functions ( #5619 )
2019-03-25 12:59:22 +01:00
Simon Frei
e31a116e6e
lib/model: Pass correct file info to deleteItemOnDisk ( fixes #5616 ) ( #5617 )
2019-03-25 12:42:39 +01:00
Simon Frei
e7ae851900
lib/model: Debug and test fixes ( #5613 )
2019-03-22 14:43:47 +01:00
Simon Frei
1a6d023ba8
lib/model: Run recvonly tests in temporary dirs ( #5587 )
2019-03-20 17:38:03 +00:00
Simon Frei
289a02e994
lib/model: Integrate stat refs in folder ( #5596 )
2019-03-11 16:57:21 +00:00
Simon Frei
445637ebec
lib/model: Pass fset & ignores on folder creation ( #5592 )
2019-03-11 07:28:54 +01:00
Simon Frei
3f3d2c814b
lib/model: Remove unused code ( #5591 )
2019-03-10 17:05:39 +01:00
Simon Frei
189e44488e
lib/model: Introduce must test utility ( #5586 )
...
* lib/model: Introduce must test utility
* nice
2019-03-09 18:45:36 +00:00
Simon Frei
27ff20faa3
lib/model: Introduce waitForState test utility ( #5585 )
...
* lib/model: Introduce waitForState test utility
* folder id as param to waitForState
2019-03-09 10:36:55 +00:00
Simon Frei
b1564e53e4
lib/model: Improve test utilities ( #5584 )
2019-03-08 20:29:09 +00:00
Simon Frei
3a75b63776
lib/model: Use temp dir from osutils in tests ( #5581 )
2019-03-07 16:34:41 +01:00
Simon Frei
8e238c8e48
lib/model: Check before replacing existing file on pull ( fixes #5571 ) ( #5567 )
2019-03-07 15:15:14 +01:00
Jakob Borg
9da3273eb8
lib/model: Clarify fileInfoBatch.flushIfFull criteria
2019-03-05 21:34:04 +01:00
Simon Frei
bd37f6da17
lib/model: Optimize dbUpdaterRoutine ( #5576 )
2019-03-05 21:32:37 +01:00
Simon Frei
6940d79f5b
lib/model: Use errors.Wrap for pull errors ( #5563 )
2019-03-04 13:01:52 +00:00
Simon Frei
d6622b1f68
lib/model: setUp -> setup ( #5573 )
2019-03-04 12:27:10 +00:00
Simon Frei
43bcb3d5a5
lib/model: Refactor conflict name handling ( #5572 )
2019-03-04 12:20:40 +00:00
Jakob Borg
f24676ba5a
lib/tlsutil: Enable TLS 1.3 when available, on test builds ( fixes #5065 ) ( #5558 )
...
* lib/tlsutil: Enable TLS 1.3 when available, on test builds (fixes #5065 )
This enables TLS 1.3 negotiation on Go 1.12 by setting the GODEBUG
variable. For now, this just gets enabled on test versions (those with a
dash in the version number).
Users wishing to enable this on production builds can set GODEBUG
manually.
The string representation of connections now includes the TLS version
and cipher suite. This becomes part of the log output on connections.
That is, when talking to an old client:
Established secure connection .../TLS1.2-TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256
and now potentially:
Established secure connection .../TLS1.3-TLS_AES_128_GCM_SHA256
(The cipher suite was there previously in the log output, but not the
TLS version.)
I also added this info as a new Crypto() method on the connection, and
propagate this out to the API and GUI, where it can be seen in the
connection address hover (although with bad word wrapping sometimes).
* wip
* wip
2019-02-26 11:49:02 +01:00
Simon Frei
722b3fce6a
all: Hide implementations behind interfaces for mocked testing ( #5548 )
...
* lib/model: Hide implementations behind interfaces for mocked testing
* review
2019-02-26 08:09:25 +00:00
Simon Frei
d5ff2c41dc
all: Get rid of fatal logging ( #5537 )
...
* cleanup Fatal in lib/config/config.go
* cleanup Fatal in lib/config/folderconfiguration.go
* cleanup Fatal in lib/model/model.go
* cleanup Fatal in cmd/syncthing/monitor.go
* cleanup Fatal in cmd/syncthing/main.go
* cleanup Fatal in lib/api
* remove Fatal methods from logger
* lowercase in errors.Wrap
* one less channel
2019-02-14 20:29:14 +00:00
Simon Frei
905c3594b0
lib/model: Various model test fixes and polish ( #5528 )
...
* lib/model: Various model test fixes and polish
Missing calls to m.Stop()
Don't fail test if temporary test dir cleanup fails
* drop lazyness
2019-02-13 18:54:04 +00:00
Simon Frei
225c0dda80
lib/model: Scan conflicts after creation ( #5511 )
...
Also unflakes and improve TestRequestRemoteRenameChanged.
2019-02-12 16:05:20 +01:00
Simon Frei
5fd2cab102
lib/model: Run more tests in tmp dir ( #5527 )
2019-02-12 16:04:04 +01:00
Simon Frei
4299af1c63
lib/config, lib/model: Use path from locations to check disk space for db ( #5525 )
2019-02-12 12:25:11 +00:00
Simon Frei
d85ef949be
lib/model: Introduce setupModel test utility ( #5524 )
2019-02-12 12:18:13 +00:00
Simon Frei
7bac927ac8
lib/model: Use functions to generate config ( #5513 )
2019-02-12 07:50:07 +01:00
Jakob Borg
04fdafa280
lib/db, lib/model: Remove dead code ( #5517 )
2019-02-08 16:42:58 +01:00
Simon Frei
2f415d8f09
lib/model: Don't use LocalDeviceID as normal id in tests ( #5512 )
2019-02-06 09:32:03 +01:00
Simon Frei
e538797ce1
lib/model: Improve TestIssue5063 ( #5509 )
...
* lib/model: Improve TestIssue5063
* add not that helpful issue comment
2019-02-05 23:07:21 +00:00
Simon Frei
5df8219bcb
lib/model: Add progressEmitter to supervisor (model) ( #5510 )
2019-02-05 18:02:36 +00:00
Simon Frei
af4fb97538
lib/model: Fail test instead of panic due to closing channel twice ( #5508 )
2019-02-05 18:01:56 +00:00
Simon Frei
5d9d87f770
lib/model: Helperize test os and remove error return value ( #5507 )
2019-02-05 18:01:05 +00:00
Jakob Borg
c2ddc83509
all: Revert the underscore sillyness
2019-02-02 12:16:27 +01:00
Jakob Borg
9fd270d78e
all: A few more interesting linter fixes ( #5502 )
...
A couple of minor bugs and simplifications
2019-02-02 12:09:07 +01:00
Jakob Borg
2111386ee4
all: Fix some linter errors ( #5499 )
...
I'm working through linter complaints, these are some fixes. Broad
categories:
1) Ignore errors where we can ignore errors: add "_ = ..." construct.
you can argue that this is annoying noise, but apart from silencing the
linter it *does* serve the purpose of highlighting that an error is
being ignored. I think this is OK, because the linter highlighted some
error cases I wasn't aware of (starting CPU profiles, for example).
2) Untyped constants where we though we had set the type.
3) A real bug where we ineffectually assigned to a shadowed err.
4) Some dead code removed.
There'll be more of these, because not all packages are fixed, but the
diff was already large enough.
2019-02-02 10:11:42 +01:00
Simon Frei
7236d56731
lib/model: In tests disable watching for changes by default ( fixes #5246 ) ( #5485 )
2019-01-30 16:38:10 +01:00