summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNick Mathewson <nickm@torproject.org>2017-03-15 11:09:17 -0400
committerNick Mathewson <nickm@torproject.org>2017-03-15 11:09:17 -0400
commit698984c18003cca9f7763561ac479c3d5849426a (patch)
tree5d812b7d8d0ec84651e28673df743dfdc7efaf13
parent0e101e65457163963b01722369eaef5b862a82f9 (diff)
parent567a56ae2e59aef26b31829f300c5700c7923f7b (diff)
downloadtor-698984c18003cca9f7763561ac479c3d5849426a.tar.gz
tor-698984c18003cca9f7763561ac479c3d5849426a.zip
Merge branch 'maint-0.3.0' into release-0.3.0
-rw-r--r--changes/bug200593
-rw-r--r--src/or/onion.c4
2 files changed, 6 insertions, 1 deletions
diff --git a/changes/bug20059 b/changes/bug20059
new file mode 100644
index 0000000000..091fab06d1
--- /dev/null
+++ b/changes/bug20059
@@ -0,0 +1,3 @@
+ o Minor bugfixes (relay):
+ - Avoid a double-marked-circuit warning that can happen when we receive
+ DESTROY cells under heavy load. Fixes bug 20059; bugfix on 0.1.0.1-rc.
diff --git a/src/or/onion.c b/src/or/onion.c
index 42b9ca4b18..b3898d4085 100644
--- a/src/or/onion.c
+++ b/src/or/onion.c
@@ -238,7 +238,9 @@ onion_pending_add(or_circuit_t *circ, create_cell_t *onionskin)
onion_queue_entry_remove(head);
log_info(LD_CIRC,
"Circuit create request is too old; canceling due to overload.");
- circuit_mark_for_close(TO_CIRCUIT(circ), END_CIRC_REASON_RESOURCELIMIT);
+ if (! TO_CIRCUIT(circ)->marked_for_close) {
+ circuit_mark_for_close(TO_CIRCUIT(circ), END_CIRC_REASON_RESOURCELIMIT);
+ }
}
return 0;
}