You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@kudu.apache.org by al...@apache.org on 2017/10/15 04:10:32 UTC

[3/3] kudu git commit: tsan: flush TSAN memory every 10 seconds

tsan: flush TSAN memory every 10 seconds

I'm seeing a TSAN precommit test fail in a hard-to-diagnose way because the
Linux OOM killer is killing tservers underneath it. It doesn't appear to
be any leak -- rather, TSAN is just using too much memory due to the
test doing a lot of allocation.

This enables a TSAN option to flush its memory every 10 seconds. This
has the downside of potentially missing races that happen far apart in
time (but those are unlikely to actually trigger in practice) but
reduces RSS significantly.

Change-Id: I721f126eb731c7f35afb732cebe48abd52c3ebd1
Reviewed-on: http://gerrit.cloudera.org:8080/8251
Tested-by: Alexey Serbin <as...@cloudera.com>
Reviewed-by: Alexey Serbin <as...@cloudera.com>


Project: http://git-wip-us.apache.org/repos/asf/kudu/repo
Commit: http://git-wip-us.apache.org/repos/asf/kudu/commit/24308aa1
Tree: http://git-wip-us.apache.org/repos/asf/kudu/tree/24308aa1
Diff: http://git-wip-us.apache.org/repos/asf/kudu/diff/24308aa1

Branch: refs/heads/master
Commit: 24308aa1a5fd05e616dad2e8ee7482a74b9350de
Parents: 83b6931
Author: Todd Lipcon <to...@apache.org>
Authored: Tue Oct 10 14:08:26 2017 -0700
Committer: Alexey Serbin <as...@cloudera.com>
Committed: Sun Oct 15 04:09:19 2017 +0000

----------------------------------------------------------------------
 build-support/run-test.sh | 3 +++
 1 file changed, 3 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/kudu/blob/24308aa1/build-support/run-test.sh
----------------------------------------------------------------------
diff --git a/build-support/run-test.sh b/build-support/run-test.sh
index 941912b..6073f19 100755
--- a/build-support/run-test.sh
+++ b/build-support/run-test.sh
@@ -104,6 +104,9 @@ fi
 # Configure TSAN (ignored if this isn't a TSAN build).
 TSAN_OPTIONS="$TSAN_OPTIONS suppressions=$SOURCE_ROOT/build-support/tsan-suppressions.txt"
 TSAN_OPTIONS="$TSAN_OPTIONS history_size=7"
+#   Flush TSAN memory every 10 seconds - this prevents RSS blowup in unit tests
+#   which can cause tests to get killed by the OOM killer.
+TSAN_OPTIONS="$TSAN_OPTIONS flush_memory_ms=10000"
 TSAN_OPTIONS="$TSAN_OPTIONS external_symbolizer_path=$ASAN_SYMBOLIZER_PATH"
 export TSAN_OPTIONS