Simon Frei and GitHub
78bd0341a8
all: Handle errors opening db/creating file-set (ref #5907 ) ( #7150 )
2020-12-21 12:59:22 +01:00
Simon Frei and GitHub
4a787986cd
lib/db: Prevent IndexID creation race ( #7211 )
2020-12-21 11:32:59 +01:00
Simon Frei and GitHub
bd0c9913cf
lib/db: Remove index ids when dropping folder ( #7200 )
2020-12-21 11:10:59 +01:00
Simon Frei and GitHub
fa40ccece1
lib: Consistently set suture logging ( #7202 )
2020-12-18 19:44:00 +01:00
André Colomb and GitHub
7502997e7e
all: Store pending devices and folders in database ( fixes #7178 ) ( #6443 )
2020-12-17 19:54:31 +01:00
Simon Frei and GitHub
a9764fc16c
lib: Skip deleted, locally changed on recv-enc folders ( fixes #7153 ) ( #7154 )
2020-11-27 11:26:36 +01:00
Simon Frei and GitHub
3169212046
lib/db: Do not reset index-id when dropping device (ref #7135 ) ( #7156 )
...
This reverts commit 641b7aee38 .
2020-11-25 22:54:05 +01:00
Simon Frei and GitHub
8ebd893349
lib/db: Store versions for last successful db migration ( #7140 )
2020-11-23 18:31:32 +01:00
Simon Frei and GitHub
641b7aee38
lib/db: Reset index-id when dropping device ( #7135 )
2020-11-20 14:17:09 +01:00
Simon Frei and GitHub
9524b51708
all: Implement suture v4-api ( #6947 )
2020-11-17 13:19:04 +01:00
Simon Frei and GitHub
1d3b9876f6
lib/api, lib/db: Add file debug endpoint ( #7095 )
2020-11-10 09:24:45 +01:00
Simon Frei and GitHub
31559e908b
all: Add untrusted folders behind feature flag (ref #62 ) ( #7055 )
2020-11-09 15:33:32 +01:00
Jakob Borg and GitHub
7892547873
lib: Remove USE_BADGER experiment ( #7089 )
...
This removes the switch for using a Badger database, because it has bugs
that it seems there is no interest in fixing, and no actual bug tracker
to track them in.
It retains the actual implementation for the sole purpose of being able
to do the conversion back to LevelDB if anyone is actually running with
USE_BADGER. At some point in a couple of versions we can remove the
implementation as well.
2020-11-03 09:10:35 +01:00
Simon Frei and GitHub
2ba3be5e4d
lib/db: Add mechanism to repair db without schema update (ref #7044 ) ( #7047 )
2020-10-21 14:21:09 +02:00
Simon Frei and GitHub
27c91c57d5
lib/db: Remove need for the right dev removing globals ( fixes #7036 ) ( #7044 )
2020-10-21 08:26:10 +02:00
Simon Frei and GitHub
01a7ef3b0f
lib/db: Undo adding user info to panic msgs (ref #7029 ) ( #7040 )
2020-10-19 08:40:37 +02:00
Simon Frei and GitHub
23c935b05a
lib/db: Ignore not found on delete in recalcGlobal (ref #7026 ) ( #7041 )
2020-10-19 08:28:53 +02:00
Simon Frei and GitHub
d828adb648
cmd/stcrashreceiver, lib/db: Improve panic message handling ( #7029 )
2020-10-08 17:37:45 +02:00
Simon Frei and GitHub
14ae330eff
lib/db: Improve error handling checking db (ref #7026 ) ( #7027 )
2020-10-06 20:14:09 +02:00
Audrius Butkevicius and GitHub
e027175446
all: Move remaining protos to use the vanity plugin ( #7009 )
2020-10-02 08:07:05 +02:00
Simon Frei and GitHub
08bebbe59b
lib/db, lib/syncthing: Don't repair DB on upgrade, but on error ( fixes #6917 ) ( #6971 )
2020-09-10 10:54:41 +02:00
Simon Frei and GitHub
ecc24428ac
lib/model: Prevent duplicate need count on recalculating metadata ( #6964 )
2020-09-07 20:19:03 +02:00
674fca3868
lib/db, lib/protocol: Never need empty-version entries ( fixes #6961 ) ( #6962 )
...
Avoid havoc when discovering locally-deleted-upgraded files during repair / need calculation...
Co-authored-by: Simon Frei <freisim93@gmail.com >
2020-09-07 20:18:25 +02:00
Jakob Borg and GitHub
415adfbae6
lib/db: Don't hang on double iterator release with Badger ( #6960 )
...
Since iterators must be released before committing or discarding a
transaction we have the pattern of both deferring a release plus doing
it manually. But we can't release twice because we track this with a
WaitGroup that will panic when there are more Done()s than Add()s. This
just adds a boolean to let an iterator keep track.
2020-09-07 10:31:33 +02:00
Simon Frei and GitHub
52d1681fe6
lib/db: Copy returned, old FileVersion ( #6952 )
2020-09-04 14:13:38 +02:00
Simon Frei and GitHub
7b821d2550
lib/db: Add local need check&repair ( #6950 )
2020-09-04 14:01:46 +02:00
Simon Frei and GitHub
0e3e0a7c9e
cmd/stindex, lib/db: Use same condition to check for needed files ( #6954 )
2020-09-04 13:59:04 +02:00
Jakob Borg
71bfad0bc6
cmd/stindex: Add dumping folder meta
2020-09-04 11:39:21 +02:00
Jakob Borg
b7986801cd
cmd/stindex: Print more hashes and versions
2020-09-04 09:10:33 +02:00
Audrius Butkevicius and GitHub
d507d932b8
all: Use protobuf to generate config structs ( fixes #6734 ) ( #6900 )
2020-08-25 08:11:14 +02:00
Simon Frei and GitHub
cc1f6e4d4a
lib/db, lib/model: Cover exec-paths with debug logging ( #6918 )
2020-08-20 16:11:20 +02:00
cbbc262161
lib/db: Dont recurse on flush ( fixes #6905 ) ( #6906 )
...
Or else we crash.
Co-authored-by: Jakob Borg <jakob@kastelo.net >
Co-authored-by: Simon Frei <freisim93@gmail.com >
2020-08-19 13:13:44 +02:00
Simon Frei and GitHub
8f5215878b
lib/db: Don't put truncated files (ref #6855 , ref #6501 ) ( #6888 )
2020-08-18 09:20:12 +02:00
Simon Frei and GitHub
bbf25e2d02
lib/db: Log context on panic ( #6872 )
2020-08-01 17:32:36 +02:00
Simon Frei and GitHub
850dd4cd25
lib/db: Don't count invalid items to global state (ref #6850 ) ( #6863 )
2020-07-30 13:49:14 +02:00
Simon Frei and GitHub
424d1b1608
lib/db: Commit meta when dropping device ( #6862 )
2020-07-28 16:46:42 +02:00
Simon Frei and GitHub
1b9e5c0937
lib/db: Include blocks in db check (ref #6855 ) ( #6861 )
2020-07-28 16:25:07 +02:00
Simon Frei and GitHub
08e0f938a9
lib/db: Update global meta even if unchanged ( fixes #6850 ) ( #6852 )
2020-07-24 12:36:16 +02:00
Audrius Butkevicius and GitHub
55147f5901
lib/db: Rework flush hooks ( #6838 )
2020-07-19 08:55:27 +02:00
greatroar and GitHub
9f92f8c609
lib/db: Use SipHash to deal with hash collision in GC ( #6826 )
...
If the GC finds a key k that it wants to keep, it records that in a
Bloom filter. If a key k' can be removed but its hash collides with k,
it will be kept. Since the old Bloom filter code was completely
deterministic, the next run would encounter the same collision, assuming
k must still be kept.
A randomized hash function that uses all the SHA-256 bits solves this
problem: the second run has a non-zero probability of removing k', as
long as the Bloom filter is not completely full.
2020-07-11 09:36:09 +02:00
Jakob Borg
bbda58a29f
lib/db: Add test for GC run
2020-07-11 09:22:15 +02:00
Simon Frei and GitHub
d7fc7008af
lib/protocol: Add BlocksHash to FileInfo string ( #6802 )
2020-06-27 07:44:33 +02:00
Simon Frei and GitHub
4881a6336f
lib/db: Correct need accounting on reset ( fixes #6784 ) ( #6785 )
2020-06-23 07:29:27 +02:00
Simon Frei and GitHub
8cf9d91ed4
lib: Print nicely rounded durations ( #6756 )
2020-06-18 10:55:41 +02:00
Simon Frei and GitHub
cbe0d2fffc
lib/db: Improve error message on meta inconsistency ( #6751 )
2020-06-17 10:03:39 +02:00
Jakob Borg and GitHub
a218a69530
lib/db: Use explicit byte type for type prefixes ( #6754 )
...
This makes Go 1.15 test/vet happy, avoiding "conversion from untyped int
to string yields a string of one rune" warning where we do
string(KeyTypeWhatever) in namespaced.go.
It also clarifies and enforces the currently allowed range of these
numbers so I think it's fine.
2020-06-17 09:37:07 +02:00
greatroar and GitHub
df83b84aa1
all: Make all error implementations pointer types ( #6726 )
...
This matches the convention of the stdlib and avoids ambiguity: when
customErr{} and &customErr{} both implement error, client code needs to
check for both.
Memory use should remain the same, since storing a non-pointer type in
an interface value still copies the value to the heap.
2020-06-16 09:27:34 +02:00
b6a84ecb0c
lib/db: Remove unused keyer methods ( #6723 )
...
Co-authored-by: greatroar <@>
2020-06-08 19:19:18 +01:00
André Colomb and GitHub
46536509d7
lib/protocol: Avoid panic in DeviceIDFromBytes ( #6714 )
2020-06-07 10:31:12 +02:00
Simon Frei and GitHub
fac4dec840
lib/db: New VersionList migration fixes (ref #6638 ) ( #6705 )
2020-06-02 23:05:41 +02:00