Merge remote-tracking branch 'tor-gitlab/mr/269' into maint-0.4.5

This commit is contained in:
Nick Mathewson 2021-01-21 13:37:21 -05:00
commit 3d952b461d
2 changed files with 17 additions and 1 deletions

6
changes/bug24857 Normal file
View File

@ -0,0 +1,6 @@
o Minor bugfixes (directory cache, performance, windows):
- Limit the number of items in the consensus diff cache to 64 on Windows.
We hope this will resolve an issue where Windows relay operators reported
Tor using 100% CPU while we investigate better solutions. Fixes bug 24857;
bugfix on tor-0.3.1.1-alpha.

View File

@ -177,6 +177,16 @@ typedef struct cdm_diff_t {
/** Hashtable mapping flavor and source consensus digest to status. */
static HT_HEAD(cdm_diff_ht, cdm_diff_t) cdm_diff_ht = HT_INITIALIZER();
#ifdef _WIN32
// XXX(ahf): For tor#24857, a contributor suggested that on Windows, the CPU
// begins to spike at 100% once the number of files handled by the consensus
// diff manager becomes larger than 64. To see if the issue goes away, we
// hardcode this value to 64 now while we investigate a better solution.
# define CACHE_MAX_NUM 64
#else
# define CACHE_MAX_NUM 128
#endif
/**
* Configuration for this module
*/
@ -184,7 +194,7 @@ static consdiff_cfg_t consdiff_cfg = {
// XXXX I'd like to make this number bigger, but it interferes with the
// XXXX seccomp2 syscall filter, which tops out at BPF_MAXINS (4096)
// XXXX rules.
/* .cache_max_num = */ 128
/* .cache_max_num = */ CACHE_MAX_NUM
};
static int consdiffmgr_ensure_space_for_files(int n);