Nick Mathewson
8a81a70878
Move consdiffmgr_rescan() into a mainloop event.
...
The change here was very simple, since there is a flag set whenever
we want to schedule this event.
Closes ticket 25391.
m
2018-04-26 12:20:01 -04:00
Nick Mathewson
1e81aaa62f
Merge branch 'maint-0.3.2'
2018-01-31 10:06:49 -05:00
Nick Mathewson
9bfb6fe395
Merge branch 'maint-0.3.1' into maint-0.3.2
2018-01-31 10:06:49 -05:00
Nick Mathewson
5fc0437e74
But in most Earth cultures, there are 60s in a minute.
2018-01-31 10:06:43 -05:00
Nick Mathewson
8b162443b9
Merge branch 'maint-0.3.2'
2018-01-31 10:01:13 -05:00
Nick Mathewson
cb90defba6
Merge branch 'maint-0.3.1' into maint-0.3.2
2018-01-31 10:01:13 -05:00
Nick Mathewson
86e6cb6409
add a rate-limit.
2018-01-31 10:01:10 -05:00
Nick Mathewson
69e242f845
Merge branch 'maint-0.3.2'
2018-01-31 09:50:24 -05:00
Nick Mathewson
e81896adda
Merge branch 'maint-0.3.1' into maint-0.3.2
2018-01-31 09:50:24 -05:00
Nick Mathewson
9c2bc441f8
If out-of-disk when saving a consensus cache entry, don't BUG.
...
Just warn instead.
Fixes bug 24859.
2018-01-26 13:14:14 -05:00
Nick Mathewson
5ee0cccd49
Merge branch 'macro_free_v2_squashed'
2017-12-08 14:58:43 -05:00
Nick Mathewson
fa0d24286b
Convert remaining function (mostly static) to new free style
2017-12-08 14:47:19 -05:00
Nick Mathewson
ba94dc28e8
Merge branches 'bug24099_031' and 'bug24086_031' into maint-0.3.2
2017-11-21 12:37:46 -05:00
Nick Mathewson
68c21860e3
Add another assertion to check for 24086 root causes
...
In cdm_diff_ht_set_status(), we shouldn't have been allowing the
status CDM_DIFF_PRESENT to be set if there wasn't actually a handle.
2017-11-20 11:06:31 -05:00
Nick Mathewson
3bb29dd707
Correctly handle partial success in consensus diff calculation.
...
Previously, if store_multiple() reported a partial success, we would
store all the handles it gave us as if they had succeeded. But it's
possible for the diff to be only partially successful -- for
example, if LZMA failed but the other compressors succeeded.
Fixes bug 24086; bugfix on 0.3.1.1-alpha.
2017-11-20 11:04:37 -05:00
Nick Mathewson
c1deabd3b0
Run our #else/#endif annotator on our source code.
2017-09-15 16:24:44 -04:00
Nick Mathewson
da159c45e2
On windows, allow many entries in conscache directories
...
Since we can't be sure that we can unlink enough files on windows
here, let's let the number of permitted entries grow huge if it
really must.
We do this by letting the storagedir hold lots of entries, but still
trying to keep the number of entries under the configured limit. We
also have to tell consdiffmgr not to freak out if it can't actually
remove enough entries.
Part of a fix for bug 22752
2017-08-29 13:03:36 -04:00
Nick Mathewson
3af4aafbcb
Fix a memory leak in consdiffmgr.c
...
Fixes bug 23139; bugfix on 0.3.1.1-alpha.
2017-08-08 09:13:45 -04:00
Nick Mathewson
ba334c00da
Merge branch 'multi-priority_squashed' into maint-0.3.1
2017-07-27 16:29:34 -04:00
Nick Mathewson
0ae0b5aa41
Queue consensus diffs at LOW priority.
...
Fixes bug 22883.
2017-07-27 16:28:59 -04:00
Nick Mathewson
abb9a5bdda
New configuration option MaxConsensusAgeForDiffs
...
Relay operators (especially bridge operators) can use this to lower
or raise the number of consensuses that they're willing to hold for
diff generation purposes.
This enables a workaround for bug 22883.
2017-07-12 13:15:16 -04:00
Nick Mathewson
de5f0d8ba7
Replace crash on missing handle in consdiffmgr with nonfatal assert
...
Attempts to mitigate 22752.
2017-06-28 14:21:21 -04:00
Alexander Færøy
07f2940b45
Set published_out for consensus cache entries in spooled_resource_estimate_size().
...
This patch ensures that the published_out output parameter is set to the
current consensus cache entry's "valid after" field.
See: https://bugs.torproject.org/22702
2017-06-27 18:25:48 -04:00
Nick Mathewson
bbeba2412e
Fix resource leak in parse_consensus_request()
...
We were allocating diff_hash_in_url on some URLs, but not freeing it.
Fixes CID 1409669. Bug not in any released Tor.
2017-05-16 10:47:41 -04:00
Nick Mathewson
2ca827104d
Report deleted consensuses as NOT_FOUND rather than AVAILABLE
...
This bug happened because of a bogus pointer check in
consdiffmgr_find_consensus(), not in any released Tor.
Fixes CID 1409670. Good catch, Coverity!
2017-05-16 10:44:24 -04:00
Nick Mathewson
460b923026
fix a memory leak
2017-05-15 18:13:20 -04:00
Nick Mathewson
afef059795
Merge remote-tracking branch 'public/prop140_aftermath_cfg'
2017-05-15 17:26:47 -04:00
Nick Mathewson
7591518d16
Copy valid/fresh-until and signatories values into diffs.
2017-05-15 17:21:55 -04:00
Nick Mathewson
fd1190581d
Store fresh/valid-until and signatories values on all consensus objects.
2017-05-15 17:21:55 -04:00
Nick Mathewson
dcc533fb13
Implement functions to expose valid/fresh-until and voters
...
These still won't do anything till I get the values to be filled in.
Also, I changed the API a little (with corresponding changes in
directory.c) to match things that it's easier to store.
2017-05-15 17:21:55 -04:00
Nick Mathewson
2f06345db3
Move stub accessor functions a level higher, to consdiffmgr
2017-05-15 17:21:55 -04:00
Alexander Færøy
64116ab97f
Fix tautological constant out-of-range comparison warnings.
2017-05-12 17:59:29 +02:00
Alexander Færøy
a1e8ef0076
Fix DoubleNL warning from make check-spaces
.
2017-05-12 17:57:11 +02:00
Nick Mathewson
db370bb8a8
Test fix: expect old consensuses to be deleted if not deflate-compressed
2017-05-12 17:45:44 +02:00
Nick Mathewson
30dfb36148
consdiffmgr: Reload latest consensus entries on start.
2017-05-12 17:45:33 +02:00
Nick Mathewson
8100305e71
consdiffmgr: expose cached consensuses
2017-05-12 17:45:24 +02:00
Nick Mathewson
7b0dcf5c4a
Cleanup logic: only retain zlib-compressed consensuses
...
Now that we're making a bunch of these with consdiffmgr, we should
throw out all but one when we get a newer consensus.
2017-05-12 17:45:15 +02:00
Nick Mathewson
151cd121a2
consdiffmgr: compress incoming consensuses in the background
...
Also, compress them in several ways.
This breaks the unit tests; subsequent commits will make them pass
again.
2017-05-12 17:45:07 +02:00
Nick Mathewson
6da31ec484
consdiffmgr: Extract the code for compressing and storing
...
We're going to use this for consensuses too.
2017-05-12 17:44:55 +02:00
Nick Mathewson
c276c10d3b
Turn consdiffmgr.cache_max_age_hours into a parameter
2017-05-05 09:11:06 -04:00
Nick Mathewson
6beb7028d8
Do not BUG on missing sha3-as-signed field
...
This can happen if you've been running an earlier alpha on your
relay. Instead, just ignore the entry.
2017-05-04 08:50:21 -04:00
Nick Mathewson
3af9704e45
bug#22143/prop#140: in consdiffmgr, store and use digest-as-signed
...
We need to index diffs by the digest-as-signed of their source
consensus, so that we can find them even from consensuses whose
signatures are encoded differently.
2017-05-04 08:36:50 -04:00
Nick Mathewson
fd437f2a02
Remove special-casing for NO_METHOD in consdiffmgr.c
2017-05-02 08:37:57 -04:00
Nick Mathewson
b8f7488e94
Fix a brazen memleak in consdiffmgr_add_consensus()
2017-04-28 15:41:52 -04:00
Nick Mathewson
00a12337ff
Merge branches 'consdiffmgr_orig_squashed' and 'actually_compute_diffs_squashed'
2017-04-27 21:43:06 -04:00
Nick Mathewson
1e1581a24e
Pre-compress consensus diffs with supported consensus methods.
2017-04-27 21:40:46 -04:00
Nick Mathewson
a1172b6774
Store archived consensuses compressed on disk.
...
I'm just using gzip compression now, for performance.
2017-04-27 21:40:46 -04:00
Nick Mathewson
7a0964279f
Functionality to ensure there is space to add files to cache.
2017-04-27 21:40:13 -04:00
Nick Mathewson
920475f293
New force-delete option on consensus_cache_delete_pending()
...
If we're out of file space in the storage directory, we'll need to
get rid of old files fast.
2017-04-27 21:40:13 -04:00
Nick Mathewson
466e914088
Lower the file limit in consdiffmgr, to support seccomp2
2017-04-27 21:40:13 -04:00