[kudu-CR] [master] allow setting BlockCacheMetrics twice

2021-06-25 Thread Andrew Wong (Code Review)
Andrew Wong has posted comments on this change. ( 
http://gerrit.cloudera.org:8080/17636 )

Change subject: [master] allow setting BlockCacheMetrics twice
..


Patch Set 3:

(6 comments)

http://gerrit.cloudera.org:8080/#/c/17636/2/src/kudu/util/cache.h
File src/kudu/util/cache.h:

http://gerrit.cloudera.org:8080/#/c/17636/2/src/kudu/util/cache.h@69
PS2, Line 69: enum
> nit (bikeshedding): any specific reason not to use 'enum class' here?
Done


http://gerrit.cloudera.org:8080/#/c/17636/2/src/kudu/util/cache.h@69
PS2, Line 69: class ExistingMetric
> nit (bikeshedding): maybe, name this ExistingMetricsPolicy ?
Done


http://gerrit.cloudera.org:8080/#/c/17636/2/src/kudu/util/cache.h@76
PS2, Line 76: kKeep,
> nit (bikeshedding): maybe, name this kKeep (assuming the enum is called Exi
Done


http://gerrit.cloudera.org:8080/#/c/17636/2/src/kudu/util/cache.h@81
PS2, Line 81: kReset,
> nit (bikeshedding): what that 'Force' stands for semantically?  Could 'kRes
Done


http://gerrit.cloudera.org:8080/#/c/17636/2/src/kudu/util/cache.h@85
PS2, Line 85:  metrics_policy)
> Should it be kReset by default?
I kept it as kKeep since that's the current behavior in all cases. As for 
default arguments in pure virtual methods, I've been advised against it before, 
so I'll keep it as is:

https://stackoverflow.com/questions/12139786/good-practice-default-arguments-for-pure-virtual-method


http://gerrit.cloudera.org:8080/#/c/17636/2/src/kudu/util/cache.cc
File src/kudu/util/cache.cc:

http://gerrit.cloudera.org:8080/#/c/17636/2/src/kudu/util/cache.cc@578
PS2, Line 578:   // probably better than spurious failures.
> Does it make sense to leave CHECK(IsGTest()) under this 'if()' clause, sinc
Done



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

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: I4bb9c6f382a26654f2d324676506441f370ffe61
Gerrit-Change-Number: 17636
Gerrit-PatchSet: 3
Gerrit-Owner: Andrew Wong 
Gerrit-Reviewer: Alexey Serbin 
Gerrit-Reviewer: Andrew Wong 
Gerrit-Reviewer: Bankim Bhavsar 
Gerrit-Reviewer: Kudu Jenkins (120)
Gerrit-Comment-Date: Sat, 26 Jun 2021 06:39:42 +
Gerrit-HasComments: Yes


[kudu-CR] [master] allow setting BlockCacheMetrics twice

2021-06-25 Thread Andrew Wong (Code Review)
Hello Alexey Serbin, Kudu Jenkins, Bankim Bhavsar,

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

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

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

Change subject: [master] allow setting BlockCacheMetrics twice
..

[master] allow setting BlockCacheMetrics twice

In some cases, the way we call Cache::SetMetrics() isn't threadsafe.
Typically, we only call this once per cache, but this can be a useful
call to repeat, e.g. if we're constructing a new server that
instantiates its own metric entity but uses the same cache. This usually
doesn't happen since most Caches are tied to a single server. However,
the BlockCache is special in that it's a singleton, so every
instantiation of a server in the same process will use the same cache.

This was the cause of KUDU-2165, which was resolved by only allowing the
first caller to set the metrics. While it prevented a race, this meant
that subsequently started servers would not correctly register metrics.

I have an upcoming patch that will start two servers from the same
process -- effectively restarting a master after running a tablet copy
from the same process as a means to automate the addition of a master to
a cluster. To allow this, this patch adds an option to force the
resetting of the cache metrics.

Change-Id: I4bb9c6f382a26654f2d324676506441f370ffe61
---
M src/kudu/cfile/block_cache.cc
M src/kudu/cfile/block_cache.h
M src/kudu/master/master-test.cc
M src/kudu/master/master.cc
M src/kudu/master/master_options.cc
M src/kudu/master/master_options.h
M src/kudu/master/table_locations_cache.cc
M src/kudu/util/cache-test.cc
M src/kudu/util/cache.cc
M src/kudu/util/cache.h
M src/kudu/util/file_cache.cc
M src/kudu/util/nvm_cache.cc
M src/kudu/util/ttl_cache.h
13 files changed, 98 insertions(+), 17 deletions(-)


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

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: newpatchset
Gerrit-Change-Id: I4bb9c6f382a26654f2d324676506441f370ffe61
Gerrit-Change-Number: 17636
Gerrit-PatchSet: 3
Gerrit-Owner: Andrew Wong 
Gerrit-Reviewer: Alexey Serbin 
Gerrit-Reviewer: Andrew Wong 
Gerrit-Reviewer: Bankim Bhavsar 
Gerrit-Reviewer: Kudu Jenkins (120)


[kudu-CR] [rest] add oat++ framework to kudu

2021-06-25 Thread Alexey Serbin (Code Review)
Alexey Serbin has posted comments on this change. ( 
http://gerrit.cloudera.org:8080/17554 )

Change subject: [rest] add oat++ framework to kudu
..


Patch Set 16:

(8 comments)

http://gerrit.cloudera.org:8080/#/c/17554/16/cmake_modules/FindOatpp.cmake
File cmake_modules/FindOatpp.cmake:

http://gerrit.cloudera.org:8080/#/c/17554/16/cmake_modules/FindOatpp.cmake@24
PS16, Line 24: oatpp-1.2.5
Is there a way to use version-agnostic path here?  Using version-specific path 
might be very inconvenient when the package is updated for a new version in 
future.

I'd expect these path to point to files placed under 
$KUDU_ROOT/thirdparty/installed/{common,tsan,uninstrumented}, so no version 
would be in the path?


http://gerrit.cloudera.org:8080/#/c/17554/16/cmake_modules/FindOatpp.cmake@29
PS16, Line 29: oatpp-1.2.5
ditto


http://gerrit.cloudera.org:8080/#/c/17554/16/cmake_modules/FindOatpp.cmake@31
PS16, Line 31: oatpp-1.2.5/
ditto


http://gerrit.cloudera.org:8080/#/c/17554/16/cmake_modules/FindOatppSwagger.cmake
File cmake_modules/FindOatppSwagger.cmake:

http://gerrit.cloudera.org:8080/#/c/17554/16/cmake_modules/FindOatppSwagger.cmake@24
PS16, Line 24: oatpp-1.2.5
ditto: is it possible to switch to a version-agnostic path here?


http://gerrit.cloudera.org:8080/#/c/17554/16/cmake_modules/FindOatppSwagger.cmake@29
PS16, Line 29: oatpp-1.2.5
ditto


http://gerrit.cloudera.org:8080/#/c/17554/16/cmake_modules/FindOatppSwagger.cmake@31
PS16, Line 31: oatpp-1.2.5
ditto


http://gerrit.cloudera.org:8080/#/c/17554/16/thirdparty/build-definitions.sh
File thirdparty/build-definitions.sh:

http://gerrit.cloudera.org:8080/#/c/17554/16/thirdparty/build-definitions.sh@1101
PS16, Line 1101:   cmake \
   :   -DCMAKE_BUILD_TYPE=release \
   :   -DCMAKE_INSTALL_PREFIX=$PREFIX \
   :   -DBUILD_SHARED_LIBS=OFF \
   :   -DOATPP_DISABLE_ENV_OBJECT_COUNTERS=ON \
   :   -DOATPP_BUILD_TESTS=OFF \
   :   $OATPP_SOURCE
style nit: for line continuations, add an extra indent (see other build_xxx() 
functions in this file for reference)


http://gerrit.cloudera.org:8080/#/c/17554/16/thirdparty/build-definitions.sh@1117
PS16, Line 1117:   cmake \
   :   -DCMAKE_BUILD_TYPE=release \
   :   -DCMAKE_INSTALL_PREFIX=$PREFIX \
   :   -DBUILD_SHARED_LIBS=OFF \
   :   -DOATPP_BUILD_TESTS=OFF \
   :   -DOATPP_INSTALL=ON \
   :   $OATPP_SWAGGER_SOURCE
ditto



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

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: Ie1b5376297b0170a624655acf836cdedc090f6e7
Gerrit-Change-Number: 17554
Gerrit-PatchSet: 16
Gerrit-Owner: Khazar Mammadli 
Gerrit-Reviewer: Alexey Serbin 
Gerrit-Reviewer: Attila Bukor 
Gerrit-Reviewer: Kudu Jenkins (120)
Gerrit-Comment-Date: Sat, 26 Jun 2021 00:20:20 +
Gerrit-HasComments: Yes


[kudu-CR] [thirdparty] fix building crcutil with GCC 10

2021-06-25 Thread Alexey Serbin (Code Review)
Alexey Serbin has posted comments on this change. ( 
http://gerrit.cloudera.org:8080/17626 )

Change subject: [thirdparty] fix building crcutil with GCC 10
..


Patch Set 1:

> The change looks good to me. I don't have a strong opinion on the
 > ordering of patching.

Thank you for the review!  I already posted a pull request for the crcutil repo 
athttps://github.com/cloudera/crcutil/pull/4

I hope to get that merged, and then I'll need to update this patch to use the 
newer snapshot of the crcutil package.


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

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: Ibaba794ce00eb64a29e8038a8a2f4883f35c975a
Gerrit-Change-Number: 17626
Gerrit-PatchSet: 1
Gerrit-Owner: Alexey Serbin 
Gerrit-Reviewer: Alexey Serbin 
Gerrit-Reviewer: Andrew Wong 
Gerrit-Reviewer: Grant Henke 
Gerrit-Reviewer: Kudu Jenkins (120)
Gerrit-Comment-Date: Sat, 26 Jun 2021 00:10:43 +
Gerrit-HasComments: No


[kudu-CR] [master] allow setting BlockCacheMetrics twice

2021-06-25 Thread Alexey Serbin (Code Review)
Alexey Serbin has posted comments on this change. ( 
http://gerrit.cloudera.org:8080/17636 )

Change subject: [master] allow setting BlockCacheMetrics twice
..


Patch Set 2:

(6 comments)

http://gerrit.cloudera.org:8080/#/c/17636/2/src/kudu/util/cache.h
File src/kudu/util/cache.h:

http://gerrit.cloudera.org:8080/#/c/17636/2/src/kudu/util/cache.h@69
PS2, Line 69: MetricsResetBehavior
nit (bikeshedding): maybe, name this ExistingMetricsPolicy ?


http://gerrit.cloudera.org:8080/#/c/17636/2/src/kudu/util/cache.h@69
PS2, Line 69: enum
nit (bikeshedding): any specific reason not to use 'enum class' here?


http://gerrit.cloudera.org:8080/#/c/17636/2/src/kudu/util/cache.h@76
PS2, Line 76: kKeepFirstMetrics
nit (bikeshedding): maybe, name this kKeep (assuming the enum is called 
ExistingMetricsPolicy)?  Or the idea is to have snapshots of various metrics in 
the future?


http://gerrit.cloudera.org:8080/#/c/17636/2/src/kudu/util/cache.h@81
PS2, Line 81: kForceResetMetrics
nit (bikeshedding): what that 'Force' stands for semantically?  Could 'kReset' 
be a good enough name for this (assuming the enum is called 
ExistingMetricsPolicy)?


http://gerrit.cloudera.org:8080/#/c/17636/2/src/kudu/util/cache.h@85
PS2, Line 85: metrics_behavior
Should it be kReset by default?


http://gerrit.cloudera.org:8080/#/c/17636/2/src/kudu/util/cache.cc
File src/kudu/util/cache.cc:

http://gerrit.cloudera.org:8080/#/c/17636/2/src/kudu/util/cache.cc@578
PS2, Line 578:   return;
Does it make sense to leave CHECK(IsGTest()) under this 'if()' clause, since 
(1) we expect this method to be called with kKeep only from tests (2) not 
setting the provided metrics might point to an issue in non-test environments?



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

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: I4bb9c6f382a26654f2d324676506441f370ffe61
Gerrit-Change-Number: 17636
Gerrit-PatchSet: 2
Gerrit-Owner: Andrew Wong 
Gerrit-Reviewer: Alexey Serbin 
Gerrit-Reviewer: Andrew Wong 
Gerrit-Reviewer: Bankim Bhavsar 
Gerrit-Reviewer: Kudu Jenkins (120)
Gerrit-Comment-Date: Fri, 25 Jun 2021 23:44:22 +
Gerrit-HasComments: Yes


[kudu-CR] [txn system client] MonoDelta by value in CoordinateTransactionAsync()

2021-06-25 Thread Andrew Wong (Code Review)
Andrew Wong has posted comments on this change. ( 
http://gerrit.cloudera.org:8080/17611 )

Change subject: [txn_system_client] MonoDelta by value in 
CoordinateTransactionAsync()
..


Patch Set 2:

> Patch Set 2:
>
> > > > Sorry I didn't understand. How does pass-by-value fix the UBSAN
>  > > > warning?
>  > >
>  > > The prior version of the method would take a reference to
>  > >
>  > > > Sorry I didn't understand. How does pass-by-value fix the UBSAN
>  > > > warning?
>  > >
>  > > Thank you for looking at this.
>  > >
>  > > I quickly looked at the code around when putting together this
>  > > patch and I was under impression that 'timeout' was passed by
>  > > reference into the callback functor which on its turn was passed
>  > > into LookupTabletByKey(), so I suspected a functor being run with
>  > > de-allocated MonoTime.
>  > >
>  > > After taking another look, I found turns out the 'timeout' is
>  > used
>  > > to compute 'deadline' using 'timeout' right before doing anything
>  > > else, and then 'deadline' is actually passed around by _value_ in
>  > > CoordinateTransactionAsync().
>  > >
>  > > So yes, it seems this might be a dud fix, but it should not hurt
>  > in
>  > > any other way, and we pass MonoDelta by value in many more other
>  > > cases anyway, so you consider this just as a 'style' fix :)
>  >
>  > > ... so you consider this just as a 'style' fix :)
>  >
>  > I meant "... so you can consider this to be just a 'style" fix :)"
>
> After another look, it seems the issue here is about passing 
> MonoDelta::FromNanoseconds(std::numeric_limits::max()) as a value 
> for 'timeout' parameter when calling 
> TxnSystemClient::CoordinateTransactionAsync()

Ah indeed, I assumed this was a case of the MonoDelta being used in an async 
function but being destructed before actually being used. Good call-out Bankim.


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

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: I36ba521a3bb7a4ca42a5dc8d383f5d8b6309154d
Gerrit-Change-Number: 17611
Gerrit-PatchSet: 2
Gerrit-Owner: Alexey Serbin 
Gerrit-Reviewer: Abhishek Chennaka 
Gerrit-Reviewer: Alexey Serbin 
Gerrit-Reviewer: Andrew Wong 
Gerrit-Reviewer: Bankim Bhavsar 
Gerrit-Reviewer: Kudu Jenkins (120)
Gerrit-Comment-Date: Fri, 25 Jun 2021 23:22:53 +
Gerrit-HasComments: No


[kudu-CR] [master] allow setting BlockCacheMetrics twice

2021-06-25 Thread Andrew Wong (Code Review)
Andrew Wong has posted comments on this change. ( 
http://gerrit.cloudera.org:8080/17636 )

Change subject: [master] allow setting BlockCacheMetrics twice
..


Patch Set 2:

(1 comment)

http://gerrit.cloudera.org:8080/#/c/17636/1/src/kudu/master/master_options.cc
File src/kudu/master/master_options.cc:

http://gerrit.cloudera.org:8080/#/c/17636/1/src/kudu/master/master_options.cc@59
PS1, Line 59:   }
> Nit: This could be part of the constructor initliazer list
Done



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

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: I4bb9c6f382a26654f2d324676506441f370ffe61
Gerrit-Change-Number: 17636
Gerrit-PatchSet: 2
Gerrit-Owner: Andrew Wong 
Gerrit-Reviewer: Alexey Serbin 
Gerrit-Reviewer: Andrew Wong 
Gerrit-Reviewer: Bankim Bhavsar 
Gerrit-Reviewer: Kudu Jenkins (120)
Gerrit-Comment-Date: Fri, 25 Jun 2021 23:10:14 +
Gerrit-HasComments: Yes


[kudu-CR] [master] allow setting BlockCacheMetrics twice

2021-06-25 Thread Andrew Wong (Code Review)
Hello Alexey Serbin, Kudu Jenkins, Bankim Bhavsar,

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

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

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

Change subject: [master] allow setting BlockCacheMetrics twice
..

[master] allow setting BlockCacheMetrics twice

In some cases, the way we call Cache::SetMetrics() isn't threadsafe.
Typically, we only call this once per cache, but this can be a useful
call to repeat, e.g. if we're constructing a new server that
instantiates its own metric entity but uses the same cache. This usually
doesn't happen since most Caches are tied to a single server. However,
the BlockCache is special in that it's a singleton, so every
instantiation of a server in the same process will use the same cache.

This was the cause of KUDU-2165, which was resolved by only allowing the
first caller to set the metrics. While it prevented a race, this meant
that subsequently started servers would not correctly register metrics.

I have an upcoming patch that will start two servers from the same
process -- effectively restarting a master after running a tablet copy
from the same process as a means to automate the addition of a master to
a cluster. To allow this, this patch adds an option to force the
resetting of the cache metrics.

Change-Id: I4bb9c6f382a26654f2d324676506441f370ffe61
---
M src/kudu/cfile/block_cache.cc
M src/kudu/cfile/block_cache.h
M src/kudu/master/master-test.cc
M src/kudu/master/master.cc
M src/kudu/master/master_options.cc
M src/kudu/master/master_options.h
M src/kudu/master/table_locations_cache.cc
M src/kudu/util/cache-test.cc
M src/kudu/util/cache.cc
M src/kudu/util/cache.h
M src/kudu/util/file_cache.cc
M src/kudu/util/nvm_cache.cc
M src/kudu/util/ttl_cache.h
13 files changed, 98 insertions(+), 19 deletions(-)


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

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: newpatchset
Gerrit-Change-Id: I4bb9c6f382a26654f2d324676506441f370ffe61
Gerrit-Change-Number: 17636
Gerrit-PatchSet: 2
Gerrit-Owner: Andrew Wong 
Gerrit-Reviewer: Alexey Serbin 
Gerrit-Reviewer: Andrew Wong 
Gerrit-Reviewer: Bankim Bhavsar 
Gerrit-Reviewer: Kudu Jenkins (120)


[kudu-CR] [txn system client] MonoDelta by value in CoordinateTransactionAsync()

2021-06-25 Thread Alexey Serbin (Code Review)
Alexey Serbin has posted comments on this change. ( 
http://gerrit.cloudera.org:8080/17611 )

Change subject: [txn_system_client] MonoDelta by value in 
CoordinateTransactionAsync()
..


Patch Set 2:

> > > Sorry I didn't understand. How does pass-by-value fix the UBSAN
 > > > warning?
 > >
 > > The prior version of the method would take a reference to
 > >
 > > > Sorry I didn't understand. How does pass-by-value fix the UBSAN
 > > > warning?
 > >
 > > Thank you for looking at this.
 > >
 > > I quickly looked at the code around when putting together this
 > > patch and I was under impression that 'timeout' was passed by
 > > reference into the callback functor which on its turn was passed
 > > into LookupTabletByKey(), so I suspected a functor being run with
 > > de-allocated MonoTime.
 > >
 > > After taking another look, I found turns out the 'timeout' is
 > used
 > > to compute 'deadline' using 'timeout' right before doing anything
 > > else, and then 'deadline' is actually passed around by _value_ in
 > > CoordinateTransactionAsync().
 > >
 > > So yes, it seems this might be a dud fix, but it should not hurt
 > in
 > > any other way, and we pass MonoDelta by value in many more other
 > > cases anyway, so you consider this just as a 'style' fix :)
 >
 > > ... so you consider this just as a 'style' fix :)
 >
 > I meant "... so you can consider this to be just a 'style" fix :)"

