Log information on specific compression backends in the OOM handler.

This patch adds some additional logging to circuits_handle_oom() to give
us more information about which specific compression backend that is
using a certain amount of memory.

See: https://bugs.torproject.org/25372
This commit is contained in:
Alexander Færøy 2018-02-27 22:55:10 +01:00 committed by Nick Mathewson
parent 910422e8fa
commit fd36bd8971
2 changed files with 11 additions and 0 deletions

3
changes/bug25372 Normal file
View File

@ -0,0 +1,3 @@
o Minor features (log messages):
- Improve log message in the out of memory handler to include information
about memory usage from the different compression backends. Closes ticket 25372.

View File

@ -82,6 +82,9 @@
#include "routerlist.h"
#include "routerset.h"
#include "channelpadding.h"
#include "compress_lzma.h"
#include "compress_zlib.h"
#include "compress_zstd.h"
#include "ht.h"
@ -2476,12 +2479,17 @@ circuits_handle_oom(size_t current_allocation)
log_notice(LD_GENERAL, "We're low on memory (cell queues total alloc:"
" %"TOR_PRIuSZ" buffer total alloc: %" TOR_PRIuSZ ","
" tor compress total alloc: %" TOR_PRIuSZ
" (zlib: %" TOR_PRIuSZ ", zstd: %" TOR_PRIuSZ ","
" lzma: %" TOR_PRIuSZ "),"
" rendezvous cache total alloc: %" TOR_PRIuSZ "). Killing"
" circuits withover-long queues. (This behavior is controlled by"
" MaxMemInQueues.)",
cell_queues_get_total_allocation(),
buf_get_total_allocation(),
tor_compress_get_total_allocation(),
tor_zlib_get_total_allocation(),
tor_zstd_get_total_allocation(),
tor_lzma_get_total_allocation(),
rend_cache_get_total_allocation());
{