[kudu-CR] [fs]: delete the (orphaned) metadata file when repairing

2019-01-22 Thread helifu (Code Review)
Hello Kudu Jenkins, Adar Dembo, Hao Hao,

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

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

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

Change subject: [fs]: delete the (orphaned) metadata file when repairing
..

[fs]: delete the (orphaned) metadata file when repairing

This patch intends to delete the (orphaned) metadata file at
startup while the data file has gone missing and the metadata
file has no live blocks at the same time. In the previous patch
KUDU-2636, it has supported deleting the dead container which
includes data file and metadata file. So, there will be a time
window while deleting both of these two files in sequential,
and it will make a half-container in extreme cases, especially
in a crash or sent the tserver a kill -9. Indeed, Adar has
captured this type of case under 1000 runs of dense_node-itest.

Change-Id: I2a4223d0e6385a7f7776f8fe2679a3bb16d832ab
---
M src/kudu/fs/log_block_manager-test.cc
M src/kudu/fs/log_block_manager.cc
2 files changed, 351 insertions(+), 28 deletions(-)


  git pull ssh://gerrit.cloudera.org:29418/kudu refs/changes/39/12239/4
--
To view, visit http://gerrit.cloudera.org:8080/12239
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: newpatchset
Gerrit-Change-Id: I2a4223d0e6385a7f7776f8fe2679a3bb16d832ab
Gerrit-Change-Number: 12239
Gerrit-PatchSet: 4
Gerrit-Owner: helifu 
Gerrit-Reviewer: Adar Dembo 
Gerrit-Reviewer: Hao Hao 
Gerrit-Reviewer: Kudu Jenkins (120)
Gerrit-Reviewer: helifu 


[kudu-CR] KUDU-2543 pt 2: pass around default authz tokens