After another look, it seems the issue here is about passing 
MonoDelta::FromNanoseconds(std::numeric_limits::max()) as a value for 
'timeout' parameter when calling TxnSystemClient::CoordinateTransactionAsync()


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

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: I36ba521a3bb7a4ca42a5dc8d383f5d8b6309154d
Gerrit-Change-Number: 17611
Gerrit-PatchSet: 2
Gerrit-Owner: Alexey Serbin 
Gerrit-Reviewer: Abhishek Chennaka 
Gerrit-Reviewer: Alexey Serbin 
Gerrit-Reviewer: Andrew Wong 
Gerrit-Reviewer: Bankim Bhavsar 
Gerrit-Reviewer: Kudu Jenkins (120)
Gerrit-Comment-Date: Fri, 25 Jun 2021 21:52:40 +
Gerrit-HasComments: No


[kudu-CR] [txn system client] MonoDelta by value in CoordinateTransactionAsync()

2021-06-25 Thread Alexey Serbin (Code Review)
Alexey Serbin has posted comments on this change. ( 
http://gerrit.cloudera.org:8080/17611 )

Change subject: [txn_system_client] MonoDelta by value in 
CoordinateTransactionAsync()
..


Patch Set 2:

> > Sorry I didn't understand. How does pass-by-value fix the UBSAN
 > > warning?
 >
 > The prior version of the method would take a reference to
 >
 > > Sorry I didn't understand. How does pass-by-value fix the UBSAN
 > > warning?
 >
 > Thank you for looking at this.
 >
 > I quickly looked at the code around when putting together this
 > patch and I was under impression that 'timeout' was passed by
 > reference into the callback functor which on its turn was passed
 > into LookupTabletByKey(), so I suspected a functor being run with
 > de-allocated MonoTime.
 >
 > After taking another look, I found turns out the 'timeout' is used
 > to compute 'deadline' using 'timeout' right before doing anything
 > else, and then 'deadline' is actually passed around by _value_ in
 > CoordinateTransactionAsync().
 >
 > So yes, it seems this might be a dud fix, but it should not hurt in
 > any other way, and we pass MonoDelta by value in many more other
 > cases anyway, so you consider this just as a 'style' fix :)

