diff --git a/changes/bug1810 b/changes/bug1810 new file mode 100644 index 0000000000..11e561f7cf --- /dev/null +++ b/changes/bug1810 @@ -0,0 +1,6 @@ + o Major bugfixes: + - Don't decide to make a new descriptor when receiving a HUP signal. + This bug has caused a lot of relays to disappear from the consensus + periodically. Fixes the most common case of triggering bug 1810; + bugfix on 0.2.2.7-alpha. + diff --git a/src/common/util.c b/src/common/util.c index 355b3ab34b..309f24ec09 100644 --- a/src/common/util.c +++ b/src/common/util.c @@ -2093,7 +2093,7 @@ read_file_to_str(const char *filename, int flags, struct stat *stat_out) int save_errno = errno; if (errno == ENOENT && (flags & RFTS_IGNORE_MISSING)) severity = LOG_INFO; - log_fn(severity, LD_FS,"Could not open \"%s\": %s ",filename, + log_fn(severity, LD_FS,"Could not open \"%s\": %s",filename, strerror(errno)); errno = save_errno; return NULL; diff --git a/src/or/circuitbuild.c b/src/or/circuitbuild.c index c91e2f32f1..ac0df919d2 100644 --- a/src/or/circuitbuild.c +++ b/src/or/circuitbuild.c @@ -1750,7 +1750,7 @@ circuit_handle_first_hop(origin_circuit_t *circ) /* not currently connected in a useful way. */ const char *name = strlen(firsthop->extend_info->nickname) ? firsthop->extend_info->nickname : fmt_addr(&firsthop->extend_info->addr); - log_info(LD_CIRC, "Next router is %s: %s ", + log_info(LD_CIRC, "Next router is %s: %s", safe_str_client(name), msg?msg:"???"); circ->_base.n_hop = extend_info_dup(firsthop->extend_info); diff --git a/src/or/config.c b/src/or/config.c index 016f831b83..3493abf71c 100644 --- a/src/or/config.c +++ b/src/or/config.c @@ -3896,7 +3896,7 @@ options_transition_affects_workers(or_options_t *old_options, old_options->ORPort != new_options->ORPort || old_options->ServerDNSSearchDomains != new_options->ServerDNSSearchDomains || - old_options->SafeLogging != new_options->SafeLogging || + old_options->_SafeLogging != new_options->_SafeLogging || old_options->ClientOnly != new_options->ClientOnly || public_server_mode(old_options) != public_server_mode(new_options) || !config_lines_eq(old_options->Logs, new_options->Logs) || diff --git a/src/or/router.c b/src/or/router.c index 8b2c797bb6..63ed4cf404 100644 --- a/src/or/router.c +++ b/src/or/router.c @@ -87,7 +87,6 @@ set_onion_key(crypto_pk_env_t *k) tor_mutex_acquire(key_lock); crypto_free_pk_env(onionkey); onionkey = k; - onionkey_set_at = time(NULL); tor_mutex_release(key_lock); mark_my_descriptor_dirty("set onion key"); }