commit b5d1fded3dfa836ef1f45f6acb74971f75d5caa9 Merge: 2974c83 efa342f Author: Nick Mathewson nickm@torproject.org Date: Tue Jun 18 10:25:30 2013 -0400
Merge remote-tracking branch 'origin/maint-0.2.4'
changes/bug9002 | 4 ++ changes/bug9063_redux | 15 ++++++++ doc/tor.1.txt | 9 +++++ src/common/mempool.h | 2 + src/or/circuitlist.c | 102 +++++++++++++++++++++++++++++++++++++++++++++++++ src/or/circuitlist.h | 1 + src/or/config.c | 8 ++++ src/or/or.h | 4 ++ src/or/relay.c | 33 +++++++++++++++- src/or/relay.h | 1 + src/or/rendcommon.c | 25 +++++++++++- 11 files changed, 200 insertions(+), 4 deletions(-)
diff --cc src/or/circuitlist.h index 94887d5,874f68c..03f678c --- a/src/or/circuitlist.h +++ b/src/or/circuitlist.h @@@ -63,9 -61,7 +63,10 @@@ int circuit_count_pending_on_channel(ch void assert_cpath_layer_ok(const crypt_path_t *cp); void assert_circuit_ok(const circuit_t *c); void circuit_free_all(void); + void circuits_handle_oom(size_t current_allocation);
+void channel_note_destroy_pending(channel_t *chan, circid_t id); +void channel_note_destroy_not_pending(channel_t *chan, circid_t id); + #endif
diff --cc src/or/relay.c index 38776bc,3138c5e..251d3ff --- a/src/or/relay.c +++ b/src/or/relay.c @@@ -2597,8 -2534,14 +2620,14 @@@ append_cell_to_circuit_queue(circuit_t } #endif
- cell_queue_append_packed_copy(queue, cell, chan->wide_circ_ids); + cell_queue_append_packed_copy(queue, cell, chan->wide_circ_ids, 1);
+ if (PREDICT_UNLIKELY(cell_queues_check_size())) { + /* We ran the OOM handler */ + if (circ->marked_for_close) + return; + } + /* If we have too many cells on the circuit, we should stop reading from * the edge streams for a while. */ if (!streams_blocked && queue->n >= CELL_QUEUE_HIGHWATER_SIZE)
tor-commits@lists.torproject.org