> ... so you consider this just as a 'style' fix :)

I meant "... so you can consider this to be just a 'style" fix :)"


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

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: I36ba521a3bb7a4ca42a5dc8d383f5d8b6309154d
Gerrit-Change-Number: 17611
Gerrit-PatchSet: 2
Gerrit-Owner: Alexey Serbin 
Gerrit-Reviewer: Abhishek Chennaka 
Gerrit-Reviewer: Alexey Serbin 
Gerrit-Reviewer: Andrew Wong 
Gerrit-Reviewer: Bankim Bhavsar 
Gerrit-Reviewer: Kudu Jenkins (120)
Gerrit-Comment-Date: Fri, 25 Jun 2021 21:31:38 +
Gerrit-HasComments: No


[kudu-CR] [txn system client] MonoDelta by value in CoordinateTransactionAsync()

2021-06-25 Thread Alexey Serbin (Code Review)
Alexey Serbin has posted comments on this change. ( 
http://gerrit.cloudera.org:8080/17611 )

Change subject: [txn_system_client] MonoDelta by value in 
CoordinateTransactionAsync()
..


Patch Set 2:

> Sorry I didn't understand. How does pass-by-value fix the UBSAN
 > warning?

The prior version of the method would take a reference to

 > Sorry I didn't understand. How does pass-by-value fix the UBSAN
 > warning?

Thank you for looking at this.

I quickly looked at the code around when putting together this patch and I was 
under impression that 'timeout' was passed by reference into the callback 
functor which on its turn was passed into LookupTabletByKey(), so I suspected a 
functor being run with de-allocated MonoTime.

After taking another look, I found turns out the 'timeout' is used to compute 
'deadline' using 'timeout' right before doing anything else, and then 
'deadline' is actually passed around by _value_ in  
CoordinateTransactionAsync().

So yes, it seems this might be a dud fix, but it should not hurt in any other 
way, and we pass MonoDelta by value in many more other cases anyway, so you 
consider this just as a 'style' fix :)


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

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: I36ba521a3bb7a4ca42a5dc8d383f5d8b6309154d
Gerrit-Change-Number: 17611
Gerrit-PatchSet: 2
Gerrit-Owner: Alexey Serbin 
Gerrit-Reviewer: Abhishek Chennaka 
Gerrit-Reviewer: Alexey Serbin 
Gerrit-Reviewer: Andrew Wong 
Gerrit-Reviewer: Bankim Bhavsar 
Gerrit-Reviewer: Kudu Jenkins (120)
Gerrit-Comment-Date: Fri, 25 Jun 2021 21:24:46 +
Gerrit-HasComments: No


