geoip_remove_old_clients() never gets called?
We never call geoip_remove_old_clients(). This means bridge relays just grow a larger and larger pile of client geoip entries.
I would fix suggest to fix it in the same way we clean up other items:
=================================================================== --- main.c (revision 14322) +++ main.c (working copy) @@ -988,6 +988,7 @@ /* Remove old information from rephist and the rend cache. */ if (time_to_clean_caches < now) { rep_history_clean(now - options->RephistTrackTime);
- geoip_remove_old_clients(now - options->RephistTrackTime); rend_cache_clean(); rend_cache_clean_v2_descs_as_dir(); #define CLEAN_CACHES_INTERVAL (30*60)
=================================================================== --- geoip.c (revision 14322) +++ geoip.c (working copy) @@ -326,6 +326,7 @@ char *result = NULL; if (!geoip_is_loaded()) return NULL;
- geoip_remove_old_clients(now - get_options()->RephistTrackTime); if (client_history_starts < (now - 126060)) { char buf[32]; smartlist_t *chunks = NULL;
But there's a problem. If we publish a descriptor very often, then the difference between "the past 24 hours at point x" and "the past 24 hours at point x+\delta" will give away what happened a day ago, to whatever granularity we happen to have between the two descriptor updates.
[Automatically added by flyspray2trac: Operating System: All]