r19118@catbus: nickm | 2008-03-29 00:27:08 -0400

Code (disabled) to get way too much info about the contents of old_routers on USR1.


svn:r14230
This commit is contained in:
Nick Mathewson 2008-03-29 04:27:34 +00:00
parent e89bf1c573
commit e19d96637d
3 changed files with 37 additions and 2 deletions

View File

@ -2939,6 +2939,7 @@ connection_dirserv_finish_spooling(dir_connection_t *conn)
static int
connection_dirserv_add_servers_to_outbuf(dir_connection_t *conn)
{
time_t now = time(NULL);
int by_fp = (conn->dir_spool_src == DIR_SPOOL_SERVER_BY_FP ||
conn->dir_spool_src == DIR_SPOOL_EXTRA_BY_FP);
int extra = (conn->dir_spool_src == DIR_SPOOL_EXTRA_BY_FP ||
@ -2966,7 +2967,7 @@ connection_dirserv_add_servers_to_outbuf(dir_connection_t *conn)
* unknown bridge descriptor has shown up between then and now. */
continue;
}
sd->last_served_at = now;
body = signed_descriptor_get_body(sd);
if (conn->zlib_state) {
int last = ! smartlist_len(conn->fingerprint_stack);

View File

@ -1221,6 +1221,8 @@ typedef struct signed_descriptor_t {
/** The valid-until time of the most recent consensus that listed this
* descriptor. 0 for "never listed in a consensus, so far as we know." */
time_t last_listed_as_valid_until;
/** DOCDOC */
time_t last_served_at; /*XXXX021 remove if not useful. */
/* If true, we do not ever try to save this object in the cache. */
unsigned int do_not_cache : 1;
/* If true, this item is meant to represent an extrainfo. */

View File

@ -2247,11 +2247,43 @@ dump_routerlist_mem_usage(int severity)
SMARTLIST_FOREACH(routerlist->old_routers, signed_descriptor_t *, sd,
olddescs += sd->signed_descriptor_len);
log(severity, LD_GENERAL,
log(severity, LD_DIR,
"In %d live descriptors: "U64_FORMAT" bytes. "
"In %d old descriptors: "U64_FORMAT" bytes.",
smartlist_len(routerlist->routers), U64_PRINTF_ARG(livedescs),
smartlist_len(routerlist->old_routers), U64_PRINTF_ARG(olddescs));
#if 0
{
const smartlist_t *networkstatus_v2_list = networkstatus_get_v2_list();
networkstatus_t *consensus = networkstatus_get_latest_consensus();
log(severity, LD_DIR, "Now let's look through old_descriptors!");
SMARTLIST_FOREACH(routerlist->old_routers, signed_descriptor_t *, sd, {
int in_v2 = 0;
int in_v3 = 0;
char published[ISO_TIME_LEN+1];
char last_valid_until[ISO_TIME_LEN+1];
char last_served_at[ISO_TIME_LEN+1];
char id[HEX_DIGEST_LEN+1];
format_iso_time(published, sd->published_on);
format_iso_time(last_valid_until, sd->last_listed_as_valid_until);
format_iso_time(last_served_at, sd->last_served_at);
base16_encode(id, sizeof(id), sd->identity_digest, DIGEST_LEN);
SMARTLIST_FOREACH(networkstatus_v2_list, networkstatus_v2_t *, ns,
if (networkstatus_v2_find_entry(ns, sd->identity_digest)) {
in_v2 = 1; break;
});
if (consensus && networkstatus_vote_find_entry(consensus,
sd->identity_digest))
in_v3 = 1;
log(severity, LD_DIR,
"Old descriptor for %s (published %s) %sin v2 ns, %sin v3 "
"consensus. Last valid until %s; last served at %s.",
id, published, in_v2 ? "" : "not ", in_v3 ? "" : "not ",
last_valid_until, last_served_at);
});
}
#endif
}
static INLINE int