2019-01-22 Thread Adar Dembo (Code Review)
Adar Dembo has posted comments on this change. ( 
http://gerrit.cloudera.org:8080/12122 )

Change subject: KUDU-2543 pt 2: pass around default authz tokens
..


Patch Set 6: Code-Review+1


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

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: I7971d652d6adc822167cf959bffd5f994a7ca565
Gerrit-Change-Number: 12122
Gerrit-PatchSet: 6
Gerrit-Owner: Andrew Wong 
Gerrit-Reviewer: Adar Dembo 
Gerrit-Reviewer: Alexey Serbin 
Gerrit-Reviewer: Andrew Wong 
Gerrit-Reviewer: Hao Hao 
Gerrit-Reviewer: Kudu Jenkins (120)
Gerrit-Reviewer: Tidy Bot (241)
Gerrit-Comment-Date: Wed, 23 Jan 2019 07:32:52 +
Gerrit-HasComments: No


[kudu-CR] KUDU-2543 pt 1: basic checks for authz tokens

2019-01-22 Thread Adar Dembo (Code Review)
Adar Dembo has posted comments on this change. ( 
http://gerrit.cloudera.org:8080/11751 )

Change subject: KUDU-2543 pt 1: basic checks for authz tokens
..


Patch Set 11: Code-Review+1


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

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: I99555e0ab2d09d4abcbc12b1100658a9a17590f4
Gerrit-Change-Number: 11751
Gerrit-PatchSet: 11
Gerrit-Owner: Andrew Wong 
Gerrit-Reviewer: Adar Dembo 
Gerrit-Reviewer: Alexey Serbin 
Gerrit-Reviewer: Andrew Wong 
Gerrit-Reviewer: Hao Hao 
Gerrit-Reviewer: Kudu Jenkins (120)
Gerrit-Reviewer: Tidy Bot (241)
Gerrit-Comment-Date: Wed, 23 Jan 2019 07:31:45 +
Gerrit-HasComments: No


[kudu-CR] De-flake sentry tests

2019-01-22 Thread Adar Dembo (Code Review)
Adar Dembo has posted comments on this change. ( 
http://gerrit.cloudera.org:8080/11961 )

Change subject: De-flake sentry tests
..


Patch Set 6: Code-Review+2


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

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: Id112634ad5e6f0e2c48b7e0e89389faff4f5656b
Gerrit-Change-Number: 11961
Gerrit-PatchSet: 6
Gerrit-Owner: Hao Hao 
Gerrit-Reviewer: Adar Dembo 
Gerrit-Reviewer: Andrew Wong 
Gerrit-Reviewer: Hao Hao 
Gerrit-Reviewer: Kudu Jenkins (120)
Gerrit-Comment-Date: Wed, 23 Jan 2019 07:29:47 +
Gerrit-HasComments: No


[kudu-CR] [sentry] add mini Sentry to the external mini cluster

2019-01-22 Thread Adar Dembo (Code Review)
Adar Dembo has posted comments on this change. ( 
http://gerrit.cloudera.org:8080/11956 )

Change subject: [sentry] add mini Sentry to the external mini cluster
..


Patch Set 11:

(2 comments)

http://gerrit.cloudera.org:8080/#/c/11956/2/src/kudu/mini-cluster/external_mini_cluster.cc
File src/kudu/mini-cluster/external_mini_cluster.cc:

http://gerrit.cloudera.org:8080/#/c/11956/2/src/kudu/mini-cluster/external_mini_cluster.cc@257
PS2, Line 257:   string ktpath;
> Sorry that I fail to see why. With the current approach, for macOS env we r
You're right; not sure how I thought this would help macOS.

It would add a bit of clarity to the UNIQUE_LOOPBACK case (in that there would 
be more symmetry between HMS and Sentry), but that's about it. Maybe note it in 
a TODO here instead, citing the upstream bug?


http://gerrit.cloudera.org:8080/#/c/11956/11/src/kudu/sentry/mini_sentry.cc
File src/kudu/sentry/mini_sentry.cc:

http://gerrit.cloudera.org:8080/#/c/11956/11/src/kudu/sentry/mini_sentry.cc@144
PS11, Line 144:   // Check that the port number hasn't changed if it has been 
set (not zero).
Nit: this is a bit unclear. Reword as "Check that the port number only changed 
if the original port was 0 (i.e. if we asked to bind to an ephemeral port)".

Maybe also rename 'port' to 'orig_port' to help clarify?



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

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: I7f02e6085bd239570d10ec629f48856d37ed6e59
Gerrit-Change-Number: 11956
Gerrit-PatchSet: 11
Gerrit-Owner: Hao Hao 
Gerrit-Reviewer: Adar Dembo 
Gerrit-Reviewer: Andrew Wong 
Gerrit-Reviewer: Hao Hao 
Gerrit-Reviewer: Kudu Jenkins (120)
Gerrit-Reviewer: Tidy Bot (241)
Gerrit-Comment-Date: Wed, 23 Jan 2019 07:28:48 +
Gerrit-HasComments: Yes


[kudu-CR] python: fix Python 3.4 based tests

2019-01-22 Thread Adar Dembo (Code Review)
Adar Dembo has posted comments on this change. ( 
http://gerrit.cloudera.org:8080/12255 )

Change subject: python: fix Python 3.4 based tests
..


Patch Set 2: Code-Review+2

(2 comments)

Addressed my own feedback in PS2.

http://gerrit.cloudera.org:8080/#/c/12255/1//COMMIT_MSG
Commit Message:

http://gerrit.cloudera.org:8080/#/c/12255/1//COMMIT_MSG@9
PS1, Line 9: Pip released 19.0 recently and tests based on Python 3.4 started 
to fail. In
   : addition, Python
> Would be good to include the error message in fail, to help searching in th
Done


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

http://gerrit.cloudera.org:8080/#/c/12255/1/build-support/jenkins/build-and-test.sh@518
PS1, Line 518:   #
 :   # pip 19.1 doesn't support Python 3.4, which is the version of 
Python 3
 :   # shipped with Ubuntu 14.04. However, the
> I filed an upstream bug with pip: https://github.com/pypa/pip/issues/6175.
Done



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

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: Iecbc55877e832a0ef437d2799e09c39fb314cb95
Gerrit-Change-Number: 12255
Gerrit-PatchSet: 2
Gerrit-Owner: Hao Hao 
Gerrit-Reviewer: Adar Dembo 
Gerrit-Reviewer: Kudu Jenkins (120)
Gerrit-Comment-Date: Wed, 23 Jan 2019 07:13:43 +
Gerrit-HasComments: Yes


[kudu-CR] python: fix Python 3.4 based tests

2019-01-22 Thread Adar Dembo (Code Review)
Adar Dembo has uploaded a new patch set (#2) to the change originally created 
by Hao Hao. ( http://gerrit.cloudera.org:8080/12255 )

Change subject: python: fix Python 3.4 based tests
..

python: fix Python 3.4 based tests

Pip released 19.0 recently and tests based on Python 3.4 started to fail. In
addition, Python 3.4 will no longer be supported beginning with pip 19.1.
Therefore, this patch updates the pip version to the last one that works.

The full error message is below.

  $ pip install pandas
  DEPRECATION: Python 3.4 support has been deprecated. pip 19.1 will be the 
last one supporting it. Please upgrade your Python as Python 3.4 won't be 
maintained after March 2019 (cf PEP 429).
  Collecting pandas
Using cached 
https://files.pythonhosted.org/packages/08/01/803834bc8a4e708aedebb133095a88a4dad9f45bbaf5ad777d2bea543c7e/pandas-0.22.0.tar.gz
Installing build dependencies ... done
Getting requirements to build wheel ... error
Complete output from command /home/jenkins-slave/a/bin/python3 
/home/jenkins-slave/a/lib/python3.4/site-packages/pip/_vendor/pep517/_in_process.py
 get_requires_for_build_wheel /tmp/tmpsknqc6o3:
Traceback (most recent call last):
  File 
"/home/jenkins-slave/a/lib/python3.4/site-packages/pip/_vendor/pep517/_in_process.py",
 line 207, in 
main()
  File 
"/home/jenkins-slave/a/lib/python3.4/site-packages/pip/_vendor/pep517/_in_process.py",
 line 197, in main
json_out['return_val'] = hook(**hook_input['kwargs'])
  File 
"/home/jenkins-slave/a/lib/python3.4/site-packages/pip/_vendor/pep517/_in_process.py",
 line 54, in get_requires_for_build_wheel
return hook(config_settings)
  File 
"/tmp/pip-build-env-z5ha9gs9/overlay/lib/python3.4/site-packages/setuptools/build_meta.py",
 line 115, in get_requires_for_build_wheel
return _get_build_requires(config_settings, requirements=['wheel'])
  File 
"/tmp/pip-build-env-z5ha9gs9/overlay/lib/python3.4/site-packages/setuptools/build_meta.py",
 line 101, in _get_build_requires
_run_setup()
  File 
"/tmp/pip-build-env-z5ha9gs9/overlay/lib/python3.4/site-packages/setuptools/build_meta.py",
 line 85, in _run_setup
exec(compile(code, __file__, 'exec'), locals())
  File "setup.py", line 27, in 
import versioneer
ImportError: No module named 'versioneer'

Change-Id: Iecbc55877e832a0ef437d2799e09c39fb314cb95
---
M build-support/jenkins/build-and-test.sh
1 file changed, 8 insertions(+), 1 deletion(-)


  git pull ssh://gerrit.cloudera.org:29418/kudu refs/changes/55/12255/2
--
To view, visit http://gerrit.cloudera.org:8080/12255
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: newpatchset
Gerrit-Change-Id: Iecbc55877e832a0ef437d2799e09c39fb314cb95
Gerrit-Change-Number: 12255
Gerrit-PatchSet: 2
Gerrit-Owner: Hao Hao 
Gerrit-Reviewer: Adar Dembo 
Gerrit-Reviewer: Kudu Jenkins (120)


[kudu-CR] KUDU-2665: deflake block manager-stress-test

2019-01-22 Thread Adar Dembo (Code Review)
Adar Dembo has posted comments on this change. ( 
http://gerrit.cloudera.org:8080/12254 )

Change subject: KUDU-2665: deflake block_manager-stress-test
..


Patch Set 1: Code-Review+2

Given that block_manager-stress-test is failing so much according to the flaky 
test dashboard, I'm going to treat He Lifu's +1 as a +2 and merge this.


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

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: I0be328f740056cd6b64c9881759225c8b961a935
Gerrit-Change-Number: 12254
Gerrit-PatchSet: 1
Gerrit-Owner: Adar Dembo 
Gerrit-Reviewer: Adar Dembo 
Gerrit-Reviewer: Mike Percy 
Gerrit-Reviewer: helifu 
Gerrit-Comment-Date: Wed, 23 Jan 2019 07:00:34 +
Gerrit-HasComments: No


[kudu-CR] KUDU-2665: deflake block manager-stress-test

2019-01-22 Thread Adar Dembo (Code Review)
Adar Dembo has submitted this change and it was merged. ( 
http://gerrit.cloudera.org:8080/12254 )

Change subject: KUDU-2665: deflake block_manager-stress-test
..

KUDU-2665: deflake block_manager-stress-test

After commit 0c501979b was merged, this test became really flaky (like 50%
flaky in some environments). I think it's due to the new nature of the log
block manager, which may now delete dead containers in the background.

Specifically, if two transactions delete the last blocks from a full
container, it's possible for one to get scheduled for an (asynchronous) hole
punch, and for the other to set the container as dead. Later, when the
hole punch runs, the container's last ref will be dropped, causing the dead
container to be deleted.

While perhaps surprising, this new behavior is desirable, and it's now
incorrect to assume that a cessation in user threads implies an end to LBM
activity. block_manager-stress-test makes this assumption by using the
LBMCorruptor to inject inconsistencies after test threads have been joined.
To fix, we must explicitly quiesce the LBM; destroying it will do the trick.

What is surprising is that, for the life of me, I can't reproduce the
failure. Not locally, not on a CentOS 6.6 machine, not looped in dist-test
with stress threads, not ever. I even tried adding some "creative" sleep
calls in a few places to tickle the race, to no avail.

Change-Id: I0be328f740056cd6b64c9881759225c8b961a935
Reviewed-on: http://gerrit.cloudera.org:8080/12254
Reviewed-by: helifu 
Tested-by: Adar Dembo 
Reviewed-by: Adar Dembo 
---
M src/kudu/fs/block_manager-stress-test.cc
1 file changed, 5 insertions(+), 0 deletions(-)

Approvals:
  helifu: Looks good to me, but someone else must approve
  Adar Dembo: Looks good to me, approved; Verified

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

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: merged
Gerrit-Change-Id: I0be328f740056cd6b64c9881759225c8b961a935
Gerrit-Change-Number: 12254
Gerrit-PatchSet: 2
Gerrit-Owner: Adar Dembo 
Gerrit-Reviewer: Adar Dembo 
Gerrit-Reviewer: Mike Percy 
Gerrit-Reviewer: helifu 


[kudu-CR] KUDU-2665: deflake block manager-stress-test

2019-01-22 Thread Adar Dembo (Code Review)
Adar Dembo has posted comments on this change. ( 
http://gerrit.cloudera.org:8080/12254 )

Change subject: KUDU-2665: deflake block_manager-stress-test
..


Patch Set 1: Verified+1

Overriding Jenkins; the Python3 build breakages are unrelated.


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

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: I0be328f740056cd6b64c9881759225c8b961a935
Gerrit-Change-Number: 12254
Gerrit-PatchSet: 1
Gerrit-Owner: Adar Dembo 
Gerrit-Reviewer: Adar Dembo 
Gerrit-Reviewer: Kudu Jenkins (120)
Gerrit-Reviewer: Mike Percy 
Gerrit-Reviewer: helifu 
Gerrit-Comment-Date: Wed, 23 Jan 2019 06:57:57 +
Gerrit-HasComments: No


[kudu-CR] KUDU-2665: deflake block manager-stress-test

2019-01-22 Thread Adar Dembo (Code Review)
Adar Dembo has posted comments on this change. ( 
http://gerrit.cloudera.org:8080/12254 )

Change subject: KUDU-2665: deflake block_manager-stress-test
..


Patch Set 1:

> Reread the ThreadPool code, it seems that 'dd_manager_->WaitOnClosures()' in 
> the destructor of LBM ensures that all tasks can be completed.

Exactly; that's why destroying the LBM has the effect of waiting for any 
outstanding dead container deletion to finish.


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

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: I0be328f740056cd6b64c9881759225c8b961a935
Gerrit-Change-Number: 12254
Gerrit-PatchSet: 1
Gerrit-Owner: Adar Dembo 
Gerrit-Reviewer: Adar Dembo 
Gerrit-Reviewer: Kudu Jenkins (120)
Gerrit-Reviewer: Mike Percy 
Gerrit-Reviewer: helifu 
Gerrit-Comment-Date: Wed, 23 Jan 2019 06:57:37 +
Gerrit-HasComments: No


[kudu-CR] KUDU-2665: deflake block manager-stress-test

2019-01-22 Thread Adar Dembo (Code Review)
Adar Dembo has removed Kudu Jenkins from this change.  ( 
http://gerrit.cloudera.org:8080/12254 )

Change subject: KUDU-2665: deflake block_manager-stress-test
..


Removed reviewer Kudu Jenkins with the following votes:

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

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: deleteReviewer
Gerrit-Change-Id: I0be328f740056cd6b64c9881759225c8b961a935
Gerrit-Change-Number: 12254
Gerrit-PatchSet: 1
Gerrit-Owner: Adar Dembo 
Gerrit-Reviewer: Adar Dembo 
Gerrit-Reviewer: Mike Percy 
Gerrit-Reviewer: helifu 


[kudu-CR] python: fix Python 3.4 based tests

2019-01-22 Thread Adar Dembo (Code Review)
Adar Dembo has posted comments on this change. ( 
http://gerrit.cloudera.org:8080/12255 )

Change subject: python: fix Python 3.4 based tests
..


Patch Set 1:

(2 comments)

http://gerrit.cloudera.org:8080/#/c/12255/1//COMMIT_MSG
Commit Message:

http://gerrit.cloudera.org:8080/#/c/12255/1//COMMIT_MSG@9
PS1, Line 9: Pip released 19.0 recently and tests based on Python 3.4 started 
to fail
   : with ImportError
Would be good to include the error message in fail, to help searching in the 
future.


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

http://gerrit.cloudera.org:8080/#/c/12255/1/build-support/jenkins/build-and-test.sh@518
PS1, Line 518:   # Even though Python 3.4 is no longer supported starting from 
pip 19.1, attempting
 :   # to upgrade to pip 19.0 on Python 3.4 with pandas 0.22 yields 
errors. Therefore,
 :   # pin to the last pip version that works.
I filed an upstream bug with pip: https://github.com/pypa/pip/issues/6175. 
Could you reword to link to that bug report, so that we'll have more 
information? Something like:

  # new version of pip to proceed.
  #
  # pip 19.1 doesn't support Python 3.4, which is the version of Python 3
  # shipped with Ubuntu 14.04. However, there appears to be a bug[1] in pip 19.0
  # preventing it from working properly with Python 3.4 as well. Therefore we
  # must pin to a pip version from before 19.0.
  #
  # 1. https://github.com/pypa/pip/issues/6175



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

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: Iecbc55877e832a0ef437d2799e09c39fb314cb95
Gerrit-Change-Number: 12255
Gerrit-PatchSet: 1
Gerrit-Owner: Hao Hao 
Gerrit-Reviewer: Adar Dembo 
Gerrit-Reviewer: Kudu Jenkins (120)
Gerrit-Comment-Date: Wed, 23 Jan 2019 06:53:41 +
Gerrit-HasComments: Yes


[kudu-CR] KUDU-2665: deflake block manager-stress-test

2019-01-22 Thread helifu (Code Review)
helifu has posted comments on this change. ( 
http://gerrit.cloudera.org:8080/12254 )

Change subject: KUDU-2665: deflake block_manager-stress-test
..


Patch Set 1: Code-Review+1

Reread the ThreadPool code, it seems that 'dd_manager_->WaitOnClosures()' in 
the destructor of LBM ensures that all tasks can be completed.


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

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: I0be328f740056cd6b64c9881759225c8b961a935
Gerrit-Change-Number: 12254
Gerrit-PatchSet: 1
Gerrit-Owner: Adar Dembo 
Gerrit-Reviewer: Kudu Jenkins (120)
Gerrit-Reviewer: Mike Percy 
Gerrit-Reviewer: helifu 
Gerrit-Comment-Date: Wed, 23 Jan 2019 06:39:32 +
Gerrit-HasComments: No


[kudu-CR] [docker] Add an initial docker build

2019-01-22 Thread Adar Dembo (Code Review)
Adar Dembo has posted comments on this change. ( 
http://gerrit.cloudera.org:8080/12173 )

Change subject: [docker] Add an initial docker build
..


Patch Set 3:

(1 comment)

http://gerrit.cloudera.org:8080/#/c/12173/2/thirdparty/build-thirdparty.sh
File thirdparty/build-thirdparty.sh:

http://gerrit.cloudera.org:8080/#/c/12173/2/thirdparty/build-thirdparty.sh@248
PS2, Line 248: # Install Hadoop, Hive, and Sentry by copying their source 
directories into $PREFIX/opt.
 : # Copying allows the source directory to be removed once 
thirdparty is built.
> This will add ~400MB of space. But it allows me to save almost 2 GiB in the
Hmm, that's a fair amount of space relative to the size of the thirdparty 
install tree right now: counting both common and uninstrumented, we're sitting 
at 1.8 GB. Not to mention it appears to have broken dist-test in some way.

Can we keep the symlinks but special-case the docker build to remove them and 
copy the files in?



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

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: I95497b39e47f07301be75cbadd814656c7e2ea42
Gerrit-Change-Number: 12173
Gerrit-PatchSet: 3
Gerrit-Owner: Grant Henke 
Gerrit-Reviewer: Adar Dembo 
Gerrit-Reviewer: Attila Bukor 
Gerrit-Reviewer: Grant Henke 
Gerrit-Reviewer: Kudu Jenkins (120)
Gerrit-Comment-Date: Wed, 23 Jan 2019 05:34:09 +
Gerrit-HasComments: Yes


[kudu-CR] [spark] Add some logging to trace KuduContext operations

2019-01-22 Thread Alexey Serbin (Code Review)
Alexey Serbin has posted comments on this change. ( 
http://gerrit.cloudera.org:8080/12252 )

Change subject: [spark] Add some logging to trace KuduContext operations
..


Patch Set 1:

(1 comment)

http://gerrit.cloudera.org:8080/#/c/12252/1/java/kudu-spark/src/main/scala/org/apache/kudu/spark/kudu/KuduContext.scala
File 
java/kudu-spark/src/main/scala/org/apache/kudu/spark/kudu/KuduContext.scala:

http://gerrit.cloudera.org:8080/#/c/12252/1/java/kudu-spark/src/main/scala/org/apache/kudu/spark/kudu/KuduContext.scala@246
PS1, Line 246: log.info
Maybe, move this into writeRows() itself?  It seems there are enough parameters 
for writeRows() to differentiate among various ops and tables.



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

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: I6741f2584c1bc6b229d10d37297515474318f94c
Gerrit-Change-Number: 12252
Gerrit-PatchSet: 1
Gerrit-Owner: Will Berkeley 
Gerrit-Reviewer: Alexey Serbin 
Gerrit-Reviewer: Grant Henke 
Gerrit-Reviewer: Kudu Jenkins (120)
Gerrit-Comment-Date: Wed, 23 Jan 2019 05:12:17 +
Gerrit-HasComments: Yes


[kudu-CR] [docker] Add an initial docker build

2019-01-22 Thread Grant Henke (Code Review)
Grant Henke has posted comments on this change. ( 
http://gerrit.cloudera.org:8080/12173 )

Change subject: [docker] Add an initial docker build
..


Patch Set 2:

(7 comments)

http://gerrit.cloudera.org:8080/#/c/12173/2//COMMIT_MSG
Commit Message:

http://gerrit.cloudera.org:8080/#/c/12173/2//COMMIT_MSG@20
PS2, Line 20: muti
> multi
Done


http://gerrit.cloudera.org:8080/#/c/12173/2/docker/Dockerfile
File docker/Dockerfile:

http://gerrit.cloudera.org:8080/#/c/12173/2/docker/Dockerfile@71
PS2, Line 71:   # TODO: Remove build dir too?
> In theory you could remove thirdparty/build too, except that the clang-tool
Right, that's the issue I ran into and I didn't try to fix it yet. Being able 
to remove this directory would make the docker image ~2.5 GiB smaller.

Here is the code comment that explains why it's there:
>   # Create a link from Clang to thirdparty/clang-toolchain. This path is used
# for all Clang invocations. The link can't point to the Clang installed in
# the prefix directory, since this confuses CMake into believing the
# thirdparty prefix directory is the system-wide prefix, and it omits the
# thirdparty prefix directory from the rpath of built binaries.


http://gerrit.cloudera.org:8080/#/c/12173/2/docker/Dockerfile@110
PS2, Line 110: COPY ./docs/support docs/support
This is actually used in the standard build, without it the build below fails. 
The first failure is:

> CMake Error: File /kudu/docs/support/doxygen/client_api.doxy.in does not 
> exist.
> CMake Error at CMakeLists.txt:1418 (configure_file):
  configure_file Problem configuring file

It looks like if doxygen is installed it is required, otherwise it's ignored. I 
installed doxygen in the base image so it could be used to build docs if needed.


http://gerrit.cloudera.org:8080/#/c/12173/2/docker/Dockerfile-files
File docker/Dockerfile-files:

http://gerrit.cloudera.org:8080/#/c/12173/2/docker/Dockerfile-files@18
PS2, Line 18: # This docker file is a minimal build usefull for debugging
> useful
Done


http://gerrit.cloudera.org:8080/#/c/12173/2/docker/kudu-entrypoint.sh
File docker/kudu-entrypoint.sh:

http://gerrit.cloudera.org:8080/#/c/12173/2/docker/kudu-entrypoint.sh@49
PS2, Line 49: KUDU_OPTS="$KUDU_FLAGS \
> Is the idea that KUDU_FLAGS can be set by users to do more configuration? M
Done


http://gerrit.cloudera.org:8080/#/c/12173/2/docker/kudu-entrypoint.sh@52
PS2, Line 52:  --fs_data_dirs=/var/lib/kudu/master \
> You can omit this if the intent is to use the same value as --fs_wal_dir. B
Done


http://gerrit.cloudera.org:8080/#/c/12173/2/thirdparty/build-thirdparty.sh
File thirdparty/build-thirdparty.sh:

http://gerrit.cloudera.org:8080/#/c/12173/2/thirdparty/build-thirdparty.sh@248
PS2, Line 248: # Install Hadoop, Hive, and Sentry by copying their source 
directories into $PREFIX/opt.
 : # Copying allows the source directory to be removed once 
thirdparty is built.
> How much additional disk space will this consume?
This will add ~400MB of space. But it allows me to save almost 2 GiB in the 
image by removing the source after the build.

This change does break the build, I will add a call to ensure the existing 
directory is wiped before installing.



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

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: I95497b39e47f07301be75cbadd814656c7e2ea42
Gerrit-Change-Number: 12173
Gerrit-PatchSet: 2
Gerrit-Owner: Grant Henke 
Gerrit-Reviewer: Adar Dembo 
Gerrit-Reviewer: Attila Bukor 
Gerrit-Reviewer: Grant Henke 
Gerrit-Reviewer: Kudu Jenkins (120)
Gerrit-Comment-Date: Wed, 23 Jan 2019 03:51:27 +
Gerrit-HasComments: Yes


[kudu-CR] [docker] Add an initial docker build

2019-01-22 Thread Grant Henke (Code Review)
Hello Attila Bukor, Kudu Jenkins, Adar Dembo,

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

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

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

Change subject: [docker] Add an initial docker build
..

[docker] Add an initial docker build

This patch adds an initial Docker file which defines a
multistage build that supports creating various Docker
images for Apache Kudu development.

This work is experimental and the choices and structure
may change wih follow on commits.

Some things these images could be used for include:
- demos/examples
- pre-built binaries including thirdparty
- multi-os testing
- multi-os tools like build_mini_cluster_binaries.sh
- external integration testing

Some of the open tasks for the future are:
- Handle all build types.
- Optimize image sizes.
- Add kudu user to runtime images.
- Add an upload script with good tagging.
- Add healthchecks.

Change-Id: I95497b39e47f07301be75cbadd814656c7e2ea42
---
A .dockerignore
A docker/Dockerfile
A docker/Dockerfile-files
A docker/README.adoc
A docker/bootstrap-env.sh
A docker/docker-build.sh
A docker/kudu-entrypoint.sh
M thirdparty/build-definitions.sh
M thirdparty/build-thirdparty.sh
9 files changed, 786 insertions(+), 5 deletions(-)


  git pull ssh://gerrit.cloudera.org:29418/kudu refs/changes/73/12173/3
--
To view, visit http://gerrit.cloudera.org:8080/12173
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: newpatchset
Gerrit-Change-Id: I95497b39e47f07301be75cbadd814656c7e2ea42
Gerrit-Change-Number: 12173
Gerrit-PatchSet: 3
Gerrit-Owner: Grant Henke 
Gerrit-Reviewer: Adar Dembo 
Gerrit-Reviewer: Attila Bukor 
Gerrit-Reviewer: Grant Henke 
Gerrit-Reviewer: Kudu Jenkins (120)


[kudu-CR] KUDU-2665: deflake block manager-stress-test

2019-01-22 Thread helifu (Code Review)
helifu has posted comments on this change. ( 
http://gerrit.cloudera.org:8080/12254 )

Change subject: KUDU-2665: deflake block_manager-stress-test
..


Patch Set 1:

my preference 2) is not safe because we can't be sure when the threads in 
'dd_manager_' will be over. ~~><~~


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

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: I0be328f740056cd6b64c9881759225c8b961a935
Gerrit-Change-Number: 12254
Gerrit-PatchSet: 1
Gerrit-Owner: Adar Dembo 
Gerrit-Reviewer: Kudu Jenkins (120)
Gerrit-Reviewer: Mike Percy 
Gerrit-Reviewer: helifu 
Gerrit-Comment-Date: Wed, 23 Jan 2019 03:33:28 +
Gerrit-HasComments: No


[kudu-CR] KUDU-2665: deflake block manager-stress-test

2019-01-22 Thread helifu (Code Review)
helifu has posted comments on this change. ( 
http://gerrit.cloudera.org:8080/12254 )

Change subject: KUDU-2665: deflake block_manager-stress-test
..


Patch Set 1:

(1 comment)

http://gerrit.cloudera.org:8080/#/c/12254/1/src/kudu/fs/block_manager-stress-test.cc
File src/kudu/fs/block_manager-stress-test.cc:

http://gerrit.cloudera.org:8080/#/c/12254/1/src/kudu/fs/block_manager-stress-test.cc@550
PS1, Line 550:  // Quiesce the block manager before injecting inconsistencies 
so that the two
 :   // don't interfere with one another.
 :   this->bm_.reset();
> I have just read through the code of 'block_manager-stress-test'. I agree w
BTW, i prefer 2), and let 'dd_manager_' continue to run.



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

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: I0be328f740056cd6b64c9881759225c8b961a935
Gerrit-Change-Number: 12254
Gerrit-PatchSet: 1
Gerrit-Owner: Adar Dembo 
Gerrit-Reviewer: Kudu Jenkins (120)
Gerrit-Reviewer: Mike Percy 
Gerrit-Reviewer: helifu 
Gerrit-Comment-Date: Wed, 23 Jan 2019 03:20:32 +
Gerrit-HasComments: Yes


[kudu-CR] KUDU-2665: deflake block manager-stress-test

2019-01-22 Thread helifu (Code Review)
helifu has posted comments on this change. ( 
http://gerrit.cloudera.org:8080/12254 )

Change subject: KUDU-2665: deflake block_manager-stress-test
..


Patch Set 1:

(1 comment)

http://gerrit.cloudera.org:8080/#/c/12254/1/src/kudu/fs/block_manager-stress-test.cc
File src/kudu/fs/block_manager-stress-test.cc:

http://gerrit.cloudera.org:8080/#/c/12254/1/src/kudu/fs/block_manager-stress-test.cc@550
PS1, Line 550:  // Quiesce the block manager before injecting inconsistencies 
so that the two
 :   // don't interfere with one another.
 :   this->bm_.reset();
I have just read through the code of 'block_manager-stress-test'. I agree with 
adar's analysis that it's now incorrect to assume that a cessation in user 
threads implies an end to LBM
activity. Please take a look at the code of 
log_block_manager-test-util.cc:Line70/Line95, it is not safe while the threads 
in 'dd_manager_' are deleting dead container via punch hole and drop 
container's last ref. And i am sure Percy's issue is from Line95. Maybe we can 
have two ways: 1)destroy the 'dd_manager_' before injecting inconsistencies, 
2)check data file existence at Line95.
Sorry for leaving this issue:(



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

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: I0be328f740056cd6b64c9881759225c8b961a935
Gerrit-Change-Number: 12254
Gerrit-PatchSet: 1
Gerrit-Owner: Adar Dembo 
Gerrit-Reviewer: Kudu Jenkins (120)
Gerrit-Reviewer: Mike Percy 
Gerrit-Reviewer: helifu 
Gerrit-Comment-Date: Wed, 23 Jan 2019 03:11:47 +
Gerrit-HasComments: Yes


[kudu-CR] python: fix Python 3.4 based tests

2019-01-22 Thread Hao Hao (Code Review)
Hao Hao has uploaded this change for review. ( 
http://gerrit.cloudera.org:8080/12255


Change subject: python: fix Python 3.4 based tests
..

python: fix Python 3.4 based tests

Pip released 19.0 recently and tests based on Python 3.4 started to fail
with ImportError. In addition, Python 3.4 will no longer supported
starting from pip 19.1. Therefore, this patch updates the pip version
to the last one that works.

Change-Id: Iecbc55877e832a0ef437d2799e09c39fb314cb95
---
M build-support/jenkins/build-and-test.sh
1 file changed, 4 insertions(+), 1 deletion(-)



  git pull ssh://gerrit.cloudera.org:29418/kudu refs/changes/55/12255/1
--
To view, visit http://gerrit.cloudera.org:8080/12255
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: newchange
Gerrit-Change-Id: Iecbc55877e832a0ef437d2799e09c39fb314cb95
Gerrit-Change-Number: 12255
Gerrit-PatchSet: 1
Gerrit-Owner: Hao Hao 


[kudu-CR] [spark] Add some logging to trace KuduContext operations

2019-01-22 Thread Grant Henke (Code Review)
Grant Henke has posted comments on this change. ( 
http://gerrit.cloudera.org:8080/12252 )

Change subject: [spark] Add some logging to trace KuduContext operations
..


Patch Set 1: Code-Review+1


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

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: I6741f2584c1bc6b229d10d37297515474318f94c
Gerrit-Change-Number: 12252
Gerrit-PatchSet: 1
Gerrit-Owner: Will Berkeley 
Gerrit-Reviewer: Alexey Serbin 
Gerrit-Reviewer: Grant Henke 
Gerrit-Reviewer: Kudu Jenkins (120)
Gerrit-Comment-Date: Wed, 23 Jan 2019 02:37:31 +
Gerrit-HasComments: No


[kudu-CR] [spark] Add metrics to kudu-spark

2019-01-22 Thread Grant Henke (Code Review)
Grant Henke has posted comments on this change. ( 
http://gerrit.cloudera.org:8080/12251 )

Change subject: [spark] Add metrics to kudu-spark
..


Patch Set 1: Code-Review+2

(1 comment)

http://gerrit.cloudera.org:8080/#/c/12251/1/java/kudu-spark/src/main/scala/org/apache/kudu/spark/kudu/KuduRDD.scala
File java/kudu-spark/src/main/scala/org/apache/kudu/spark/kudu/KuduRDD.scala:

http://gerrit.cloudera.org:8080/#/c/12251/1/java/kudu-spark/src/main/scala/org/apache/kudu/spark/kudu/KuduRDD.scala@156
PS1, Line 156:   rowsRead.add(currentIterator.getNumRows)
This is a bit tricky. The rows have been read from Kudu but not necessarily 
read/returned to the spark application via the get call below.

The best/right choice of incrementing rowsRead here vs the get call isn't clear 
to me. Just out of interest, any reason you picked doing it here?



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

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: Ied81c890b3d4510f767d8f023963ff878f398140
Gerrit-Change-Number: 12251
Gerrit-PatchSet: 1
Gerrit-Owner: Will Berkeley 
Gerrit-Reviewer: Alexey Serbin 
Gerrit-Reviewer: Grant Henke 
Gerrit-Reviewer: Kudu Jenkins (120)
Gerrit-Reviewer: Will Berkeley 
Gerrit-Comment-Date: Wed, 23 Jan 2019 02:35:03 +
Gerrit-HasComments: Yes


[kudu-CR] De-flake sentry tests

2019-01-22 Thread Hao Hao (Code Review)
Hello Kudu Jenkins, Andrew Wong, Adar Dembo,

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

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

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

Change subject: De-flake sentry tests
..

De-flake sentry tests

Currently, sentry_client-test and sentry_authz_provider-test are still
flaky due to possible port collision. To avoid such race condition, this
patch moves the util function that finds the bind address for a daemon
based on binding mode to test_util, and updates sentry-test-base to use
it to pick up a unique bind address.

Change-Id: Id112634ad5e6f0e2c48b7e0e89389faff4f5656b
---
M src/kudu/integration-tests/master_migration-itest.cc
M src/kudu/integration-tests/security-itest.cc
M src/kudu/mini-cluster/external_mini_cluster-test.cc
M src/kudu/mini-cluster/external_mini_cluster.cc
M src/kudu/mini-cluster/external_mini_cluster.h
M src/kudu/mini-cluster/internal_mini_cluster.cc
M src/kudu/mini-cluster/internal_mini_cluster.h
M src/kudu/mini-cluster/mini_cluster.cc
M src/kudu/mini-cluster/mini_cluster.h
M src/kudu/sentry/sentry-test-base.h
M src/kudu/tools/kudu-tool-test.cc
M src/kudu/util/net/net_util.cc
M src/kudu/util/net/net_util.h
13 files changed, 168 insertions(+), 142 deletions(-)


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

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: newpatchset
Gerrit-Change-Id: Id112634ad5e6f0e2c48b7e0e89389faff4f5656b
Gerrit-Change-Number: 11961
Gerrit-PatchSet: 6
Gerrit-Owner: Hao Hao 
Gerrit-Reviewer: Adar Dembo 
Gerrit-Reviewer: Andrew Wong 
Gerrit-Reviewer: Hao Hao 
Gerrit-Reviewer: Kudu Jenkins (120)


[kudu-CR] KUDU-2543 pt 2: pass around default authz tokens

2019-01-22 Thread Andrew Wong (Code Review)
Andrew Wong has posted comments on this change. ( 
http://gerrit.cloudera.org:8080/12122 )

Change subject: KUDU-2543 pt 2: pass around default authz tokens
..


Patch Set 6:

(13 comments)

http://gerrit.cloudera.org:8080/#/c/12122/5/src/kudu/client/authz_token_cache.h
File src/kudu/client/authz_token_cache.h:

http://gerrit.cloudera.org:8080/#/c/12122/5/src/kudu/client/authz_token_cache.h@134
PS5, Line 134: authz_rpcs_;
> nit: why not name it 'authz_rpcs_' to match 'authz_tokens_'?
Done


http://gerrit.cloudera.org:8080/#/c/12122/5/src/kudu/client/client-internal.cc
File src/kudu/client/client-internal.cc:

http://gerrit.cloudera.org:8080/#/c/12122/5/src/kudu/client/client-internal.cc@466
PS5, Line 466:  Parse the server part
> nit: use StoreAuthzToken() instead?
Done


http://gerrit.cloudera.org:8080/#/c/12122/5/src/kudu/client/client-test.cc
File src/kudu/client/client-test.cc:

http://gerrit.cloudera.org:8080/#/c/12122/5/src/kudu/client/client-test.cc@5853
PS5, Line 5853:   
client_->data_->RetrieveAuthzTokenAsync(client_table_.get(), 
s.AsStatusCallback(),
> Is it possible to change the logic to create a new client and only retrieve
That's possible, we could also not run RetrieveAuthzTokenAsync if there is a 
token in the cache. I'm going to hold off on it though since I don't think that 
adds to the test coverage and would make this test more complicated.


http://gerrit.cloudera.org:8080/#/c/12122/5/src/kudu/integration-tests/auth_token_expire-itest.cc
File src/kudu/integration-tests/auth_token_expire-itest.cc:

http://gerrit.cloudera.org:8080/#/c/12122/5/src/kudu/integration-tests/auth_token_expire-itest.cc@143
PS5, Line 143: i
> nit: extra space.
Done


http://gerrit.cloudera.org:8080/#/c/12122/5/src/kudu/integration-tests/auth_token_expire-itest.cc@254
PS5, Line 254: p
> nit: space.
Done


http://gerrit.cloudera.org:8080/#/c/12122/5/src/kudu/integration-tests/authz_token-itest.cc
File src/kudu/integration-tests/authz_token-itest.cc:

http://gerrit.cloudera.org:8080/#/c/12122/5/src/kudu/integration-tests/authz_token-itest.cc@184
PS5, Line 184: Insert
> nit: 'Inserts' to aligned with other comments style.
Done


http://gerrit.cloudera.org:8080/#/c/12122/5/src/kudu/integration-tests/authz_token-itest.cc@205
PS5, Line 205: Get
> nit: 'Gets'
Done


http://gerrit.cloudera.org:8080/#/c/12122/5/src/kudu/integration-tests/authz_token-itest.cc@281
PS5, Line 281:
> Can you add a comment to explain what is the expected behavior in this case
Done


http://gerrit.cloudera.org:8080/#/c/12122/5/src/kudu/integration-tests/authz_token-itest.cc@352
PS5, Line 352:  auto& e : er
> Nit: got two spaces here.
Done


http://gerrit.cloudera.org:8080/#/c/12122/5/src/kudu/integration-tests/authz_token-itest.cc@362
PS5, Line 362:
> Why not parameterized the functor here as well?
Done


http://gerrit.cloudera.org:8080/#/c/12122/5/src/kudu/integration-tests/authz_token-itest.cc@369
PS5, Line 369: yPB tsk;
> Should a similar test be exist for authn token as well?
A similar test exists for authn tokens in security-unknown-tsk-itest. I chose 
to put this test here because the logic differed enough that parameterizing 
security-unknown-tsk-itest would have been a lot of work and I think would've 
made the test harder to follow.


http://gerrit.cloudera.org:8080/#/c/12122/5/src/kudu/integration-tests/authz_token-itest.cc@477
PS5, Line 477: token_ratio = 1.0;
> Will a similar also apply for authn tokens? Also,  wondering how you consid
auth_token_expire-itest has some tests that explicitly test for expired tokens 
/ token reacquisition during master leader changes (e.g. 
MultiMasterIdleConnectionsITest), which is similar to this (invalid tokens 
during master election storms). I opted to not reuse some of the existing tests 
because parameterizing them would be non-trivial and make them harder to 
understand (and I found some tests a bit confusing to start with, given a few 
of them are targeting very specific error scenarios).

auth_token_expire-itest tests generally target expiration of tokens. 
authz_token-itest targets other error scenarios.


http://gerrit.cloudera.org:8080/#/c/12122/5/src/kudu/integration-tests/authz_token-itest.cc@523
PS5, Line 523:   // Client should have no problems connecting to an old cluster.
 :   ASSERT_OK(Inse
> What happens if a old client try to communicate with servers that require a
That'd be the same as sending requests with no authz tokens, so the client 
would get an error. That's harder to test, since I'm not maintaining the old 
behavior of the client through some config flag, but 
https://gerrit.cloudera.org/c/11751/10/src/kudu/tserver/tablet_server_authorization-test.cc#259
 shows the behavior of using the proxy with no token.



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

Gerrit-Project: kudu
Gerrit-Branch: master

[kudu-CR] KUDU-2543 pt 1: basic checks for authz tokens

2019-01-22 Thread Andrew Wong (Code Review)
Andrew Wong has posted comments on this change. ( 
http://gerrit.cloudera.org:8080/11751 )

Change subject: KUDU-2543 pt 1: basic checks for authz tokens
..


Patch Set 11:

(3 comments)

http://gerrit.cloudera.org:8080/#/c/11751/10/src/kudu/tserver/tablet_server_authorization-test.cc
File src/kudu/tserver/tablet_server_authorization-test.cc:

http://gerrit.cloudera.org:8080/#/c/11751/10/src/kudu/tserver/tablet_server_authorization-test.cc@182
PS10, Line 182: anua
> nit: can you add a comment on why this number is used?
Done


http://gerrit.cloudera.org:8080/#/c/11751/10/src/kudu/tserver/tablet_service.cc
File src/kudu/tserver/tablet_service.cc:

http://gerrit.cloudera.org:8080/#/c/11751/10/src/kudu/tserver/tablet_service.cc@152
PS10, Line 152: tserver_inject_invalid_authz_token_ratio
> Can you add a comment on when this is expected to be used?
Done


http://gerrit.cloudera.org:8080/#/c/11751/9/src/kudu/tserver/tserver_service.proto
File src/kudu/tserver/tserver_service.proto:

http://gerrit.cloudera.org:8080/#/c/11751/9/src/kudu/tserver/tserver_service.proto@100
PS9, Line 100:   optional ResourceMetricsPB resource_metrics = 7;
 : }
 :
> Can you add a comment in ChecksumRequestPB that the authz token is embedded
Done



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

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: I99555e0ab2d09d4abcbc12b1100658a9a17590f4
Gerrit-Change-Number: 11751
Gerrit-PatchSet: 11
Gerrit-Owner: Andrew Wong 
Gerrit-Reviewer: Adar Dembo 
Gerrit-Reviewer: Alexey Serbin 
Gerrit-Reviewer: Andrew Wong 
Gerrit-Reviewer: Hao Hao 
Gerrit-Reviewer: Kudu Jenkins (120)
Gerrit-Reviewer: Tidy Bot (241)
Gerrit-Comment-Date: Wed, 23 Jan 2019 01:29:51 +
Gerrit-HasComments: Yes


[kudu-CR] KUDU-2665: deflake block manager-stress-test

2019-01-22 Thread Adar Dembo (Code Review)
Hello Mike Percy, helifu,

I'd like you to do a code review. Please visit

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

to review the following change.


Change subject: KUDU-2665: deflake block_manager-stress-test
..

KUDU-2665: deflake block_manager-stress-test

After commit 0c501979b was merged, this test became really flaky (like 50%
flaky in some environments). I think it's due to the new nature of the log
block manager, which may now delete dead containers in the background.

Specifically, if two transactions delete the last blocks from a full
container, it's possible for one to get scheduled for an (asynchronous) hole
punch, and for the other to set the container as dead. Later, when the
hole punch runs, the container's last ref will be dropped, causing the dead
container to be deleted.

While perhaps surprising, this new behavior is desirable, and it's now
incorrect to assume that a cessation in user threads implies an end to LBM
activity. block_manager-stress-test makes this assumption by using the
LBMCorruptor to inject inconsistencies after test threads have been joined.
To fix, we must explicitly quiesce the LBM; destroying it will do the trick.

What is surprising is that, for the life of me, I can't reproduce the
failure. Not locally, not on a CentOS 6.6 machine, not looped in dist-test
with stress threads, not ever. I even tried adding some "creative" sleep
calls in a few places to tickle the race, to no avail.

Change-Id: I0be328f740056cd6b64c9881759225c8b961a935
---
M src/kudu/fs/block_manager-stress-test.cc
1 file changed, 5 insertions(+), 0 deletions(-)



  git pull ssh://gerrit.cloudera.org:29418/kudu refs/changes/54/12254/1
--
To view, visit http://gerrit.cloudera.org:8080/12254
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: newchange
Gerrit-Change-Id: I0be328f740056cd6b64c9881759225c8b961a935
Gerrit-Change-Number: 12254
Gerrit-PatchSet: 1
Gerrit-Owner: Adar Dembo 
Gerrit-Reviewer: Mike Percy 
Gerrit-Reviewer: helifu 


[kudu-CR] KUDU-2543 pt 1: basic checks for authz tokens

2019-01-22 Thread Andrew Wong (Code Review)
Hello Tidy Bot, Alexey Serbin, Kudu Jenkins, Adar Dembo, Hao Hao,

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

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

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

Change subject: KUDU-2543 pt 1: basic checks for authz tokens
..

KUDU-2543 pt 1: basic checks for authz tokens

In preparation for passing around authorization tokens, the tservers are
now fitted with minimal token-verifying logic that protects the write
and the various scan-like endpoints (i.e. scans, checksum scans, and
split-key requests), optionally enforcing that the client has provided a
valid authz token. I put the negotiation authn token verification logic
into its own function for reuse in the tserver layer.

It's worth noting that scan-like requests that have a concept of a "new"
request vs a "continue" request (i.e. scans, checksum scans) will only
need verification on "new" requests. "Continue" requests are handled in
that a scanner cannot be hijacked by a user who didn't create it.

A test is added to test various scenarios at the tserver level.

Change-Id: I99555e0ab2d09d4abcbc12b1100658a9a17590f4
---
M src/kudu/rpc/CMakeLists.txt
M src/kudu/rpc/rpc_header.proto
A src/kudu/rpc/rpc_verification_util.cc
A src/kudu/rpc/rpc_verification_util.h
M src/kudu/rpc/server_negotiation.cc
M src/kudu/security/token_verifier.cc
M src/kudu/tserver/CMakeLists.txt
M src/kudu/tserver/tablet_server-test-base.h
A src/kudu/tserver/tablet_server_authorization-test.cc
M src/kudu/tserver/tablet_service.cc
M src/kudu/tserver/tserver.proto
M src/kudu/tserver/tserver_service.proto
12 files changed, 600 insertions(+), 37 deletions(-)


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

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: newpatchset
Gerrit-Change-Id: I99555e0ab2d09d4abcbc12b1100658a9a17590f4
Gerrit-Change-Number: 11751
Gerrit-PatchSet: 11
Gerrit-Owner: Andrew Wong 
Gerrit-Reviewer: Adar Dembo 
Gerrit-Reviewer: Alexey Serbin 
Gerrit-Reviewer: Andrew Wong 
Gerrit-Reviewer: Hao Hao 
Gerrit-Reviewer: Kudu Jenkins (120)
Gerrit-Reviewer: Tidy Bot (241)


[kudu-CR] KUDU-2543 pt 2: pass around default authz tokens

2019-01-22 Thread Andrew Wong (Code Review)
Hello Tidy Bot, Alexey Serbin, Kudu Jenkins, Adar Dembo, Hao Hao,

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

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

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

Change subject: KUDU-2543 pt 2: pass around default authz tokens
..

KUDU-2543 pt 2: pass around default authz tokens

Adds authz token generation to the master's GetTableSchema endpoint,
with which clients can authorize themselves for specific tables. A
client will cache these tokens and use them appropriately for RPCs that
need them (e.g. Writes and Scans), reacquiring them when receiving word
that they are expired.

This is tested in the following ways:
- unit tests for the new client-side cache for authz tokens
- parameterized the token expiration test for authn and authz tokens to
  have varying token expirations, testing when authn tokens expire but
  not authz tokens, and vice versa
- added various tests to ensure the client behaves correctly in various
  non-happy cases

Change-Id: I7971d652d6adc822167cf959bffd5f994a7ca565
---
M src/kudu/client/CMakeLists.txt
A src/kudu/client/authz_token_cache.cc
A src/kudu/client/authz_token_cache.h
M src/kudu/client/batcher.cc
M src/kudu/client/client-internal.cc
M src/kudu/client/client-internal.h
M src/kudu/client/client-test.cc
M src/kudu/client/client.h
M src/kudu/client/scanner-internal.cc
M src/kudu/client/scanner-internal.h
M src/kudu/integration-tests/CMakeLists.txt
R src/kudu/integration-tests/auth_token_expire-itest.cc
A src/kudu/integration-tests/authz_token-itest.cc
M src/kudu/master/catalog_manager.h
M src/kudu/master/master-test.cc
M src/kudu/master/master.proto
M src/kudu/master/master_service.cc
M src/kudu/rpc/retriable_rpc.h
M src/kudu/rpc/rpc.h
M src/kudu/util/test_util.h
20 files changed, 1,331 insertions(+), 96 deletions(-)


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

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: newpatchset
Gerrit-Change-Id: I7971d652d6adc822167cf959bffd5f994a7ca565
Gerrit-Change-Number: 12122
Gerrit-PatchSet: 6
Gerrit-Owner: Andrew Wong 
Gerrit-Reviewer: Adar Dembo 
Gerrit-Reviewer: Alexey Serbin 
Gerrit-Reviewer: Andrew Wong 
Gerrit-Reviewer: Hao Hao 
Gerrit-Reviewer: Kudu Jenkins (120)
Gerrit-Reviewer: Tidy Bot (241)


[kudu-CR] [spark] Add metrics to kudu-spark

2019-01-22 Thread Alexey Serbin (Code Review)
Alexey Serbin has posted comments on this change. ( 
http://gerrit.cloudera.org:8080/12251 )

Change subject: [spark] Add metrics to kudu-spark
..


Patch Set 1: Code-Review+2

(1 comment)

http://gerrit.cloudera.org:8080/#/c/12251/1/java/kudu-spark/src/main/scala/org/apache/kudu/spark/kudu/KuduRDD.scala
File java/kudu-spark/src/main/scala/org/apache/kudu/spark/kudu/KuduRDD.scala:

http://gerrit.cloudera.org:8080/#/c/12251/1/java/kudu-spark/src/main/scala/org/apache/kudu/spark/kudu/KuduRDD.scala@130
PS1, Line 130: val rowsRead: LongAccumulator
doc?



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

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: Ied81c890b3d4510f767d8f023963ff878f398140
Gerrit-Change-Number: 12251
Gerrit-PatchSet: 1
Gerrit-Owner: Will Berkeley 
Gerrit-Reviewer: Alexey Serbin 
Gerrit-Reviewer: Grant Henke 
Gerrit-Reviewer: Kudu Jenkins (120)
Gerrit-Reviewer: Will Berkeley 
Gerrit-Comment-Date: Wed, 23 Jan 2019 00:51:06 +
Gerrit-HasComments: Yes


[kudu-CR] [spark] Add metrics to kudu-spark

2019-01-22 Thread Will Berkeley (Code Review)
Will Berkeley has posted comments on this change. ( 
http://gerrit.cloudera.org:8080/12251 )

Change subject: [spark] Add metrics to kudu-spark
..


Patch Set 1:

(1 comment)

http://gerrit.cloudera.org:8080/#/c/12251/1/java/kudu-spark/src/main/scala/org/apache/kudu/spark/kudu/KuduContext.scala
File 
java/kudu-spark/src/main/scala/org/apache/kudu/spark/kudu/KuduContext.scala:

http://gerrit.cloudera.org:8080/#/c/12251/1/java/kudu-spark/src/main/scala/org/apache/kudu/spark/kudu/KuduContext.scala@69
PS1, Line 69: KA
A



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

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: Ied81c890b3d4510f767d8f023963ff878f398140
Gerrit-Change-Number: 12251
Gerrit-PatchSet: 1
Gerrit-Owner: Will Berkeley 
Gerrit-Reviewer: Alexey Serbin 
Gerrit-Reviewer: Grant Henke 
Gerrit-Reviewer: Kudu Jenkins (120)
Gerrit-Reviewer: Will Berkeley 
Gerrit-Comment-Date: Wed, 23 Jan 2019 00:13:20 +
Gerrit-HasComments: Yes


[kudu-CR] [spark] Add metrics to kudu-spark

2019-01-22 Thread Will Berkeley (Code Review)
Will Berkeley has uploaded this change for review. ( 
http://gerrit.cloudera.org:8080/12251


Change subject: [spark] Add metrics to kudu-spark
..

[spark] Add metrics to kudu-spark

This adds some basic accumulator metrics to kudu-spark. These
accumulators appear for each stage involving a KuduContext, with values
broken down by executor.

Follow-ups will add some more sophisticated metrics and use metrics to
add additional logging.

In addition to the unit tests, I tested this on a 3-node cluster and
confirmed I was able to see the accumulator values for stages and
individual tasks on the Spark application's web UI, and that were
correct.

Change-Id: Ied81c890b3d4510f767d8f023963ff878f398140
---
M java/kudu-client/src/main/java/org/apache/kudu/client/AsyncKuduClient.java
M java/kudu-spark/src/main/scala/org/apache/kudu/spark/kudu/DefaultSource.scala
M java/kudu-spark/src/main/scala/org/apache/kudu/spark/kudu/KuduContext.scala
M java/kudu-spark/src/main/scala/org/apache/kudu/spark/kudu/KuduRDD.scala
M 
java/kudu-spark/src/test/scala/org/apache/kudu/spark/kudu/DefaultSourceTest.scala
M java/kudu-spark/src/test/scala/org/apache/kudu/spark/kudu/KuduRDDTest.scala
6 files changed, 73 insertions(+), 23 deletions(-)



  git pull ssh://gerrit.cloudera.org:29418/kudu refs/changes/51/12251/1
--
To view, visit http://gerrit.cloudera.org:8080/12251
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: newchange
Gerrit-Change-Id: Ied81c890b3d4510f767d8f023963ff878f398140
Gerrit-Change-Number: 12251
Gerrit-PatchSet: 1
Gerrit-Owner: Will Berkeley 


[kudu-CR] [spark] Add some logging to trace KuduContext operations

2019-01-22 Thread Will Berkeley (Code Review)
Will Berkeley has uploaded this change for review. ( 
http://gerrit.cloudera.org:8080/12252


Change subject: [spark] Add some logging to trace KuduContext operations
..

[spark] Add some logging to trace KuduContext operations

This patch adds some logging to help track how long an entire
KuduContext operation takes and also how long each part takes on each
executor. This information has been sorely lacking in some cases where
Spark's laziness makes attributing slowness to Kudu (vs other components
of the Spark job) very difficult.

Unfortunately, it's not as straightforward to add this sort of logging
to reading from Kudu (KuduRDD) because Spark may lazily read batches
from Kudu, and batches may be small enough that logging for each batch
is so verbose that it is not useful.

I tested this patch manually on a 3-node cluster and confirmed I saw the
expected log messages on the driver and on the executors, e.g.

19/01/22 15:18:13 INFO kudu.KuduContext: applying operations of type 'insert' 
to table 'impala::default.aaa'
19/01/22 15:18:13 INFO kudu.KuduContext: applied 1 operations of type 'insert' 
to table 'impala::default.aaa'

Change-Id: I6741f2584c1bc6b229d10d37297515474318f94c
---
M java/kudu-spark/src/main/scala/org/apache/kudu/spark/kudu/KuduContext.scala
M java/kudu-spark/src/main/scala/org/apache/kudu/spark/kudu/OperationType.scala
2 files changed, 26 insertions(+), 3 deletions(-)



  git pull ssh://gerrit.cloudera.org:29418/kudu refs/changes/52/12252/1
--
To view, visit http://gerrit.cloudera.org:8080/12252
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: newchange
Gerrit-Change-Id: I6741f2584c1bc6b229d10d37297515474318f94c
Gerrit-Change-Number: 12252
Gerrit-PatchSet: 1
Gerrit-Owner: Will Berkeley 


[kudu-CR] De-flake sentry tests

2019-01-22 Thread Hao Hao (Code Review)
Hao Hao has posted comments on this change. ( 
http://gerrit.cloudera.org:8080/11961 )

Change subject: De-flake sentry tests
..


Patch Set 5:

(2 comments)

http://gerrit.cloudera.org:8080/#/c/11961/4/src/kudu/util/net/net_util.cc
File src/kudu/util/net/net_util.cc:

http://gerrit.cloudera.org:8080/#/c/11961/4/src/kudu/util/net/net_util.cc@451
PS4, Line 451: string GetBindIpForDaemon(int index, BindMode bind_mode) {
> You can reuse this constant in kServersMaxNum too.
Done


http://gerrit.cloudera.org:8080/#/c/11961/4/src/kudu/util/net/net_util.cc@452
PS4, Line 452:   // The server index should range from (0, max_servers] since
> I think I missed something: why did the requirements of 'index' change such
I changed it as I removed the logic of assign index based on the type to 
GetBindIpForDaemonWithType(). My understanding of the reason why we were doing 
this, is 'the last octet of a valid unicast IP address is (0, 255)'. Therefore 
the index should start from 1 and <= max_servers.

I will add a comment here.



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

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: Id112634ad5e6f0e2c48b7e0e89389faff4f5656b
Gerrit-Change-Number: 11961
Gerrit-PatchSet: 5
Gerrit-Owner: Hao Hao 
Gerrit-Reviewer: Adar Dembo 
Gerrit-Reviewer: Andrew Wong 
Gerrit-Reviewer: Hao Hao 
Gerrit-Reviewer: Kudu Jenkins (120)
Gerrit-Comment-Date: Tue, 22 Jan 2019 22:00:37 +
Gerrit-HasComments: Yes


[kudu-CR] [sentry] add mini Sentry to the external mini cluster

2019-01-22 Thread Hao Hao (Code Review)
Hao Hao has posted comments on this change. ( 
http://gerrit.cloudera.org:8080/11956 )

Change subject: [sentry] add mini Sentry to the external mini cluster
..


Patch Set 11:

(5 comments)

http://gerrit.cloudera.org:8080/#/c/11956/2/src/kudu/mini-cluster/external_mini_cluster.cc
File src/kudu/mini-cluster/external_mini_cluster.cc:

http://gerrit.cloudera.org:8080/#/c/11956/2/src/kudu/mini-cluster/external_mini_cluster.cc@257
PS2, Line 257:   string ktpath;
> I think so, because it'll allow macOS to benefit from a restart-less Extern
Sorry that I fail to see why. With the current approach, for macOS env we 
restart Sentry once, since assign a random port can cause port collision. I 
don't see how the restart can be avoided even HMS can bind to a specific host.


http://gerrit.cloudera.org:8080/#/c/11956/10/src/kudu/mini-cluster/external_mini_cluster.cc
File src/kudu/mini-cluster/external_mini_cluster.cc:

http://gerrit.cloudera.org:8080/#/c/11956/10/src/kudu/mini-cluster/external_mini_cluster.cc@233
PS10, Line 233: we cannot choose a port at random as that can cause a port co
> Nit: "we cannot choose a port at random as that can cause a port collision.
Done


http://gerrit.cloudera.org:8080/#/c/11956/10/src/kudu/mini-cluster/external_mini_cluster.cc@236
PS10, Line 236: Sentry servi
> Nit: reconfigure
Done


http://gerrit.cloudera.org:8080/#/c/11956/10/src/kudu/sentry/mini_sentry.cc
File src/kudu/sentry/mini_sentry.cc:

http://gerrit.cloudera.org:8080/#/c/11956/10/src/kudu/sentry/mini_sentry.cc@68
PS10, Line 68: void MiniSentry::EnableHms(string hms_uris) {
> We should CHECK(!sentry_process_) here and in the other new setters.
Done


http://gerrit.cloudera.org:8080/#/c/11956/10/src/kudu/sentry/mini_sentry.cc@137
PS10, Line 137:
> If port_ isn't 0 before this call, we might want to check that its value ha
Done



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

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: I7f02e6085bd239570d10ec629f48856d37ed6e59
Gerrit-Change-Number: 11956
Gerrit-PatchSet: 11
Gerrit-Owner: Hao Hao 
Gerrit-Reviewer: Adar Dembo 
Gerrit-Reviewer: Andrew Wong 
Gerrit-Reviewer: Hao Hao 
Gerrit-Reviewer: Kudu Jenkins (120)
Gerrit-Reviewer: Tidy Bot (241)
Gerrit-Comment-Date: Tue, 22 Jan 2019 21:59:52 +
Gerrit-HasComments: Yes


[kudu-CR] De-flake sentry tests

2019-01-22 Thread Hao Hao (Code Review)
Hello Kudu Jenkins, Andrew Wong, Adar Dembo,

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

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

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

Change subject: De-flake sentry tests
..

De-flake sentry tests

Currently, sentry_client-test and sentry_authz_provider-test are still
flaky due to possible port collision. To avoid such race condition, this
patch moves the util function that finds the bind address for a daemon
based on binding mode to test_util, and updates sentry-test-base to use
it to pick up a unique bind address.

Change-Id: Id112634ad5e6f0e2c48b7e0e89389faff4f5656b
---
M src/kudu/integration-tests/master_migration-itest.cc
M src/kudu/integration-tests/security-itest.cc
M src/kudu/mini-cluster/external_mini_cluster-test.cc
M src/kudu/mini-cluster/external_mini_cluster.cc
M src/kudu/mini-cluster/external_mini_cluster.h
M src/kudu/mini-cluster/internal_mini_cluster.cc
M src/kudu/mini-cluster/internal_mini_cluster.h
M src/kudu/mini-cluster/mini_cluster.cc
M src/kudu/mini-cluster/mini_cluster.h
M src/kudu/sentry/sentry-test-base.h
M src/kudu/tools/kudu-tool-test.cc
M src/kudu/util/net/net_util.cc
M src/kudu/util/net/net_util.h
13 files changed, 165 insertions(+), 139 deletions(-)


  git pull ssh://gerrit.cloudera.org:29418/kudu refs/changes/61/11961/5
--
To view, visit http://gerrit.cloudera.org:8080/11961
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: newpatchset
Gerrit-Change-Id: Id112634ad5e6f0e2c48b7e0e89389faff4f5656b
Gerrit-Change-Number: 11961
Gerrit-PatchSet: 5
Gerrit-Owner: Hao Hao 
Gerrit-Reviewer: Adar Dembo 
Gerrit-Reviewer: Andrew Wong 
Gerrit-Reviewer: Hao Hao 
Gerrit-Reviewer: Kudu Jenkins (120)


[kudu-CR] [sentry] add mini Sentry to the external mini cluster

2019-01-22 Thread Hao Hao (Code Review)
Hello Tidy Bot, Kudu Jenkins, Andrew Wong, Adar Dembo,

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

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

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

Change subject: [sentry] add mini Sentry to the external mini cluster
..

[sentry] add mini Sentry to the external mini cluster

This commit enables external mini cluster to be able to start with both
mini sentry and mini hms. A major challenge is the circular dependency
between the HMS and Sentry in terms of configuring each with the other's
address, including port which is currently discovered by polling lsof.
To work around it, one approach would be to:

  1. Start the Sentry service. Find out which port it's on. At this
 stage, the Sentry service has no knowledge of any HMS service.
  2. Start the HMS, configured to talk to Sentry's port. Find out which
 port it's on.
  3. Restart the Sentry service on the same port, reconfigured to talk
 to the HMS's port.

However, there could be a race condition where another program binds to
the same port during the restart in step 3. One option is to use
SO_REUSEPORT socket option, which permits multiple sockets to be bound
to an identical socket address. Although both Sentry and HMS are written
in Java, only JDK9 (and above) supports this socket option[1]. Methods
such as Java reflection can be used to invoke private methods to set up
this option, but they are hacky.

This patch extends the UNIQUE_LOOPBACK usage in mini cluster, so that
external servers such as Sentry can pick up a unique bind address,
knowing that in doing so there'll never be any danger of a port
collision.

I looped master_sentry-itest 1000 times (which used UNIQUE_LOOPBACK
mode) and all passed:
http://dist-test.cloudera.org/job?job_id=hao.hao.1548189107.129474

[1]: 
https://docs.oracle.com/javase/9/docs/api/java/net/StandardSocketOptions.html#SO_REUSEPORT

Change-Id: I7f02e6085bd239570d10ec629f48856d37ed6e59
---
M src/kudu/hms/mini_hms.cc
M src/kudu/hms/mini_hms.h
M src/kudu/integration-tests/CMakeLists.txt
A src/kudu/integration-tests/master_sentry-itest.cc
M src/kudu/mini-cluster/CMakeLists.txt
M src/kudu/mini-cluster/external_mini_cluster.cc
M src/kudu/mini-cluster/external_mini_cluster.h
M src/kudu/mini-cluster/mini_cluster.cc
M src/kudu/mini-cluster/mini_cluster.h
M src/kudu/security/test/mini_kdc.cc
M src/kudu/sentry/mini_sentry.cc
M src/kudu/sentry/mini_sentry.h
M src/kudu/sentry/sentry-test-base.h
M src/kudu/util/test_util.cc
M src/kudu/util/test_util.h
15 files changed, 526 insertions(+), 77 deletions(-)


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

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: newpatchset
Gerrit-Change-Id: I7f02e6085bd239570d10ec629f48856d37ed6e59
Gerrit-Change-Number: 11956
Gerrit-PatchSet: 11
Gerrit-Owner: Hao Hao 
Gerrit-Reviewer: Adar Dembo 
Gerrit-Reviewer: Andrew Wong 
Gerrit-Reviewer: Hao Hao 
Gerrit-Reviewer: Kudu Jenkins (120)
Gerrit-Reviewer: Tidy Bot (241)


[kudu-CR] [docker] Add an initial docker build

2019-01-22 Thread Adar Dembo (Code Review)
Adar Dembo has posted comments on this change. ( 
http://gerrit.cloudera.org:8080/12173 )

Change subject: [docker] Add an initial docker build
..


Patch Set 2:

(7 comments)

http://gerrit.cloudera.org:8080/#/c/12173/2//COMMIT_MSG
Commit Message:

http://gerrit.cloudera.org:8080/#/c/12173/2//COMMIT_MSG@20
PS2, Line 20: muti
multi


http://gerrit.cloudera.org:8080/#/c/12173/2/docker/Dockerfile
File docker/Dockerfile:

http://gerrit.cloudera.org:8080/#/c/12173/2/docker/Dockerfile@71
PS2, Line 71:   # TODO: Remove build dir too?
In theory you could remove thirdparty/build too, except that the 
clang-toolchain symlink points to llvm-6.0.0 within it. Off the top of my head 
I can't remember why that's the case (i.e. why it doesn't point to somewhere in 
thirdparty/installed).


http://gerrit.cloudera.org:8080/#/c/12173/2/docker/Dockerfile@110
PS2, Line 110: COPY ./docs/support docs/support
Can we skip this? Not seeing where we build docs below.


http://gerrit.cloudera.org:8080/#/c/12173/2/docker/Dockerfile-files
File docker/Dockerfile-files:

http://gerrit.cloudera.org:8080/#/c/12173/2/docker/Dockerfile-files@18
PS2, Line 18: # This docker file is a minimal build usefull for debugging
useful


http://gerrit.cloudera.org:8080/#/c/12173/2/docker/kudu-entrypoint.sh
File docker/kudu-entrypoint.sh:

http://gerrit.cloudera.org:8080/#/c/12173/2/docker/kudu-entrypoint.sh@49
PS2, Line 49: KUDU_OPTS="$KUDU_FLAGS \
Is the idea that KUDU_FLAGS can be set by users to do more configuration? Maybe 
doc that at the top of the file?


http://gerrit.cloudera.org:8080/#/c/12173/2/docker/kudu-entrypoint.sh@52
PS2, Line 52:  --fs_data_dirs=/var/lib/kudu/master \
You can omit this if the intent is to use the same value as --fs_wal_dir. Below 
too.


http://gerrit.cloudera.org:8080/#/c/12173/2/thirdparty/build-thirdparty.sh
File thirdparty/build-thirdparty.sh:

http://gerrit.cloudera.org:8080/#/c/12173/2/thirdparty/build-thirdparty.sh@248
PS2, Line 248: # Install Hadoop, Hive, and Sentry by copying their source 
directories into $PREFIX/opt.
 : # Copying allows the source directory to be removed once 
thirdparty is built.
How much additional disk space will this consume?

Also, will the migration be smooth for existing thirdparty trees where these 
are symlinks? Looking at the build results for this patch, looks like the 
migration doesn't work at all. Maybe we need to rm -rf the existing symlinks 
first? I wonder if we should use rsync to manage this instead, as it'll do a 
better job of synchronizing the source and destination.



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

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: I95497b39e47f07301be75cbadd814656c7e2ea42
Gerrit-Change-Number: 12173
Gerrit-PatchSet: 2
Gerrit-Owner: Grant Henke 
Gerrit-Reviewer: Adar Dembo 
Gerrit-Reviewer: Attila Bukor 
Gerrit-Reviewer: Grant Henke 
Gerrit-Reviewer: Kudu Jenkins (120)
Gerrit-Comment-Date: Tue, 22 Jan 2019 21:44:59 +
Gerrit-HasComments: Yes