[kudu-CR] [thirdparty] fix building crcutil with GCC 10

2021-06-25 Thread Andrew Wong (Code Review)
Andrew Wong has posted comments on this change. ( 
http://gerrit.cloudera.org:8080/17626 )

Change subject: [thirdparty] fix building crcutil with GCC 10
..


Patch Set 1: Code-Review+2


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

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: Ibaba794ce00eb64a29e8038a8a2f4883f35c975a
Gerrit-Change-Number: 17626
Gerrit-PatchSet: 1
Gerrit-Owner: Alexey Serbin 
Gerrit-Reviewer: Alexey Serbin 
Gerrit-Reviewer: Andrew Wong 
Gerrit-Reviewer: Grant Henke 
Gerrit-Reviewer: Kudu Jenkins (120)
Gerrit-Comment-Date: Fri, 25 Jun 2021 20:54:56 +
Gerrit-HasComments: No


[kudu-CR] [thirdparty] fix building crcutil with GCC 10

2021-06-25 Thread Andrew Wong (Code Review)
Andrew Wong has posted comments on this change. ( 
http://gerrit.cloudera.org:8080/17626 )

Change subject: [thirdparty] fix building crcutil with GCC 10
..


Patch Set 1:

The change looks good to me. I don't have a strong opinion on the ordering of 
patching.


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

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: Ibaba794ce00eb64a29e8038a8a2f4883f35c975a
Gerrit-Change-Number: 17626
Gerrit-PatchSet: 1
Gerrit-Owner: Alexey Serbin 
Gerrit-Reviewer: Alexey Serbin 
Gerrit-Reviewer: Andrew Wong 
Gerrit-Reviewer: Grant Henke 
Gerrit-Reviewer: Kudu Jenkins (120)
Gerrit-Comment-Date: Fri, 25 Jun 2021 20:54:51 +
Gerrit-HasComments: No


[kudu-CR] [master] allow setting BlockCacheMetrics twice

2021-06-25 Thread Bankim Bhavsar (Code Review)
Bankim Bhavsar has posted comments on this change. ( 
http://gerrit.cloudera.org:8080/17636 )

Change subject: [master] allow setting BlockCacheMetrics twice
..


Patch Set 1: Code-Review+1

(1 comment)

http://gerrit.cloudera.org:8080/#/c/17636/1/src/kudu/master/master_options.cc
File src/kudu/master/master_options.cc:

http://gerrit.cloudera.org:8080/#/c/17636/1/src/kudu/master/master_options.cc@59
PS1, Line 59:   block_cache_metrics_reset_behavior_ = Cache::kKeepFirstMetrics;
Nit: This could be part of the constructor initliazer list



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

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: I4bb9c6f382a26654f2d324676506441f370ffe61
Gerrit-Change-Number: 17636
Gerrit-PatchSet: 1
Gerrit-Owner: Andrew Wong 
Gerrit-Reviewer: Alexey Serbin 
Gerrit-Reviewer: Andrew Wong 
Gerrit-Reviewer: Bankim Bhavsar 
Gerrit-Reviewer: Kudu Jenkins (120)
Gerrit-Comment-Date: Fri, 25 Jun 2021 20:29:38 +
Gerrit-HasComments: Yes


[kudu-CR] [txn system client] MonoDelta by value in CoordinateTransactionAsync()

2021-06-25 Thread Bankim Bhavsar (Code Review)
Bankim Bhavsar has posted comments on this change. ( 
http://gerrit.cloudera.org:8080/17611 )

Change subject: [txn_system_client] MonoDelta by value in 
CoordinateTransactionAsync()
..


Patch Set 2:

Sorry I didn't understand. How does pass-by-value fix the UBSAN warning?


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

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: I36ba521a3bb7a4ca42a5dc8d383f5d8b6309154d
Gerrit-Change-Number: 17611
Gerrit-PatchSet: 2
Gerrit-Owner: Alexey Serbin 
Gerrit-Reviewer: Abhishek Chennaka 
Gerrit-Reviewer: Alexey Serbin 
Gerrit-Reviewer: Andrew Wong 
Gerrit-Reviewer: Bankim Bhavsar 
Gerrit-Reviewer: Kudu Jenkins (120)
Gerrit-Comment-Date: Fri, 25 Jun 2021 19:17:09 +
Gerrit-HasComments: No


[kudu-CR] [thirdparty] fix building LLVM 9 with GCC 10

2021-06-25 Thread Alexey Serbin (Code Review)
Alexey Serbin has submitted this change and it was merged. ( 
http://gerrit.cloudera.org:8080/17627 )

Change subject: [thirdparty] fix building LLVM 9 with GCC 10
..

[thirdparty] fix building LLVM 9 with GCC 10

This patch fixes LLVM 9 build with GCC 10 in Kudu's thirdparty.  The
imported patch is already in the LLVM repo, see [1].

Prior to this patch, LLVM9 build in thirdparty would fail with the
following error:

  
thirdparty/src/llvm-9.0.0.src/include/llvm/Demangle/MicrosoftDemangleNodes.h:566:3:
 error: unknown type name 'uint32_t'
uint32_t NVOffset = 0;
^

[1] 
https://github.com/llvm-mirror/llvm/commit/e0402b5c9813a2458b8dd3f640883110db280395

Change-Id: I3332556229dbf2bce65d52f37c48d62624465f70
Reviewed-on: http://gerrit.cloudera.org:8080/17627
Tested-by: Kudu Jenkins
Reviewed-by: Andrew Wong 
---
M thirdparty/download-thirdparty.sh
A 
thirdparty/patches/llvm-MicrosoftDemangleNodes-e0402b5c9813a2458b8dd3f640883110db280395.patch
2 files changed, 34 insertions(+), 1 deletion(-)

Approvals:
  Kudu Jenkins: Verified
  Andrew Wong: Looks good to me, approved

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

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: merged
Gerrit-Change-Id: I3332556229dbf2bce65d52f37c48d62624465f70
Gerrit-Change-Number: 17627
Gerrit-PatchSet: 3
Gerrit-Owner: Alexey Serbin 
Gerrit-Reviewer: Alexey Serbin 
Gerrit-Reviewer: Andrew Wong 
Gerrit-Reviewer: Grant Henke 
Gerrit-Reviewer: Kudu Jenkins (120)


[kudu-CR] [txn system client] MonoDelta by value in CoordinateTransactionAsync()

2021-06-25 Thread Alexey Serbin (Code Review)
Alexey Serbin has submitted this change and it was merged. ( 
http://gerrit.cloudera.org:8080/17611 )

Change subject: [txn_system_client] MonoDelta by value in 
CoordinateTransactionAsync()
..

[txn_system_client] MonoDelta by value in CoordinateTransactionAsync()

This patch updates the signature of the
TxnSystemClient::CoordinateTransactionAsync() method to pass MonoDelta
by value.  In addition, I added an extra DCHECK() into
MonoTime::AddDelta().

The motivation for this change was seeing the following UBSAN warning
in one of the pre-commit builds [1]:

  #0 0x7f48d11e8f3c in kudu::MonoTime::AddDelta(kudu::MonoDelta const&) 
src/kudu/util/monotime.cc:218:10
  #1 0x7f48d11e9eee in kudu::operator+(kudu::MonoTime const&, kudu::MonoDelta 
const&) src/kudu/util/monotime.cc:333:7
  #2 0x7f48e0d846c1 in 
kudu::transactions::TxnSystemClient::CoordinateTransactionAsync(kudu::tserver::CoordinatorOpPB,
 kudu::MonoDelta const&, std::function const&, 
kudu::tserver::CoordinatorOpResultPB*) 
src/kudu/transactions/txn_system_client.cc:331:45
  #3 0x7f48e0d86f76 in 
kudu::transactions::TxnSystemClient::KeepTransactionAlive(long, 
std::__cxx11::basic_string, std::allocator > 
const&, kudu::MonoDelta) src/kudu/transactions/txn_system_client.cc:320:3
  #4 0x7f48e24c62b9 in 
kudu::transactions::TxnManager::KeepTransactionAlive(long, 
std::__cxx11::basic_string, std::allocator > 
const&, kudu::MonoTime const&) src/kudu/master/txn_manager.cc:238:27
  #5 0x7f48e24ca36f in 
kudu::transactions::TxnManagerServiceImpl::KeepTransactionAlive(kudu::transactions::KeepTransactionAliveRequestPB
 const*, kudu::transactions::KeepTransactionAliveResponsePB*, 
kudu::rpc::RpcContext*) src/kudu/master/txn_manager_service.cc:159:42
  #6 0x7f48d7224b0e in std::function::operator()(google::protobuf::Message const*, 
google::protobuf::Message*, kudu::rpc::RpcContext*) const 
../../../include/c++/7.5.0/bits/std_function.h:706:14
  #7 0x7f48d7223afc in 
kudu::rpc::GeneratedServiceIf::Handle(kudu::rpc::InboundCall*) 
src/kudu/rpc/service_if.cc:137:3
  #8 0x7f48d7229a9d in kudu::rpc::ServicePool::RunThread() 
src/kudu/rpc/service_pool.cc:232:15
  #9 0x7f48d1290c3a in kudu::Thread::SuperviseThread(void*) 
src/kudu/util/thread.cc:674:3
  #10 0x7f48d3a046da in start_thread 
(/lib/x86_64-linux-gnu/libpthread.so.0+0x76da)
  #11 0x7f48cd55771e in clone (/lib/x86_64-linux-gnu/libc.so.6+0x12171e)

SUMMARY: UndefinedBehaviorSanitizer: undefined-behavior 
src/kudu/util/monotime.cc:218:10

[1] http://dist-test.cloudera.org/job?job_id=jenkins-slave.1623914260.1110749

Change-Id: I36ba521a3bb7a4ca42a5dc8d383f5d8b6309154d
Reviewed-on: http://gerrit.cloudera.org:8080/17611
Tested-by: Kudu Jenkins
Reviewed-by: Abhishek Chennaka 
Reviewed-by: Andrew Wong 
---
M src/kudu/transactions/txn_system_client.cc
M src/kudu/transactions/txn_system_client.h
M src/kudu/util/monotime.cc
3 files changed, 3 insertions(+), 2 deletions(-)

Approvals:
  Kudu Jenkins: Verified
  Abhishek Chennaka: Looks good to me, but someone else must approve
  Andrew Wong: Looks good to me, approved

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

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: merged
Gerrit-Change-Id: I36ba521a3bb7a4ca42a5dc8d383f5d8b6309154d
Gerrit-Change-Number: 17611
Gerrit-PatchSet: 2
Gerrit-Owner: Alexey Serbin 
Gerrit-Reviewer: Abhishek Chennaka 
Gerrit-Reviewer: Alexey Serbin 
Gerrit-Reviewer: Andrew Wong 
Gerrit-Reviewer: Bankim Bhavsar 
Gerrit-Reviewer: Kudu Jenkins (120)


[kudu-CR] [thirdparty] fix building LLVM 9 with GCC 10

2021-06-25 Thread Andrew Wong (Code Review)
Andrew Wong has posted comments on this change. ( 
http://gerrit.cloudera.org:8080/17627 )

Change subject: [thirdparty] fix building LLVM 9 with GCC 10
..


Patch Set 2: Code-Review+2


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

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: I3332556229dbf2bce65d52f37c48d62624465f70
Gerrit-Change-Number: 17627
Gerrit-PatchSet: 2
Gerrit-Owner: Alexey Serbin 
Gerrit-Reviewer: Alexey Serbin 
Gerrit-Reviewer: Andrew Wong 
Gerrit-Reviewer: Grant Henke 
Gerrit-Reviewer: Kudu Jenkins (120)
Gerrit-Comment-Date: Fri, 25 Jun 2021 17:54:48 +
Gerrit-HasComments: No


[kudu-CR] [txn system client] MonoDelta by value in CoordinateTransactionAsync()

2021-06-25 Thread Andrew Wong (Code Review)
Andrew Wong has posted comments on this change. ( 
http://gerrit.cloudera.org:8080/17611 )

Change subject: [txn_system_client] MonoDelta by value in 
CoordinateTransactionAsync()
..


Patch Set 1: Code-Review+2


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

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: I36ba521a3bb7a4ca42a5dc8d383f5d8b6309154d
Gerrit-Change-Number: 17611
Gerrit-PatchSet: 1
Gerrit-Owner: Alexey Serbin 
Gerrit-Reviewer: Abhishek Chennaka 
Gerrit-Reviewer: Andrew Wong 
Gerrit-Reviewer: Bankim Bhavsar 
Gerrit-Reviewer: Kudu Jenkins (120)
Gerrit-Comment-Date: Fri, 25 Jun 2021 17:52:43 +
Gerrit-HasComments: No


[kudu-CR] [txn system client] MonoDelta by value in CoordinateTransactionAsync()

2021-06-25 Thread Abhishek Chennaka (Code Review)
Abhishek Chennaka has posted comments on this change. ( 
http://gerrit.cloudera.org:8080/17611 )

Change subject: [txn_system_client] MonoDelta by value in 
CoordinateTransactionAsync()
..


Patch Set 1: Code-Review+1


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

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: I36ba521a3bb7a4ca42a5dc8d383f5d8b6309154d
Gerrit-Change-Number: 17611
Gerrit-PatchSet: 1
Gerrit-Owner: Alexey Serbin 
Gerrit-Reviewer: Abhishek Chennaka 
Gerrit-Reviewer: Andrew Wong 
Gerrit-Reviewer: Bankim Bhavsar 
Gerrit-Reviewer: Kudu Jenkins (120)
Gerrit-Comment-Date: Fri, 25 Jun 2021 17:51:51 +
Gerrit-HasComments: No