[kudu-CR] [build] Move default sanitizer options into build from shell scripts

2018-08-24 Thread Grant Henke (Code Review)
Grant Henke has submitted this change and it was merged. ( 
http://gerrit.cloudera.org:8080/11176 )

Change subject: [build] Move default sanitizer options into build from shell 
scripts
..

[build] Move default sanitizer options into build from shell scripts

This moves the sanitizer options and suppressions
from the build scripts using
TSAN_OPTIONS/LSAN_OPTIONS/etc into the build
and linked at build time.

This ensures the same configurations are used for
C++ and Java tests.

Change-Id: I9eab2d3ef0b107ae9a4e971bf8a6514bf425f645
Reviewed-on: http://gerrit.cloudera.org:8080/11176
Reviewed-by: Adar Dembo 
Tested-by: Grant Henke 
---
M CMakeLists.txt
M README.adoc
M build-support/dist_test.py
M build-support/jenkins/build-and-test.sh
D build-support/lsan-suppressions.txt
M build-support/run-test.sh
M build-support/run_dist_test.py
D build-support/tsan-suppressions.txt
M src/kudu/benchmarks/CMakeLists.txt
M src/kudu/cfile/CMakeLists.txt
M src/kudu/client/CMakeLists.txt
M src/kudu/clock/CMakeLists.txt
M src/kudu/codegen/CMakeLists.txt
M src/kudu/common/CMakeLists.txt
M src/kudu/consensus/CMakeLists.txt
M src/kudu/experiments/CMakeLists.txt
M src/kudu/fs/CMakeLists.txt
M src/kudu/hms/CMakeLists.txt
M src/kudu/integration-tests/CMakeLists.txt
M src/kudu/master/CMakeLists.txt
M src/kudu/mini-cluster/CMakeLists.txt
M src/kudu/rpc/CMakeLists.txt
M src/kudu/security/CMakeLists.txt
M src/kudu/server/CMakeLists.txt
M src/kudu/tablet/CMakeLists.txt
M src/kudu/tools/CMakeLists.txt
M src/kudu/tserver/CMakeLists.txt
M src/kudu/util/CMakeLists.txt
A src/kudu/util/sanitizer_options.cc
29 files changed, 312 insertions(+), 241 deletions(-)

Approvals:
  Adar Dembo: Looks good to me, approved
  Grant Henke: Verified

--
To view, visit http://gerrit.cloudera.org:8080/11176
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: merged
Gerrit-Change-Id: I9eab2d3ef0b107ae9a4e971bf8a6514bf425f645
Gerrit-Change-Number: 11176
Gerrit-PatchSet: 14
Gerrit-Owner: Grant Henke 
Gerrit-Reviewer: Adar Dembo 
Gerrit-Reviewer: Grant Henke 
Gerrit-Reviewer: Kudu Jenkins
Gerrit-Reviewer: Todd Lipcon 


[kudu-CR] [build] Move default sanitizer options into build from shell scripts

2018-08-24 Thread Grant Henke (Code Review)
Grant Henke has posted comments on this change. ( 
http://gerrit.cloudera.org:8080/11176 )

Change subject: [build] Move default sanitizer options into build from shell 
scripts
..


Patch Set 13: Verified+1


--
To view, visit http://gerrit.cloudera.org:8080/11176
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: I9eab2d3ef0b107ae9a4e971bf8a6514bf425f645
Gerrit-Change-Number: 11176
Gerrit-PatchSet: 13
Gerrit-Owner: Grant Henke 
Gerrit-Reviewer: Adar Dembo 
Gerrit-Reviewer: Grant Henke 
Gerrit-Reviewer: Kudu Jenkins
Gerrit-Reviewer: Todd Lipcon 
Gerrit-Comment-Date: Fri, 24 Aug 2018 20:57:18 +
Gerrit-HasComments: No


[kudu-CR] [build] Move default sanitizer options into build from shell scripts

2018-08-24 Thread Grant Henke (Code Review)
Grant Henke has removed a vote on this change.

Change subject: [build] Move default sanitizer options into build from shell 
scripts
..


Removed Verified-1 by Kudu Jenkins (120)
--
To view, visit http://gerrit.cloudera.org:8080/11176
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: deleteVote
Gerrit-Change-Id: I9eab2d3ef0b107ae9a4e971bf8a6514bf425f645
Gerrit-Change-Number: 11176
Gerrit-PatchSet: 13
Gerrit-Owner: Grant Henke 
Gerrit-Reviewer: Adar Dembo 
Gerrit-Reviewer: Grant Henke 
Gerrit-Reviewer: Kudu Jenkins
Gerrit-Reviewer: Todd Lipcon 


[kudu-CR] [build] Move default sanitizer options into build from shell scripts

2018-08-24 Thread Grant Henke (Code Review)
Grant Henke has posted comments on this change. ( 
http://gerrit.cloudera.org:8080/11176 )

Change subject: [build] Move default sanitizer options into build from shell 
scripts
..


Patch Set 11:

I verified this works locally and that overrides work locally as well. I also 
verified the behavior when llvm-symbolizer isn't found by CMake manually. I 
will run the tests locally one more time before submitting.


--
To view, visit http://gerrit.cloudera.org:8080/11176
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: I9eab2d3ef0b107ae9a4e971bf8a6514bf425f645
Gerrit-Change-Number: 11176
Gerrit-PatchSet: 11
Gerrit-Owner: Grant Henke 
Gerrit-Reviewer: Adar Dembo 
Gerrit-Reviewer: Grant Henke 
Gerrit-Reviewer: Kudu Jenkins
Gerrit-Reviewer: Todd Lipcon 
Gerrit-Comment-Date: Fri, 24 Aug 2018 19:00:36 +
Gerrit-HasComments: No


[kudu-CR] [build] Move default sanitizer options into build from shell scripts

2018-08-24 Thread Grant Henke (Code Review)
Grant Henke has posted comments on this change. ( 
http://gerrit.cloudera.org:8080/11176 )

Change subject: [build] Move default sanitizer options into build from shell 
scripts
..


Patch Set 11:

(3 comments)

http://gerrit.cloudera.org:8080/#/c/11176/11/src/kudu/util/CMakeLists.txt
File src/kudu/util/CMakeLists.txt:

http://gerrit.cloudera.org:8080/#/c/11176/11/src/kudu/util/CMakeLists.txt@282
PS11, Line 282: add_library(kudu_sanitizer_options STATIC sanitizer_options.cc)
> Nit: could call this target just 'sanitizer_options'; we generally prefix w
Done


http://gerrit.cloudera.org:8080/#/c/11176/11/src/kudu/util/CMakeLists.txt@283
PS11, Line 283: target_link_libraries(gutil)
> This should be:
Done


http://gerrit.cloudera.org:8080/#/c/11176/11/src/kudu/util/CMakeLists.txt@291
PS11, Line 291: target_compile_definitions(kudu_sanitizer_options 
KUDU_EXTERNAL_SYMBOLIZER_PATH=${KUDU_LLVM_SYMBOLIZER_PATH})
> I think this needs the keyword PRIVATE (after the target name) so that the
Done



--
To view, visit http://gerrit.cloudera.org:8080/11176
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: I9eab2d3ef0b107ae9a4e971bf8a6514bf425f645
Gerrit-Change-Number: 11176
Gerrit-PatchSet: 11
Gerrit-Owner: Grant Henke 
Gerrit-Reviewer: Adar Dembo 
Gerrit-Reviewer: Grant Henke 
Gerrit-Reviewer: Kudu Jenkins
Gerrit-Reviewer: Todd Lipcon 
Gerrit-Comment-Date: Fri, 24 Aug 2018 18:57:17 +
Gerrit-HasComments: Yes


[kudu-CR] [build] Move default sanitizer options into build from shell scripts

2018-08-24 Thread Adar Dembo (Code Review)
Adar Dembo has posted comments on this change. ( 
http://gerrit.cloudera.org:8080/11176 )

Change subject: [build] Move default sanitizer options into build from shell 
scripts
..


Patch Set 13: Code-Review+2

Thanks for all the hard work. Please also verify that this works when not using 
dist-test (precommit uses dist-test I believe).


--
To view, visit http://gerrit.cloudera.org:8080/11176
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: I9eab2d3ef0b107ae9a4e971bf8a6514bf425f645
Gerrit-Change-Number: 11176
Gerrit-PatchSet: 13
Gerrit-Owner: Grant Henke 
Gerrit-Reviewer: Adar Dembo 
Gerrit-Reviewer: Grant Henke 
Gerrit-Reviewer: Kudu Jenkins
Gerrit-Reviewer: Todd Lipcon 
Gerrit-Comment-Date: Fri, 24 Aug 2018 18:55:56 +
Gerrit-HasComments: No


[kudu-CR] [build] Move default sanitizer options into build from shell scripts

2018-08-24 Thread Grant Henke (Code Review)
Hello Kudu Jenkins, Adar Dembo, Todd Lipcon,

I'd like you to reexamine a change. Please visit

http://gerrit.cloudera.org:8080/11176

to look at the new patch set (#13).

Change subject: [build] Move default sanitizer options into build from shell 
scripts
..

[build] Move default sanitizer options into build from shell scripts

This moves the sanitizer options and suppressions
from the build scripts using
TSAN_OPTIONS/LSAN_OPTIONS/etc into the build
and linked at build time.

This ensures the same configurations are used for
C++ and Java tests.

Change-Id: I9eab2d3ef0b107ae9a4e971bf8a6514bf425f645
---
M CMakeLists.txt
M README.adoc
M build-support/dist_test.py
M build-support/jenkins/build-and-test.sh
D build-support/lsan-suppressions.txt
M build-support/run-test.sh
M build-support/run_dist_test.py
D build-support/tsan-suppressions.txt
M src/kudu/benchmarks/CMakeLists.txt
M src/kudu/cfile/CMakeLists.txt
M src/kudu/client/CMakeLists.txt
M src/kudu/clock/CMakeLists.txt
M src/kudu/codegen/CMakeLists.txt
M src/kudu/common/CMakeLists.txt
M src/kudu/consensus/CMakeLists.txt
M src/kudu/experiments/CMakeLists.txt
M src/kudu/fs/CMakeLists.txt
M src/kudu/hms/CMakeLists.txt
M src/kudu/integration-tests/CMakeLists.txt
M src/kudu/master/CMakeLists.txt
M src/kudu/mini-cluster/CMakeLists.txt
M src/kudu/rpc/CMakeLists.txt
M src/kudu/security/CMakeLists.txt
M src/kudu/server/CMakeLists.txt
M src/kudu/tablet/CMakeLists.txt
M src/kudu/tools/CMakeLists.txt
M src/kudu/tserver/CMakeLists.txt
M src/kudu/util/CMakeLists.txt
A src/kudu/util/sanitizer_options.cc
29 files changed, 312 insertions(+), 241 deletions(-)


  git pull ssh://gerrit.cloudera.org:29418/kudu refs/changes/76/11176/13
--
To view, visit http://gerrit.cloudera.org:8080/11176
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: newpatchset
Gerrit-Change-Id: I9eab2d3ef0b107ae9a4e971bf8a6514bf425f645
Gerrit-Change-Number: 11176
Gerrit-PatchSet: 13
Gerrit-Owner: Grant Henke 
Gerrit-Reviewer: Adar Dembo 
Gerrit-Reviewer: Grant Henke 
Gerrit-Reviewer: Kudu Jenkins
Gerrit-Reviewer: Todd Lipcon 


[kudu-CR] [build] Move default sanitizer options into build from shell scripts

2018-08-24 Thread Grant Henke (Code Review)
Hello Kudu Jenkins, Adar Dembo, Todd Lipcon,

I'd like you to reexamine a change. Please visit

http://gerrit.cloudera.org:8080/11176

to look at the new patch set (#12).

Change subject: [build] Move default sanitizer options into build from shell 
scripts
..

[build] Move default sanitizer options into build from shell scripts

This moves the sanitizer options and suppressions
from the build scripts using
TSAN_OPTIONS/LSAN_OPTIONS/etc into the build
and linked at build time.

This ensures the same configurations are used for
C++ and Java tests.

Change-Id: I9eab2d3ef0b107ae9a4e971bf8a6514bf425f645
---
M CMakeLists.txt
M README.adoc
M build-support/dist_test.py
M build-support/jenkins/build-and-test.sh
D build-support/lsan-suppressions.txt
M build-support/run-test.sh
M build-support/run_dist_test.py
D build-support/tsan-suppressions.txt
M src/kudu/benchmarks/CMakeLists.txt
M src/kudu/cfile/CMakeLists.txt
M src/kudu/client/CMakeLists.txt
M src/kudu/clock/CMakeLists.txt
M src/kudu/codegen/CMakeLists.txt
M src/kudu/common/CMakeLists.txt
M src/kudu/consensus/CMakeLists.txt
M src/kudu/experiments/CMakeLists.txt
M src/kudu/fs/CMakeLists.txt
M src/kudu/hms/CMakeLists.txt
M src/kudu/integration-tests/CMakeLists.txt
M src/kudu/master/CMakeLists.txt
M src/kudu/mini-cluster/CMakeLists.txt
M src/kudu/rpc/CMakeLists.txt
M src/kudu/security/CMakeLists.txt
M src/kudu/server/CMakeLists.txt
M src/kudu/tablet/CMakeLists.txt
M src/kudu/tools/CMakeLists.txt
M src/kudu/tserver/CMakeLists.txt
M src/kudu/util/CMakeLists.txt
A src/kudu/util/sanitizer_options.cc
29 files changed, 312 insertions(+), 241 deletions(-)


  git pull ssh://gerrit.cloudera.org:29418/kudu refs/changes/76/11176/12
--
To view, visit http://gerrit.cloudera.org:8080/11176
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: newpatchset
Gerrit-Change-Id: I9eab2d3ef0b107ae9a4e971bf8a6514bf425f645
Gerrit-Change-Number: 11176
Gerrit-PatchSet: 12
Gerrit-Owner: Grant Henke 
Gerrit-Reviewer: Adar Dembo 
Gerrit-Reviewer: Grant Henke 
Gerrit-Reviewer: Kudu Jenkins
Gerrit-Reviewer: Todd Lipcon 


[kudu-CR] [build] Move default sanitizer options into build from shell scripts

2018-08-24 Thread Adar Dembo (Code Review)
Adar Dembo has posted comments on this change. ( 
http://gerrit.cloudera.org:8080/11176 )

Change subject: [build] Move default sanitizer options into build from shell 
scripts
..


Patch Set 11:

(3 comments)

http://gerrit.cloudera.org:8080/#/c/11176/11/src/kudu/util/CMakeLists.txt
File src/kudu/util/CMakeLists.txt:

http://gerrit.cloudera.org:8080/#/c/11176/11/src/kudu/util/CMakeLists.txt@282
PS11, Line 282: add_library(kudu_sanitizer_options STATIC sanitizer_options.cc)
Nit: could call this target just 'sanitizer_options'; we generally prefix with 
kudu only when the rest of the target name is vague.


http://gerrit.cloudera.org:8080/#/c/11176/11/src/kudu/util/CMakeLists.txt@283
PS11, Line 283: target_link_libraries(gutil)
This should be:

  target_link_libraries(kudu_sanitizer_options, gutil)


http://gerrit.cloudera.org:8080/#/c/11176/11/src/kudu/util/CMakeLists.txt@291
PS11, Line 291: target_compile_definitions(kudu_sanitizer_options 
KUDU_EXTERNAL_SYMBOLIZER_PATH=${KUDU_LLVM_SYMBOLIZER_PATH})
I think this needs the keyword PRIVATE (after the target name) so that the 
compile definitions don't make it to other dependent targets.



--
To view, visit http://gerrit.cloudera.org:8080/11176
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: I9eab2d3ef0b107ae9a4e971bf8a6514bf425f645
Gerrit-Change-Number: 11176
Gerrit-PatchSet: 11
Gerrit-Owner: Grant Henke 
Gerrit-Reviewer: Adar Dembo 
Gerrit-Reviewer: Grant Henke 
Gerrit-Reviewer: Kudu Jenkins
Gerrit-Reviewer: Todd Lipcon 
Gerrit-Comment-Date: Fri, 24 Aug 2018 18:48:50 +
Gerrit-HasComments: Yes


[kudu-CR] [build] Move default sanitizer options into build from shell scripts

2018-08-24 Thread Grant Henke (Code Review)
Hello Kudu Jenkins, Adar Dembo, Todd Lipcon,

I'd like you to reexamine a change. Please visit

http://gerrit.cloudera.org:8080/11176

to look at the new patch set (#11).

Change subject: [build] Move default sanitizer options into build from shell 
scripts
..

[build] Move default sanitizer options into build from shell scripts

This moves the sanitizer options and suppressions
from the build scripts using
TSAN_OPTIONS/LSAN_OPTIONS/etc into the build
and linked at build time.

This ensures the same configurations are used for
C++ and Java tests.

Change-Id: I9eab2d3ef0b107ae9a4e971bf8a6514bf425f645
---
M CMakeLists.txt
M README.adoc
M build-support/dist_test.py
M build-support/jenkins/build-and-test.sh
D build-support/lsan-suppressions.txt
M build-support/run-test.sh
M build-support/run_dist_test.py
D build-support/tsan-suppressions.txt
M src/kudu/benchmarks/CMakeLists.txt
M src/kudu/cfile/CMakeLists.txt
M src/kudu/client/CMakeLists.txt
M src/kudu/clock/CMakeLists.txt
M src/kudu/codegen/CMakeLists.txt
M src/kudu/common/CMakeLists.txt
M src/kudu/consensus/CMakeLists.txt
M src/kudu/experiments/CMakeLists.txt
M src/kudu/fs/CMakeLists.txt
M src/kudu/hms/CMakeLists.txt
M src/kudu/integration-tests/CMakeLists.txt
M src/kudu/master/CMakeLists.txt
M src/kudu/mini-cluster/CMakeLists.txt
M src/kudu/rpc/CMakeLists.txt
M src/kudu/security/CMakeLists.txt
M src/kudu/server/CMakeLists.txt
M src/kudu/tablet/CMakeLists.txt
M src/kudu/tools/CMakeLists.txt
M src/kudu/tserver/CMakeLists.txt
M src/kudu/util/CMakeLists.txt
A src/kudu/util/sanitizer_options.cc
29 files changed, 312 insertions(+), 241 deletions(-)


  git pull ssh://gerrit.cloudera.org:29418/kudu refs/changes/76/11176/11
--
To view, visit http://gerrit.cloudera.org:8080/11176
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: newpatchset
Gerrit-Change-Id: I9eab2d3ef0b107ae9a4e971bf8a6514bf425f645
Gerrit-Change-Number: 11176
Gerrit-PatchSet: 11
Gerrit-Owner: Grant Henke 
Gerrit-Reviewer: Adar Dembo 
Gerrit-Reviewer: Grant Henke 
Gerrit-Reviewer: Kudu Jenkins
Gerrit-Reviewer: Todd Lipcon 


[kudu-CR] [build] Move default sanitizer options into build from shell scripts

2018-08-24 Thread Grant Henke (Code Review)
Grant Henke has posted comments on this change. ( 
http://gerrit.cloudera.org:8080/11176 )

Change subject: [build] Move default sanitizer options into build from shell 
scripts
..


Patch Set 10:

(1 comment)

http://gerrit.cloudera.org:8080/#/c/11176/10/src/kudu/util/sanitizer_options.cc
File src/kudu/util/sanitizer_options.cc:

http://gerrit.cloudera.org:8080/#/c/11176/10/src/kudu/util/sanitizer_options.cc@42
PS10, Line 42: #if defined(KUDU_EXTERNAL_SYMBOLIZER_PATH)
> I will move it.
I think it's valid an potentially useful to allow KUDU_EXTERNAL_SYMBOLIZER_PATH 
to be unset. I used it while testing CMake file changes and overrides. Given 
our build reliably defines it I don't think we need to make it an error.



--
To view, visit http://gerrit.cloudera.org:8080/11176
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: I9eab2d3ef0b107ae9a4e971bf8a6514bf425f645
Gerrit-Change-Number: 11176
Gerrit-PatchSet: 10
Gerrit-Owner: Grant Henke 
Gerrit-Reviewer: Adar Dembo 
Gerrit-Reviewer: Grant Henke 
Gerrit-Reviewer: Kudu Jenkins
Gerrit-Reviewer: Todd Lipcon 
Gerrit-Comment-Date: Fri, 24 Aug 2018 17:58:55 +
Gerrit-HasComments: Yes


[kudu-CR] [build] Move default sanitizer options into build from shell scripts

2018-08-24 Thread Grant Henke (Code Review)
Grant Henke has posted comments on this change. ( 
http://gerrit.cloudera.org:8080/11176 )

Change subject: [build] Move default sanitizer options into build from shell 
scripts
..


Patch Set 10:

(2 comments)

http://gerrit.cloudera.org:8080/#/c/11176/10/src/kudu/util/sanitizer_options.cc
File src/kudu/util/sanitizer_options.cc:

http://gerrit.cloudera.org:8080/#/c/11176/10/src/kudu/util/sanitizer_options.cc@35
PS10, Line 35: // A macro to turn a symbol into a string.
 : #define AS_STRING(x)   AS_STRING_INTERNAL(x)
 : #define AS_STRING_INTERNAL(x)   #x
> Given this is all I use I preferred not to link in gutil.
I will just link this.


http://gerrit.cloudera.org:8080/#/c/11176/10/src/kudu/util/sanitizer_options.cc@42
PS10, Line 42: #if defined(KUDU_EXTERNAL_SYMBOLIZER_PATH)
> I liked the idea of defining this in the same location as all the other san
I will move it.



--
To view, visit http://gerrit.cloudera.org:8080/11176
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: I9eab2d3ef0b107ae9a4e971bf8a6514bf425f645
Gerrit-Change-Number: 11176
Gerrit-PatchSet: 10
Gerrit-Owner: Grant Henke 
Gerrit-Reviewer: Adar Dembo 
Gerrit-Reviewer: Grant Henke 
Gerrit-Reviewer: Kudu Jenkins
Gerrit-Reviewer: Todd Lipcon 
Gerrit-Comment-Date: Fri, 24 Aug 2018 17:47:44 +
Gerrit-HasComments: Yes


[kudu-CR] [build] Move default sanitizer options into build from shell scripts

2018-08-24 Thread Grant Henke (Code Review)
Grant Henke has posted comments on this change. ( 
http://gerrit.cloudera.org:8080/11176 )

Change subject: [build] Move default sanitizer options into build from shell 
scripts
..


Patch Set 10:

(2 comments)

http://gerrit.cloudera.org:8080/#/c/11176/10/src/kudu/util/sanitizer_options.cc
File src/kudu/util/sanitizer_options.cc:

http://gerrit.cloudera.org:8080/#/c/11176/10/src/kudu/util/sanitizer_options.cc@35
PS10, Line 35: // A macro to turn a symbol into a string.
 : #define AS_STRING(x)   AS_STRING_INTERNAL(x)
 : #define AS_STRING_INTERNAL(x)   #x
> Can't you just include gutil/macros.h and use that?
Given this is all I use I preferred not to link in gutil.


http://gerrit.cloudera.org:8080/#/c/11176/10/src/kudu/util/sanitizer_options.cc@42
PS10, Line 42: #if defined(KUDU_EXTERNAL_SYMBOLIZER_PATH)
> > Also, where are we setting this? I expected an add_compile_definitions()
I liked the idea of defining this in the same location as all the other 
sanitizer configs.



--
To view, visit http://gerrit.cloudera.org:8080/11176
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: I9eab2d3ef0b107ae9a4e971bf8a6514bf425f645
Gerrit-Change-Number: 11176
Gerrit-PatchSet: 10
Gerrit-Owner: Grant Henke 
Gerrit-Reviewer: Adar Dembo 
Gerrit-Reviewer: Grant Henke 
Gerrit-Reviewer: Kudu Jenkins
Gerrit-Reviewer: Todd Lipcon 
Gerrit-Comment-Date: Fri, 24 Aug 2018 17:40:59 +
Gerrit-HasComments: Yes


[kudu-CR] [build] Move default sanitizer options into build from shell scripts

2018-08-24 Thread Adar Dembo (Code Review)
Adar Dembo has posted comments on this change. ( 
http://gerrit.cloudera.org:8080/11176 )

Change subject: [build] Move default sanitizer options into build from shell 
scripts
..


Patch Set 10:

(1 comment)

http://gerrit.cloudera.org:8080/#/c/11176/10/src/kudu/util/sanitizer_options.cc
File src/kudu/util/sanitizer_options.cc:

http://gerrit.cloudera.org:8080/#/c/11176/10/src/kudu/util/sanitizer_options.cc@42
PS10, Line 42: #if defined(KUDU_EXTERNAL_SYMBOLIZER_PATH)
> Also, where are we setting this? I expected an add_compile_definitions() or 
> something equivalent in util/CMakeLists.txt.

I missed the diff in CMakeLists.txt. Rather than adding this definition to 
every target, could we add it just to the target that builds 
sanitizer_options.cc?



--
To view, visit http://gerrit.cloudera.org:8080/11176
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: I9eab2d3ef0b107ae9a4e971bf8a6514bf425f645
Gerrit-Change-Number: 11176
Gerrit-PatchSet: 10
Gerrit-Owner: Grant Henke 
Gerrit-Reviewer: Adar Dembo 
Gerrit-Reviewer: Grant Henke 
Gerrit-Reviewer: Kudu Jenkins
Gerrit-Reviewer: Todd Lipcon 
Gerrit-Comment-Date: Fri, 24 Aug 2018 17:35:38 +
Gerrit-HasComments: Yes


[kudu-CR] [build] Move default sanitizer options into build from shell scripts

2018-08-24 Thread Adar Dembo (Code Review)
Adar Dembo has posted comments on this change. ( 
http://gerrit.cloudera.org:8080/11176 )

Change subject: [build] Move default sanitizer options into build from shell 
scripts
..


Patch Set 10:

(2 comments)

http://gerrit.cloudera.org:8080/#/c/11176/10/src/kudu/util/sanitizer_options.cc
File src/kudu/util/sanitizer_options.cc:

http://gerrit.cloudera.org:8080/#/c/11176/10/src/kudu/util/sanitizer_options.cc@35
PS10, Line 35: // A macro to turn a symbol into a string.
 : #define AS_STRING(x)   AS_STRING_INTERNAL(x)
 : #define AS_STRING_INTERNAL(x)   #x
Can't you just include gutil/macros.h and use that?


http://gerrit.cloudera.org:8080/#/c/11176/10/src/kudu/util/sanitizer_options.cc@42
PS10, Line 42: #if defined(KUDU_EXTERNAL_SYMBOLIZER_PATH)
Perhaps we should #error if this isn't defined? Do we really want to allow that 
case?

Also, where are we setting this? I expected an add_compile_definitions() or 
something equivalent in util/CMakeLists.txt.



--
To view, visit http://gerrit.cloudera.org:8080/11176
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: I9eab2d3ef0b107ae9a4e971bf8a6514bf425f645
Gerrit-Change-Number: 11176
Gerrit-PatchSet: 10
Gerrit-Owner: Grant Henke 
Gerrit-Reviewer: Adar Dembo 
Gerrit-Reviewer: Grant Henke 
Gerrit-Reviewer: Kudu Jenkins
Gerrit-Reviewer: Todd Lipcon 
Gerrit-Comment-Date: Fri, 24 Aug 2018 17:34:13 +
Gerrit-HasComments: Yes


[kudu-CR] [build] Move default sanitizer options into build from shell scripts

2018-08-24 Thread Grant Henke (Code Review)
Grant Henke has posted comments on this change. ( 
http://gerrit.cloudera.org:8080/11176 )

Change subject: [build] Move default sanitizer options into build from shell 
scripts
..


Patch Set 10:

(7 comments)

http://gerrit.cloudera.org:8080/#/c/11176/8/CMakeLists.txt
File CMakeLists.txt:

http://gerrit.cloudera.org:8080/#/c/11176/8/CMakeLists.txt@1279
PS8, Line 1279:
> extra space here
Done


http://gerrit.cloudera.org:8080/#/c/11176/8/CMakeLists.txt@1280
PS8, Line 1280: AGS "$
> could be
Done


http://gerrit.cloudera.org:8080/#/c/11176/9/CMakeLists.txt
File CMakeLists.txt:

http://gerrit.cloudera.org:8080/#/c/11176/9/CMakeLists.txt@1281
PS9, Line 1281:
> Do we still need these two in the list now that we have our fancy macro?
yeah, these are still the base KUDU_MIN_TEST_LIBS.


http://gerrit.cloudera.org:8080/#/c/11176/9/CMakeLists.txt@1284
PS9, Line 1284:
> You mean KUDU_TEST_LINK_LIBS here.
Done


http://gerrit.cloudera.org:8080/#/c/11176/9/CMakeLists.txt@1291
PS9, Line 1291: # Prepend SANITIZER_OPTIONS_OVERRIDE if this is a sanitizer 
build.
> Have you looked into cmake's list() functions? They may simplify this a bit
Done


http://gerrit.cloudera.org:8080/#/c/11176/8/build-support/run-test.sh
File build-support/run-test.sh:

http://gerrit.cloudera.org:8080/#/c/11176/8/build-support/run-test.sh@115
PS8, Line 115: # Set a 15-minute timeout for tests run via 'make test'.
 : # This keeps our jenkins builds from hanging in the case that 
there's
 : # a deadlock or anything.
 : #
 : # NOTE: this should be kept in sync with the default value of 
ARG_TIMEOUT
 : # in the definition of ADD_KUDU_TEST in the top-level 
CMakeLists.txt.
 : KUDU_TEST_TIMEOUT=${KUDU_TEST_TIMEOUT:-900}
 :
 : # Allow for collecting core dumps.
 : KUDU_TEST_ULIMIT_CORE=${KUDU_TEST_ULIMIT_CORE:-0}
 : ulim
> I added TODOs to follow up and remove both of these with a patch that pushe
I learned a bit more about CMake and pushed this down into the build and 
removed it from both locations.


http://gerrit.cloudera.org:8080/#/c/11176/9/src/kudu/benchmarks/CMakeLists.txt
File src/kudu/benchmarks/CMakeLists.txt:

http://gerrit.cloudera.org:8080/#/c/11176/9/src/kudu/benchmarks/CMakeLists.txt@59
PS9, Line 59: SET_KUDU_TEST_LINK_LIBS(tpch)
> Not using the macro here?
Done



--
To view, visit http://gerrit.cloudera.org:8080/11176
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: I9eab2d3ef0b107ae9a4e971bf8a6514bf425f645
Gerrit-Change-Number: 11176
Gerrit-PatchSet: 10
Gerrit-Owner: Grant Henke 
Gerrit-Reviewer: Adar Dembo 
Gerrit-Reviewer: Grant Henke 
Gerrit-Reviewer: Kudu Jenkins
Gerrit-Reviewer: Todd Lipcon 
Gerrit-Comment-Date: Fri, 24 Aug 2018 17:17:59 +
Gerrit-HasComments: Yes


[kudu-CR] [build] Move default sanitizer options into build from shell scripts

2018-08-24 Thread Grant Henke (Code Review)
Hello Kudu Jenkins, Adar Dembo, Todd Lipcon,

I'd like you to reexamine a change. Please visit

http://gerrit.cloudera.org:8080/11176

to look at the new patch set (#10).

Change subject: [build] Move default sanitizer options into build from shell 
scripts
..

[build] Move default sanitizer options into build from shell scripts

This moves the sanitizer options and suppressions
from the build scripts using
TSAN_OPTIONS/LSAN_OPTIONS/etc into the build
and linked at build time.

This ensures the same configurations are used for
C++ and Java tests.

Change-Id: I9eab2d3ef0b107ae9a4e971bf8a6514bf425f645
---
M CMakeLists.txt
M README.adoc
M build-support/dist_test.py
M build-support/jenkins/build-and-test.sh
D build-support/lsan-suppressions.txt
M build-support/run-test.sh
M build-support/run_dist_test.py
D build-support/tsan-suppressions.txt
M src/kudu/benchmarks/CMakeLists.txt
M src/kudu/cfile/CMakeLists.txt
M src/kudu/client/CMakeLists.txt
M src/kudu/clock/CMakeLists.txt
M src/kudu/codegen/CMakeLists.txt
M src/kudu/common/CMakeLists.txt
M src/kudu/consensus/CMakeLists.txt
M src/kudu/experiments/CMakeLists.txt
M src/kudu/fs/CMakeLists.txt
M src/kudu/hms/CMakeLists.txt
M src/kudu/integration-tests/CMakeLists.txt
M src/kudu/master/CMakeLists.txt
M src/kudu/mini-cluster/CMakeLists.txt
M src/kudu/rpc/CMakeLists.txt
M src/kudu/security/CMakeLists.txt
M src/kudu/server/CMakeLists.txt
M src/kudu/tablet/CMakeLists.txt
M src/kudu/tools/CMakeLists.txt
M src/kudu/tserver/CMakeLists.txt
M src/kudu/util/CMakeLists.txt
A src/kudu/util/sanitizer_options.cc
29 files changed, 311 insertions(+), 240 deletions(-)


  git pull ssh://gerrit.cloudera.org:29418/kudu refs/changes/76/11176/10
--
To view, visit http://gerrit.cloudera.org:8080/11176
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: newpatchset
Gerrit-Change-Id: I9eab2d3ef0b107ae9a4e971bf8a6514bf425f645
Gerrit-Change-Number: 11176
Gerrit-PatchSet: 10
Gerrit-Owner: Grant Henke 
Gerrit-Reviewer: Adar Dembo 
Gerrit-Reviewer: Grant Henke 
Gerrit-Reviewer: Kudu Jenkins
Gerrit-Reviewer: Todd Lipcon 


[kudu-CR] [build] Move default sanitizer options into build from shell scripts

2018-08-24 Thread Adar Dembo (Code Review)
Adar Dembo has posted comments on this change. ( 
http://gerrit.cloudera.org:8080/11176 )

Change subject: [build] Move default sanitizer options into build from shell 
scripts
..


Patch Set 9:

(6 comments)

http://gerrit.cloudera.org:8080/#/c/11176/8/CMakeLists.txt
File CMakeLists.txt:

http://gerrit.cloudera.org:8080/#/c/11176/8/CMakeLists.txt@1279
PS8, Line 1279:
> extra space here
Missed this.


http://gerrit.cloudera.org:8080/#/c/11176/8/CMakeLists.txt@1280
PS8, Line 1280: coulbe
> could be
And this.


http://gerrit.cloudera.org:8080/#/c/11176/9/CMakeLists.txt
File CMakeLists.txt:

http://gerrit.cloudera.org:8080/#/c/11176/9/CMakeLists.txt@1281
PS9, Line 1281: kudu_test_main kudu_test_util
Do we still need these two in the list now that we have our fancy macro?


http://gerrit.cloudera.org:8080/#/c/11176/9/CMakeLists.txt@1284
PS9, Line 1284: SET_KUDU_TEST_LINK_LIBS
You mean KUDU_TEST_LINK_LIBS here.


http://gerrit.cloudera.org:8080/#/c/11176/9/CMakeLists.txt@1291
PS9, Line 1291: set(KUDU_TEST_LINK_LIBS ${KUDU_TEST_LINK_LIBS} ${ARG})
Have you looked into cmake's list() functions? They may simplify this a bit:

https://cmake.org/cmake/help/latest/command/list.html#append


http://gerrit.cloudera.org:8080/#/c/11176/9/src/kudu/benchmarks/CMakeLists.txt
File src/kudu/benchmarks/CMakeLists.txt:

http://gerrit.cloudera.org:8080/#/c/11176/9/src/kudu/benchmarks/CMakeLists.txt@59
PS9, Line 59: set(KUDU_TEST_LINK_LIBS ${KUDU_TEST_LINK_LIBS} tpch)
Not using the macro here?



--
To view, visit http://gerrit.cloudera.org:8080/11176
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: I9eab2d3ef0b107ae9a4e971bf8a6514bf425f645
Gerrit-Change-Number: 11176
Gerrit-PatchSet: 9
Gerrit-Owner: Grant Henke 
Gerrit-Reviewer: Adar Dembo 
Gerrit-Reviewer: Grant Henke 
Gerrit-Reviewer: Kudu Jenkins
Gerrit-Reviewer: Todd Lipcon 
Gerrit-Comment-Date: Fri, 24 Aug 2018 16:25:18 +
Gerrit-HasComments: Yes


[kudu-CR] [build] Move default sanitizer options into build from shell scripts

2018-08-24 Thread Grant Henke (Code Review)
Grant Henke has posted comments on this change. ( 
http://gerrit.cloudera.org:8080/11176 )

Change subject: [build] Move default sanitizer options into build from shell 
scripts
..


Patch Set 8:

(2 comments)

http://gerrit.cloudera.org:8080/#/c/11176/8/build-support/run-test.sh
File build-support/run-test.sh:

http://gerrit.cloudera.org:8080/#/c/11176/8/build-support/run-test.sh@115
PS8, Line 115: # By default the sanitizers use addr2line utility to symbolize 
reports.
 : # llvm-symbolizer is faster, consumes less memory and produces 
much better reports.
 : #   
https://github.com/google/sanitizers/wiki/SanitizerCommonFlags
 : 
SYMBOLIZER_PATH="$SOURCE_ROOT/thirdparty/installed/uninstrumented/bin/llvm-symbolizer"
 : for SANITIZER in ASAN LSAN MSAN TSAN UBSAN; do
 :  VAR_NAME="${SANITIZER}_OPTIONS"
 :  # Only add the external_symbolizer_path if it is not set 
already.
 :  if [[ ${!VAR_NAME} != *"external_symbolizer_path="* ]]; then
 :export ${SANITIZER}_OPTIONS="$(echo ${!VAR_NAME}) 
external_symbolizer_path=$SYMBOLIZER_PATH"
 :  fi
 : done
> There are only 2 copies right now, and I think this one can go away once we
I added TODOs to follow up and remove both of these with a patch that pushes 
the logic into the build.


http://gerrit.cloudera.org:8080/#/c/11176/8/src/kudu/cfile/CMakeLists.txt
File src/kudu/cfile/CMakeLists.txt:

http://gerrit.cloudera.org:8080/#/c/11176/8/src/kudu/cfile/CMakeLists.txt@58
PS8, Line 58: set(KUDU_TEST_LINK_LIBS ${KUDU_MIN_TEST_LIBS} cfile)
> I tried modifying the build with functions and macros all failing to work.
I figured this out. I need to use a macro for scoping reasons and appending 
ARGN directly wasn't working as I expected.



--
To view, visit http://gerrit.cloudera.org:8080/11176
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: I9eab2d3ef0b107ae9a4e971bf8a6514bf425f645
Gerrit-Change-Number: 11176
Gerrit-PatchSet: 8
Gerrit-Owner: Grant Henke 
Gerrit-Reviewer: Adar Dembo 
Gerrit-Reviewer: Grant Henke 
Gerrit-Reviewer: Kudu Jenkins
Gerrit-Reviewer: Todd Lipcon 
Gerrit-Comment-Date: Fri, 24 Aug 2018 14:00:15 +
Gerrit-HasComments: Yes


[kudu-CR] [build] Move default sanitizer options into build from shell scripts

2018-08-24 Thread Grant Henke (Code Review)
Hello Kudu Jenkins, Adar Dembo, Todd Lipcon,

I'd like you to reexamine a change. Please visit

http://gerrit.cloudera.org:8080/11176

to look at the new patch set (#9).

Change subject: [build] Move default sanitizer options into build from shell 
scripts
..

[build] Move default sanitizer options into build from shell scripts

This moves the sanitizer options and suppressions
from the build scripts using
TSAN_OPTIONS/LSAN_OPTIONS/etc into the build
and linked at build time.

This ensures the same configurations are used for
C++ and Java tests.

Change-Id: I9eab2d3ef0b107ae9a4e971bf8a6514bf425f645
---
M CMakeLists.txt
M README.adoc
M build-support/dist_test.py
M build-support/jenkins/build-and-test.sh
D build-support/lsan-suppressions.txt
M build-support/run-test.sh
M build-support/run_dist_test.py
D build-support/tsan-suppressions.txt
M src/kudu/benchmarks/CMakeLists.txt
M src/kudu/cfile/CMakeLists.txt
M src/kudu/client/CMakeLists.txt
M src/kudu/clock/CMakeLists.txt
M src/kudu/codegen/CMakeLists.txt
M src/kudu/common/CMakeLists.txt
M src/kudu/consensus/CMakeLists.txt
M src/kudu/experiments/CMakeLists.txt
M src/kudu/fs/CMakeLists.txt
M src/kudu/hms/CMakeLists.txt
M src/kudu/integration-tests/CMakeLists.txt
M src/kudu/master/CMakeLists.txt
M src/kudu/mini-cluster/CMakeLists.txt
M src/kudu/rpc/CMakeLists.txt
M src/kudu/security/CMakeLists.txt
M src/kudu/server/CMakeLists.txt
M src/kudu/tablet/CMakeLists.txt
M src/kudu/tools/CMakeLists.txt
M src/kudu/tserver/CMakeLists.txt
M src/kudu/util/CMakeLists.txt
A src/kudu/util/sanitizer_options.cc
29 files changed, 294 insertions(+), 231 deletions(-)


  git pull ssh://gerrit.cloudera.org:29418/kudu refs/changes/76/11176/9
--
To view, visit http://gerrit.cloudera.org:8080/11176
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: newpatchset
Gerrit-Change-Id: I9eab2d3ef0b107ae9a4e971bf8a6514bf425f645
Gerrit-Change-Number: 11176
Gerrit-PatchSet: 9
Gerrit-Owner: Grant Henke 
Gerrit-Reviewer: Adar Dembo 
Gerrit-Reviewer: Grant Henke 
Gerrit-Reviewer: Kudu Jenkins
Gerrit-Reviewer: Todd Lipcon 


[kudu-CR] [build] Move default sanitizer options into build from shell scripts

2018-08-23 Thread Grant Henke (Code Review)
Grant Henke has posted comments on this change. ( 
http://gerrit.cloudera.org:8080/11176 )

Change subject: [build] Move default sanitizer options into build from shell 
scripts
..


Patch Set 8:

(3 comments)

http://gerrit.cloudera.org:8080/#/c/11176/8/CMakeLists.txt
File CMakeLists.txt:

http://gerrit.cloudera.org:8080/#/c/11176/8/CMakeLists.txt@1221
PS8, Line 1221:   set(KRB5_REALM_OVERRIDE -Wl,-U,krb5_realm_override_loaded 
krb5_realm_override)
> The old comment said that macOS's krb5 is new enough that it doesn't need t
It said the reason it didn't do it was because the flag was not supported. 
Since I found a supported flag, I added it for consistency. This makes Mac 
behave the same way as Linux.


http://gerrit.cloudera.org:8080/#/c/11176/8/build-support/run-test.sh
File build-support/run-test.sh:

http://gerrit.cloudera.org:8080/#/c/11176/8/build-support/run-test.sh@115
PS8, Line 115: # By default the sanitizers use addr2line utility to symbolize 
reports.
 : # llvm-symbolizer is faster, consumes less memory and produces 
much better reports.
 : #   
https://github.com/google/sanitizers/wiki/SanitizerCommonFlags
 : 
SYMBOLIZER_PATH="$SOURCE_ROOT/thirdparty/installed/uninstrumented/bin/llvm-symbolizer"
 : for SANITIZER in ASAN LSAN MSAN TSAN UBSAN; do
 :  VAR_NAME="${SANITIZER}_OPTIONS"
 :  # Only add the external_symbolizer_path if it is not set 
already.
 :  if [[ ${!VAR_NAME} != *"external_symbolizer_path="* ]]; then
 :export ${SANITIZER}_OPTIONS="$(echo ${!VAR_NAME}) 
external_symbolizer_path=$SYMBOLIZER_PATH"
 :  fi
 : done
> Can all of the shell versions of this snippet be decomposed into a helper s
There are only 2 copies right now, and I think this one can go away once we 
move the local llvm-symbolizer config to the binary.


http://gerrit.cloudera.org:8080/#/c/11176/8/src/kudu/cfile/CMakeLists.txt
File src/kudu/cfile/CMakeLists.txt:

http://gerrit.cloudera.org:8080/#/c/11176/8/src/kudu/cfile/CMakeLists.txt@58
PS8, Line 58: set(KUDU_TEST_LINK_LIBS ${KUDU_MIN_TEST_LIBS} cfile)
> It would be nice to enforce this by making KUDU_TEST_LINK_LIBS additive onl
I tried modifying the build with functions and macros all failing to work. I 
will take another crack at it in the morning.



--
To view, visit http://gerrit.cloudera.org:8080/11176
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: I9eab2d3ef0b107ae9a4e971bf8a6514bf425f645
Gerrit-Change-Number: 11176
Gerrit-PatchSet: 8
Gerrit-Owner: Grant Henke 
Gerrit-Reviewer: Adar Dembo 
Gerrit-Reviewer: Grant Henke 
Gerrit-Reviewer: Kudu Jenkins
Gerrit-Reviewer: Todd Lipcon 
Gerrit-Comment-Date: Fri, 24 Aug 2018 03:49:59 +
Gerrit-HasComments: Yes


[kudu-CR] [build] Move default sanitizer options into build from shell scripts

2018-08-23 Thread Adar Dembo (Code Review)
Adar Dembo has posted comments on this change. ( 
http://gerrit.cloudera.org:8080/11176 )

Change subject: [build] Move default sanitizer options into build from shell 
scripts
..


Patch Set 8:

(5 comments)

http://gerrit.cloudera.org:8080/#/c/11176/8/CMakeLists.txt
File CMakeLists.txt:

http://gerrit.cloudera.org:8080/#/c/11176/8/CMakeLists.txt@1221
PS8, Line 1221:   set(KRB5_REALM_OVERRIDE -Wl,-U,krb5_realm_override_loaded 
krb5_realm_override)
The old comment said that macOS's krb5 is new enough that it doesn't need this, 
so why do it?


http://gerrit.cloudera.org:8080/#/c/11176/8/CMakeLists.txt@1279
PS8, Line 1279:
extra space here


http://gerrit.cloudera.org:8080/#/c/11176/8/CMakeLists.txt@1280
PS8, Line 1280: coulbe
could be


http://gerrit.cloudera.org:8080/#/c/11176/8/build-support/run-test.sh
File build-support/run-test.sh:

http://gerrit.cloudera.org:8080/#/c/11176/8/build-support/run-test.sh@115
PS8, Line 115: # By default the sanitizers use addr2line utility to symbolize 
reports.
 : # llvm-symbolizer is faster, consumes less memory and produces 
much better reports.
 : #   
https://github.com/google/sanitizers/wiki/SanitizerCommonFlags
 : 
SYMBOLIZER_PATH="$SOURCE_ROOT/thirdparty/installed/uninstrumented/bin/llvm-symbolizer"
 : for SANITIZER in ASAN LSAN MSAN TSAN UBSAN; do
 :  VAR_NAME="${SANITIZER}_OPTIONS"
 :  # Only add the external_symbolizer_path if it is not set 
already.
 :  if [[ ${!VAR_NAME} != *"external_symbolizer_path="* ]]; then
 :export ${SANITIZER}_OPTIONS="$(echo ${!VAR_NAME}) 
external_symbolizer_path=$SYMBOLIZER_PATH"
 :  fi
 : done
Can all of the shell versions of this snippet be decomposed into a helper shell 
script in build-support that is then sourced?


http://gerrit.cloudera.org:8080/#/c/11176/8/src/kudu/cfile/CMakeLists.txt
File src/kudu/cfile/CMakeLists.txt:

http://gerrit.cloudera.org:8080/#/c/11176/8/src/kudu/cfile/CMakeLists.txt@58
PS8, Line 58: set(KUDU_TEST_LINK_LIBS ${KUDU_MIN_TEST_LIBS} cfile)
It would be nice to enforce this by making KUDU_TEST_LINK_LIBS additive only. 
You could do that by definition a cmake function that calls set() and always 
puts the new stuff at the end. Then as long as everyone uses that function to 
modify KUDU_TEST_LINK_LIBS, there's no danger of accidentally fudging the order.

It's not total enforcement (someone could always set(KUDU_TEST_LINK_LIBS ...) 
themselves), but it's something.



--
To view, visit http://gerrit.cloudera.org:8080/11176
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: I9eab2d3ef0b107ae9a4e971bf8a6514bf425f645
Gerrit-Change-Number: 11176
Gerrit-PatchSet: 8
Gerrit-Owner: Grant Henke 
Gerrit-Reviewer: Adar Dembo 
Gerrit-Reviewer: Grant Henke 
Gerrit-Reviewer: Kudu Jenkins
Gerrit-Reviewer: Todd Lipcon 
Gerrit-Comment-Date: Thu, 23 Aug 2018 22:42:45 +
Gerrit-HasComments: Yes


[kudu-CR] [build] Move default sanitizer options into build from shell scripts

2018-08-23 Thread Grant Henke (Code Review)
Hello Kudu Jenkins, Adar Dembo, Todd Lipcon,

I'd like you to reexamine a change. Please visit

http://gerrit.cloudera.org:8080/11176

to look at the new patch set (#8).

Change subject: [build] Move default sanitizer options into build from shell 
scripts
..

[build] Move default sanitizer options into build from shell scripts

This moves the sanitizer options and suppressions
from the build scripts using
TSAN_OPTIONS/LSAN_OPTIONS/etc into the build
and linked at build time.

This ensures the same configurations are used for
C++ and Java tests.

Change-Id: I9eab2d3ef0b107ae9a4e971bf8a6514bf425f645
---
M CMakeLists.txt
M README.adoc
M build-support/dist_test.py
M build-support/jenkins/build-and-test.sh
D build-support/lsan-suppressions.txt
M build-support/run-test.sh
M build-support/run_dist_test.py
D build-support/tsan-suppressions.txt
M src/kudu/cfile/CMakeLists.txt
M src/kudu/client/CMakeLists.txt
M src/kudu/clock/CMakeLists.txt
M src/kudu/codegen/CMakeLists.txt
M src/kudu/common/CMakeLists.txt
M src/kudu/consensus/CMakeLists.txt
M src/kudu/experiments/CMakeLists.txt
M src/kudu/fs/CMakeLists.txt
M src/kudu/hms/CMakeLists.txt
M src/kudu/integration-tests/CMakeLists.txt
M src/kudu/master/CMakeLists.txt
M src/kudu/mini-cluster/CMakeLists.txt
M src/kudu/rpc/CMakeLists.txt
M src/kudu/security/CMakeLists.txt
M src/kudu/server/CMakeLists.txt
M src/kudu/tablet/CMakeLists.txt
M src/kudu/tools/CMakeLists.txt
M src/kudu/tserver/CMakeLists.txt
M src/kudu/util/CMakeLists.txt
A src/kudu/util/sanitizer_options.cc
28 files changed, 279 insertions(+), 221 deletions(-)


  git pull ssh://gerrit.cloudera.org:29418/kudu refs/changes/76/11176/8
--
To view, visit http://gerrit.cloudera.org:8080/11176
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: newpatchset
Gerrit-Change-Id: I9eab2d3ef0b107ae9a4e971bf8a6514bf425f645
Gerrit-Change-Number: 11176
Gerrit-PatchSet: 8
Gerrit-Owner: Grant Henke 
Gerrit-Reviewer: Adar Dembo 
Gerrit-Reviewer: Grant Henke 
Gerrit-Reviewer: Kudu Jenkins
Gerrit-Reviewer: Todd Lipcon 


[kudu-CR] [build] Move default sanitizer options into build from shell scripts

2018-08-21 Thread Grant Henke (Code Review)
Grant Henke has posted comments on this change. ( 
http://gerrit.cloudera.org:8080/11176 )

Change subject: [build] Move default sanitizer options into build from shell 
scripts
..


Patch Set 7:

(2 comments)

http://gerrit.cloudera.org:8080/#/c/11176/7/build-support/jenkins/build-and-test.sh
File build-support/jenkins/build-and-test.sh:

http://gerrit.cloudera.org:8080/#/c/11176/7/build-support/jenkins/build-and-test.sh@176
PS7, Line 176: # Sanitizer suppressions require symbolization.
> Does this work? Don't PATH entries need to be directories?
No it doesn't..which is why the tsan build failed. This was a late night edit 
just so I could kick off a build and see in the morning.


http://gerrit.cloudera.org:8080/#/c/11176/7/build-support/jenkins/build-and-test.sh@180
PS7, Line 180: export 
PATH=$(pwd)/thirdparty/installed/uninstrumented/bin/llvm-symbolizer:$PATH
> So the downside of placing this here is that we don't get it if we run Java
I will do some manual testing today and see what I can come up with. If I can't 
resolve this we are no worse off than we were before.



--
To view, visit http://gerrit.cloudera.org:8080/11176
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: I9eab2d3ef0b107ae9a4e971bf8a6514bf425f645
Gerrit-Change-Number: 11176
Gerrit-PatchSet: 7
Gerrit-Owner: Grant Henke 
Gerrit-Reviewer: Adar Dembo 
Gerrit-Reviewer: Grant Henke 
Gerrit-Reviewer: Kudu Jenkins
Gerrit-Reviewer: Todd Lipcon 
Gerrit-Comment-Date: Tue, 21 Aug 2018 15:24:41 +
Gerrit-HasComments: Yes


[kudu-CR] [build] Move default sanitizer options into build from shell scripts

2018-08-20 Thread Adar Dembo (Code Review)
Adar Dembo has posted comments on this change. ( 
http://gerrit.cloudera.org:8080/11176 )

Change subject: [build] Move default sanitizer options into build from shell 
scripts
..


Patch Set 7:

(3 comments)

The past few runs have been failing in TSAN in the same way. I suspect the 
suppressions (or maybe all of the options) aren't getting through.

http://gerrit.cloudera.org:8080/#/c/11176/7//COMMIT_MSG
Commit Message:

http://gerrit.cloudera.org:8080/#/c/11176/7//COMMIT_MSG@17
PS7, Line 17: The only option that was not provided at build time is
: the external_symbolizer_path. Instead the
: llvm_symbolizer from thirdparty is added to the PATH
: so it can be found if no custom
: external_symbolizer_path is provided.
Please explain why this deviation was necessary.


http://gerrit.cloudera.org:8080/#/c/11176/7/build-support/jenkins/build-and-test.sh
File build-support/jenkins/build-and-test.sh:

http://gerrit.cloudera.org:8080/#/c/11176/7/build-support/jenkins/build-and-test.sh@176
PS7, Line 176: # Sanitizer suppressions require symbolization.
Does this work? Don't PATH entries need to be directories?

  $ 
PATH=~/Source/kudu/thirdparty/installed/uninstrumented/bin/llvm-symbolizer:$PATH;
 llvm-symbolizer --version

  Command 'llvm-symbolizer' not found, but can be installed with:

  sudo apt install llvm

  $ PATH=~/Source/kudu/thirdparty/installed/uninstrumented/bin:$PATH; 
llvm-symbolizer --version
  LLVM (http://llvm.org/):
LLVM version 6.0.0
Optimized build.
Default target: x86_64-unknown-linux-gnu
Host CPU: skylake


http://gerrit.cloudera.org:8080/#/c/11176/7/build-support/jenkins/build-and-test.sh@180
PS7, Line 180: export 
PATH=$(pwd)/thirdparty/installed/uninstrumented/bin/llvm-symbolizer:$PATH
So the downside of placing this here is that we don't get it if we run Java 
tests locally, or via an IDE, or basically in any other way that doesn't go 
through build-and-test.sh and doesn't use dist-test.



--
To view, visit http://gerrit.cloudera.org:8080/11176
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: I9eab2d3ef0b107ae9a4e971bf8a6514bf425f645
Gerrit-Change-Number: 11176
Gerrit-PatchSet: 7
Gerrit-Owner: Grant Henke 
Gerrit-Reviewer: Adar Dembo 
Gerrit-Reviewer: Grant Henke 
Gerrit-Reviewer: Kudu Jenkins
Gerrit-Reviewer: Todd Lipcon 
Gerrit-Comment-Date: Tue, 21 Aug 2018 04:28:29 +
Gerrit-HasComments: Yes


[kudu-CR] [build] Move default sanitizer options into build from shell scripts

2018-08-20 Thread Grant Henke (Code Review)
Grant Henke has posted comments on this change. ( 
http://gerrit.cloudera.org:8080/11176 )

Change subject: [build] Move default sanitizer options into build from shell 
scripts
..


Patch Set 7:

(2 comments)

http://gerrit.cloudera.org:8080/#/c/11176/6/src/kudu/util/CMakeLists.txt
File src/kudu/util/CMakeLists.txt:

http://gerrit.cloudera.org:8080/#/c/11176/6/src/kudu/util/CMakeLists.txt@327
PS6, Line 327: kudu_test_util)
> Nit: should precede kudu_util.
Done


http://gerrit.cloudera.org:8080/#/c/11176/6/src/kudu/util/sanitizer_options.cc
File src/kudu/util/sanitizer_options.cc:

http://gerrit.cloudera.org:8080/#/c/11176/6/src/kudu/util/sanitizer_options.cc@35
PS6, Line 35: #endif  // ADDRESS_SANITIZER
> Nit: could we inline kAsanDefaultOptions directly into the return statement
Done



--
To view, visit http://gerrit.cloudera.org:8080/11176
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: I9eab2d3ef0b107ae9a4e971bf8a6514bf425f645
Gerrit-Change-Number: 11176
Gerrit-PatchSet: 7
Gerrit-Owner: Grant Henke 
Gerrit-Reviewer: Adar Dembo 
Gerrit-Reviewer: Grant Henke 
Gerrit-Reviewer: Kudu Jenkins
Gerrit-Reviewer: Todd Lipcon 
Gerrit-Comment-Date: Tue, 21 Aug 2018 03:27:54 +
Gerrit-HasComments: Yes


[kudu-CR] [build] Move default sanitizer options into build from shell scripts

2018-08-20 Thread Grant Henke (Code Review)
Hello Kudu Jenkins, Adar Dembo, Todd Lipcon,

I'd like you to reexamine a change. Please visit

http://gerrit.cloudera.org:8080/11176

to look at the new patch set (#7).

Change subject: [build] Move default sanitizer options into build from shell 
scripts
..

[build] Move default sanitizer options into build from shell scripts

This moves the sanitizer options and suppressions
from the build scripts using
TSAN_OPTIONS/LSAN_OPTIONS/etc into the build
and linked at build time.

This ensures the same configurations are used for
C++ and Java tests.

The only option that was not provided at build time is
the external_symbolizer_path. Instead the
llvm_symbolizer from thirdparty is added to the PATH
so it can be found if no custom
external_symbolizer_path is provided.

Change-Id: I9eab2d3ef0b107ae9a4e971bf8a6514bf425f645
---
M README.adoc
M build-support/dist_test.py
M build-support/jenkins/build-and-test.sh
D build-support/lsan-suppressions.txt
M build-support/run-test.sh
M build-support/run_dist_test.py
D build-support/tsan-suppressions.txt
M src/kudu/util/CMakeLists.txt
A src/kudu/util/sanitizer_options.cc
9 files changed, 207 insertions(+), 178 deletions(-)


  git pull ssh://gerrit.cloudera.org:29418/kudu refs/changes/76/11176/7
--
To view, visit http://gerrit.cloudera.org:8080/11176
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: newpatchset
Gerrit-Change-Id: I9eab2d3ef0b107ae9a4e971bf8a6514bf425f645
Gerrit-Change-Number: 11176
Gerrit-PatchSet: 7
Gerrit-Owner: Grant Henke 
Gerrit-Reviewer: Adar Dembo 
Gerrit-Reviewer: Grant Henke 
Gerrit-Reviewer: Kudu Jenkins
Gerrit-Reviewer: Todd Lipcon 


[kudu-CR] [build] Move default sanitizer options into build from shell scripts

2018-08-13 Thread Adar Dembo (Code Review)
Adar Dembo has posted comments on this change. ( 
http://gerrit.cloudera.org:8080/11176 )

Change subject: [build] Move default sanitizer options into build from shell 
scripts
..


Patch Set 6:

(3 comments)

http://gerrit.cloudera.org:8080/#/c/11176/6//COMMIT_MSG
Commit Message:

http://gerrit.cloudera.org:8080/#/c/11176/6//COMMIT_MSG@9
PS6, Line 9: supressions
suppressions


http://gerrit.cloudera.org:8080/#/c/11176/6/src/kudu/util/CMakeLists.txt
File src/kudu/util/CMakeLists.txt:

http://gerrit.cloudera.org:8080/#/c/11176/6/src/kudu/util/CMakeLists.txt@327
PS6, Line 327: kudu_sanitizer_options)
Nit: should precede kudu_util.


http://gerrit.cloudera.org:8080/#/c/11176/6/src/kudu/util/sanitizer_options.cc
File src/kudu/util/sanitizer_options.cc:

http://gerrit.cloudera.org:8080/#/c/11176/6/src/kudu/util/sanitizer_options.cc@35
PS6, Line 35:   return kAsanDefaultOptions;
Nit: could we inline kAsanDefaultOptions directly into the return statement? As 
is you have to follow from the variable definition to the return statement in 
__asan_default_options; inlining would eliminate that following.

Same for the other options/suppressions below.



-- 
To view, visit http://gerrit.cloudera.org:8080/11176
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: I9eab2d3ef0b107ae9a4e971bf8a6514bf425f645
Gerrit-Change-Number: 11176
Gerrit-PatchSet: 6
Gerrit-Owner: Grant Henke 
Gerrit-Reviewer: Adar Dembo 
Gerrit-Reviewer: Grant Henke 
Gerrit-Reviewer: Kudu Jenkins
Gerrit-Reviewer: Todd Lipcon 
Gerrit-Comment-Date: Mon, 13 Aug 2018 22:28:06 +
Gerrit-HasComments: Yes


[kudu-CR] [build] Move default sanitizer options into build from shell scripts

2018-08-13 Thread Grant Henke (Code Review)
Hello Kudu Jenkins, Adar Dembo, Todd Lipcon,

I'd like you to reexamine a change. Please visit

http://gerrit.cloudera.org:8080/11176

to look at the new patch set (#6).

Change subject: [build] Move default sanitizer options into build from shell 
scripts
..

[build] Move default sanitizer options into build from shell scripts

This moves the sanitizer options and supressions
from the build scripts using
TSAN_OPTIONS/LSAN_OPTIONS/etc into the build
and linked at build time.

This ensures the same configurations are used for
C++ and Java tests.

Change-Id: I9eab2d3ef0b107ae9a4e971bf8a6514bf425f645
---
M README.adoc
M build-support/dist_test.py
M build-support/jenkins/build-and-test.sh
D build-support/lsan-suppressions.txt
M build-support/run-test.sh
M build-support/run_dist_test.py
D build-support/tsan-suppressions.txt
M src/kudu/util/CMakeLists.txt
A src/kudu/util/sanitizer_options.cc
9 files changed, 205 insertions(+), 181 deletions(-)


  git pull ssh://gerrit.cloudera.org:29418/kudu refs/changes/76/11176/6
--
To view, visit http://gerrit.cloudera.org:8080/11176
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: newpatchset
Gerrit-Change-Id: I9eab2d3ef0b107ae9a4e971bf8a6514bf425f645
Gerrit-Change-Number: 11176
Gerrit-PatchSet: 6
Gerrit-Owner: Grant Henke 
Gerrit-Reviewer: Adar Dembo 
Gerrit-Reviewer: Grant Henke 
Gerrit-Reviewer: Kudu Jenkins
Gerrit-Reviewer: Todd Lipcon 


[kudu-CR] [build] Move default sanitizer options into build from shell scripts

2018-08-13 Thread Grant Henke (Code Review)
Grant Henke has posted comments on this change. ( 
http://gerrit.cloudera.org:8080/11176 )

Change subject: [build] Move default sanitizer options into build from shell 
scripts
..


Patch Set 5:

(9 comments)

http://gerrit.cloudera.org:8080/#/c/11176/5//COMMIT_MSG
Commit Message:

http://gerrit.cloudera.org:8080/#/c/11176/5//COMMIT_MSG@9
PS5, Line 9: This moves the sanitzer options and supressions
> Nit: sanitizer
Done


http://gerrit.cloudera.org:8080/#/c/11176/4/src/kudu/sanitizers/sanitizer_options.cc
File src/kudu/sanitizers/sanitizer_options.cc:

http://gerrit.cloudera.org:8080/#/c/11176/4/src/kudu/sanitizers/sanitizer_options.cc@57
PS4, Line 57: "history_size=7 "
> Just to clarify, what's the exact behavior when the user sets TSAN_OPTIONS?
These are treated as defaults that the environment variables can override. The 
right most flag is the final value used.

Here is where the defaults and then env flags are processed:
https://github.com/llvm-mirror/compiler-rt/blob/96ccf181c8c1bf446bae8fc738b3dc8da5a65cfe/lib/tsan/rtl/tsan_flags.cc#L89-L96

Here is where the duplicate flags are handled:
https://github.com/llvm-mirror/compiler-rt/blob/master/lib/sanitizer_common/sanitizer_flag_parser.cc#L148-L152


http://gerrit.cloudera.org:8080/#/c/11176/5/src/kudu/sanitizers/sanitizer_options.cc
File src/kudu/sanitizers/sanitizer_options.cc:

http://gerrit.cloudera.org:8080/#/c/11176/5/src/kudu/sanitizers/sanitizer_options.cc@19
PS5, Line 19: #if defined(ADDRESS_SANITIZER) || defined(LEAK_SANITIZER) ||  \
: defined(MEMORY_SANITIZER) || defined(THREAD_SANITIZER) || \
: defined(UNDEFINED_SANITIZER)
> I don't see why the definition of SANITIZER_HOOK_ATTRIBUTE needs to be cond
Done


http://gerrit.cloudera.org:8080/#/c/11176/5/src/kudu/sanitizers/sanitizer_options.cc@30
PS5, Line 30:
> Nit: remove this.
Done


http://gerrit.cloudera.org:8080/#/c/11176/5/src/kudu/sanitizers/sanitizer_options.cc@45
PS5, Line 45: defined(OS_LINUX)
> I don't think this is ever set by the build.
oops, meant to remove this.


http://gerrit.cloudera.org:8080/#/c/11176/5/src/kudu/sanitizers/sanitizer_options.cc@54
PS5, Line 54: // TODO: " external_symbolizer_path=" + 
env['ASAN_SYMBOLIZER_PATH']
> So what does this TODO mean? Can this patch be merged without it? What happ
The llvm-symbolizer needs to be passed in order to support suppressions and 
improved stack traces on sanitizer errors. I am not sure the best way to 
default to the one in thirdparty from here. Perhaps we can't and I just need to 
use the env variables we were using before for the symbolizer.

See "external_symbolizer_path" here:
https://github.com/google/sanitizers/wiki/ThreadSanitizerFlags

See ASAN_SYMBOLIZER_PATH here: 
https://clang.llvm.org/docs/AddressSanitizer.html#symbolizing-the-reports


http://gerrit.cloudera.org:8080/#/c/11176/5/src/kudu/sanitizers/sanitizer_options.cc@64
PS5, Line 64: extern char kTSanDefaultSuppressions[];
> Can we avoid this by moving __tsan_default_suppressions into tsan_suppressi
I can just move it all into this file.


http://gerrit.cloudera.org:8080/#/c/11176/5/src/kudu/sanitizers/tsan_suppressions.cc
File src/kudu/sanitizers/tsan_suppressions.cc:

http://gerrit.cloudera.org:8080/#/c/11176/5/src/kudu/sanitizers/tsan_suppressions.cc@21
PS5, Line 21: // Please make sure the code below declares a single string 
variable
: // kTSanDefaultSuppressions which contains TSan suppressions 
delimited by
: // newlines.
> Not really understanding this either; the structure of kTsanDefaultSuppress
This syntax weirdness is carry over from the examples I used. I will remove all 
of it.


http://gerrit.cloudera.org:8080/#/c/11176/5/src/kudu/sanitizers/tsan_suppressions.cc@120
PS5, Line 120: ;  // Please keep this semicolon.
> Not sure I get the comment; without the semicolon this is a syntax error, n
Done



--
To view, visit http://gerrit.cloudera.org:8080/11176
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: I9eab2d3ef0b107ae9a4e971bf8a6514bf425f645
Gerrit-Change-Number: 11176
Gerrit-PatchSet: 5
Gerrit-Owner: Grant Henke 
Gerrit-Reviewer: Adar Dembo 
Gerrit-Reviewer: Grant Henke 
Gerrit-Reviewer: Kudu Jenkins
Gerrit-Reviewer: Todd Lipcon 
Gerrit-Comment-Date: Mon, 13 Aug 2018 17:43:06 +
Gerrit-HasComments: Yes