You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@kudu.apache.org by to...@apache.org on 2016/03/23 22:18:54 UTC

incubator-kudu git commit: Suppress a TSAN error when multiple threads LOG(FATAL) concurrently

Repository: incubator-kudu
Updated Branches:
  refs/heads/master f97197185 -> 3337124e7


Suppress a TSAN error when multiple threads LOG(FATAL) concurrently

glog internally has a 'fatal_msg_data_shared' global which is used
when more than two threads call LOG(FATAL) at the same time. This
results in races like:

WARNING: ThreadSanitizer: data race (pid=9726)
  Write of size 8 at 0x7f288d596f98 by thread T121:
    #0 localtime_r /data1/jenkins-workspace/kudu-workspace/thirdparty/llvm-3.8.0.src/projects/compiler-rt/lib/tsan/../sanitizer_common/sanitizer_common_interceptors.inc:803 (kudu-tserver+0x000000438fc3)
    #1 google::LogMessage::Init(char const*, int, int, void (google::LogMessage::*)()) /data1/jenkins-workspace/kudu-workspace/thirdparty/glog-0.3.4/src/logging.cc:1215:3 (libglog.so.0+0x00000000a9c3)

I reported the issue upstream at https://github.com/google/glog/issues/80
but we can safely suppress it for now, as it only happens in the case
of LOG(FATAL)s.

Change-Id: I825da549c68d5226a8a3735aa6e43b407f258a8e
Reviewed-on: http://gerrit.cloudera.org:8080/2611
Reviewed-by: Adar Dembo <ad...@cloudera.com>
Tested-by: Kudu Jenkins


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

Branch: refs/heads/master
Commit: 3337124e7d10b9d4cf235fd12b2f1a5e5f841d1c
Parents: f971971
Author: Todd Lipcon <to...@apache.org>
Authored: Wed Mar 23 12:07:06 2016 -0700
Committer: Todd Lipcon <to...@apache.org>
Committed: Wed Mar 23 21:18:40 2016 +0000

----------------------------------------------------------------------
 build-support/tsan-suppressions.txt | 5 +++++
 1 file changed, 5 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-kudu/blob/3337124e/build-support/tsan-suppressions.txt
----------------------------------------------------------------------
diff --git a/build-support/tsan-suppressions.txt b/build-support/tsan-suppressions.txt
index d7d6a5f..260a3da 100644
--- a/build-support/tsan-suppressions.txt
+++ b/build-support/tsan-suppressions.txt
@@ -52,6 +52,11 @@ race:kudu::RowChangeListDecoder::Init
 # https://code.google.com/p/google-glog/issues/detail?id=191
 signal:logging_fail
 
+# LOG(FATAL) from multiple threads can also end up triggering a TSAN error.
+# See https://github.com/google/glog/issues/80 for a general list of TSAN
+# issues in glog.
+race:google::LogMessage::Init
+
 # This method in Boost's UUID library operates on static state with impunity,
 # triggering (harmless) data races in TSAN when boost::uuids::random_generator
 # instances are created across threads (see kudu::ObjectIdGenerator).