Directory authorities should never send a 503 "busy" response to

requests for votes or keys. Bugfix on 0.2.0.8-alpha; exposed by
bug 959.


svn:r19189
This commit is contained in:
Roger Dingledine 2009-03-31 01:29:07 +00:00
parent b949871a1e
commit 793f1ce007
2 changed files with 7 additions and 4 deletions

View File

@ -1,4 +1,4 @@
Changes in version 0.2.1.14-??? - 2009-03-??
Changes in version 0.2.1.14-??? - 2009-04-??
o Minor bugfixes:
- Avoid trying to print raw memory to the logs when we decide to
give up on downloading a given relay descriptor. Bugfix on
@ -16,6 +16,9 @@ Changes in version 0.2.1.14-??? - 2009-03-??
duplicating a string at the end of a page. This bug was
harmless for now, but could have meant crashes later. Fix by
lark. Bugfix on 0.2.1.1-alpha.
- Directory authorities should never send a 503 "busy" response to
requests for votes or keys. Bugfix on 0.2.0.8-alpha; exposed by
bug 959.
o Minor features (controller):
- Try harder to look up nicknames for routers on a circuit when

View File

@ -2604,7 +2604,7 @@ directory_handle_command_get(dir_connection_t *conn, const char *headers,
!strcmpstart(url,"/tor/status-vote/next/")) {
/* XXXX If-modified-since is only implemented for the current
* consensus: that's probably fine, since it's the only vote document
* people fetch much.*/
* people fetch much. */
int current;
ssize_t body_len = 0;
ssize_t estimated_len = 0;
@ -2670,7 +2670,7 @@ directory_handle_command_get(dir_connection_t *conn, const char *headers,
}
});
if (global_write_bucket_low(TO_CONN(conn), estimated_len, 1)) {
if (global_write_bucket_low(TO_CONN(conn), estimated_len, 2)) {
write_http_status_line(conn, 503, "Directory busy, try again later.");
goto vote_done;
}
@ -2827,7 +2827,7 @@ directory_handle_command_get(dir_connection_t *conn, const char *headers,
SMARTLIST_FOREACH(certs, authority_cert_t *, c,
len += c->cache_info.signed_descriptor_len);
if (global_write_bucket_low(TO_CONN(conn), compressed?len/2:len, 1)) {
if (global_write_bucket_low(TO_CONN(conn), compressed?len/2:len, 2)) {
write_http_status_line(conn, 503, "Directory busy, try again later.");
goto keys_done;
}