[Impala-ASF-CR] IMPALA-4758: (2/2) Impala-side changes to build with latest gutil

2017-03-28 Thread Henry Robinson (Code Review)
Henry Robinson has submitted this change and it was merged.

Change subject: IMPALA-4758: (2/2) Impala-side changes to build with latest 
gutil
..


IMPALA-4758: (2/2) Impala-side changes to build with latest gutil

Meant to be taken as a whole with the previous commit. This patch makes
the necessary code changes to Impala and the gutil/ library to fix all
compilation errors. Future upgrades to gutil/ should redo the work in
this commit.

* Remove kudu/ include prefix with command:

git grep -l "include \"kudu/" | xargs sed -i 's/include \"kudu\//include
\"/g'

* Change KUDU_GUTIL_* guards to be GUTIL_*

git grep -l KUDU_GUTIL | xargs sed -i 's/KUDU_GUTIL/GUTIL/g'

* Replace glog/logging.h with common/logging.h

git grep -l "glog/logging" | xargs sed -i 's/glog\/logging/common\/logging/g'

* Provide our own implementation of since-removed MonotonicNanos()
* Reinstate COMPILE_FLAGS argument to ADD_EXPORTABLE_LIBRARY,
  used by gutil.
* Replay overwritten parts of following commits:

a7c3f30 - Remove AMD Opteron Rev E workaround from atomicops
54194af - IMPALA-4631: don't use floating point operations for time unit
conversions
152c586 - Improve AtomicInt abstraction and implementation

* Comment out non-compiling deprecated function definitions in numbers.h
* Overwrite changes from 92fafa "Use more efficient gutil implementation
  of Log2Ceiling" in favour of implementing them in Impala code only.
* Couple of misc fixes.

Change-Id: I4ac21d7d6401f21fcdfdd1132b8f322bfba4bb80
Reviewed-on: http://gerrit.cloudera.org:8080/5688
Reviewed-by: Dan Hecht 
Tested-by: Impala Public Jenkins
---
M be/src/exec/hash-table.inline.h
M be/src/gutil/atomic_refcount.h
M be/src/gutil/atomicops-internals-x86.cc
M be/src/gutil/atomicops-internals-x86.h
M be/src/gutil/atomicops.h
M be/src/gutil/auxiliary/atomicops-internals-arm-generic.h
M be/src/gutil/auxiliary/atomicops-internals-arm-v6plus.h
M be/src/gutil/auxiliary/atomicops-internals-windows.h
M be/src/gutil/basictypes.h
M be/src/gutil/bind.h
M be/src/gutil/bind_helpers.h
M be/src/gutil/bind_internal.h
M be/src/gutil/bits.cc
M be/src/gutil/bits.h
M be/src/gutil/callback.h
M be/src/gutil/callback_forward.h
M be/src/gutil/callback_internal.cc
M be/src/gutil/callback_internal.h
M be/src/gutil/casts.h
M be/src/gutil/charmap.h
M be/src/gutil/cpu.cc
M be/src/gutil/cycleclock-inl.h
M be/src/gutil/endian.h
M be/src/gutil/fixedarray.h
M be/src/gutil/gscoped_ptr.h
M be/src/gutil/hash/builtin_type_hash.h
M be/src/gutil/hash/city.cc
M be/src/gutil/hash/city.h
M be/src/gutil/hash/hash.cc
M be/src/gutil/hash/hash.h
M be/src/gutil/hash/hash128to64.h
M be/src/gutil/hash/jenkins.cc
M be/src/gutil/hash/jenkins.h
M be/src/gutil/hash/jenkins_lookup2.h
M be/src/gutil/hash/legacy_hash.h
M be/src/gutil/hash/string_hash.h
M be/src/gutil/int128.cc
M be/src/gutil/int128.h
M be/src/gutil/macros.h
M be/src/gutil/manual_constructor.h
M be/src/gutil/map-util.h
M be/src/gutil/mathlimits.cc
M be/src/gutil/once.cc
M be/src/gutil/once.h
M be/src/gutil/paranoid.h
M be/src/gutil/port.h
M be/src/gutil/raw_scoped_refptr_mismatch_checker.h
M be/src/gutil/ref_counted.cc
M be/src/gutil/ref_counted.h
M be/src/gutil/ref_counted_memory.cc
M be/src/gutil/ref_counted_memory.h
M be/src/gutil/singleton.h
M be/src/gutil/spinlock.cc
M be/src/gutil/spinlock.h
M be/src/gutil/spinlock_internal.cc
M be/src/gutil/spinlock_internal.h
M be/src/gutil/spinlock_linux-inl.h
M be/src/gutil/stl_util.h
M be/src/gutil/stringprintf.cc
M be/src/gutil/stringprintf.h
M be/src/gutil/strings/ascii_ctype.cc
M be/src/gutil/strings/charset.cc
M be/src/gutil/strings/charset.h
M be/src/gutil/strings/escaping.cc
M be/src/gutil/strings/escaping.h
M be/src/gutil/strings/fastmem.h
M be/src/gutil/strings/human_readable.cc
M be/src/gutil/strings/human_readable.h
M be/src/gutil/strings/join.cc
M be/src/gutil/strings/join.h
M be/src/gutil/strings/memutil.cc
M be/src/gutil/strings/memutil.h
M be/src/gutil/strings/numbers.cc
M be/src/gutil/strings/numbers.h
M be/src/gutil/strings/serialize.cc
M be/src/gutil/strings/serialize.h
M be/src/gutil/strings/split.cc
M be/src/gutil/strings/split.h
M be/src/gutil/strings/split_internal.h
M be/src/gutil/strings/strcat.cc
M be/src/gutil/strings/strcat.h
M be/src/gutil/strings/string_util-test.cc
M be/src/gutil/strings/stringpiece.cc
M be/src/gutil/strings/stringpiece.h
M be/src/gutil/strings/strip.cc
M be/src/gutil/strings/strip.h
M be/src/gutil/strings/substitute.cc
M be/src/gutil/strings/substitute.h
M be/src/gutil/strings/util.cc
M be/src/gutil/strings/util.h
M be/src/gutil/strtoint.cc
M be/src/gutil/strtoint.h
M be/src/gutil/synchronization_profiling.h
M be/src/gutil/sysinfo.cc
M be/src/gutil/threading/thread_collision_warner.cc
M be/src/gutil/threading/thread_collision_warner.h
M be/src/gutil/type_traits.h
M be/src/gutil/walltime.cc
M be/src/gutil/walltime.h
M be/src/runtime/buffered-tuple-stream-test.cc
M be/src/runtime/buffered-tuple-stream-v2-test.

[Impala-ASF-CR] IMPALA-4758: (1/2) Update gutil/ from Kudu@a1bfd7b

2017-03-28 Thread Henry Robinson (Code Review)
Henry Robinson has posted comments on this change.

Change subject: IMPALA-4758: (1/2) Update gutil/ from Kudu@a1bfd7b
..


Patch Set 8: Verified+1

Validated as part of this GVO:

http://jenkins.impala.io:8080/job/gerrit-verify-dryrun/420/

Note that https://gerrit.cloudera.org/#/c/5688/ is required for this change to 
compile, so I'm submitting them together.

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

Gerrit-MessageType: comment
Gerrit-Change-Id: Ic708a9c4e76ede17af9b06e0a0a8e9ae7d357960
Gerrit-PatchSet: 8
Gerrit-Project: Impala-ASF
Gerrit-Branch: master
Gerrit-Owner: Henry Robinson 
Gerrit-Reviewer: Dan Hecht 
Gerrit-Reviewer: Henry Robinson 
Gerrit-Reviewer: Tim Armstrong 
Gerrit-HasComments: No


[Impala-ASF-CR] IMPALA-4758: (1/2) Update gutil/ from Kudu@a1bfd7b

2017-03-28 Thread Henry Robinson (Code Review)
Henry Robinson has submitted this change and it was merged.

Change subject: IMPALA-4758: (1/2) Update gutil/ from Kudu@a1bfd7b
..


IMPALA-4758: (1/2) Update gutil/ from Kudu@a1bfd7b

* Copy gutil from Kudu
* Minimal changes to gutil/CMakeLists.txt

Change-Id: Ic708a9c4e76ede17af9b06e0a0a8e9ae7d357960
Reviewed-on: http://gerrit.cloudera.org:8080/5687
Reviewed-by: Dan Hecht 
Tested-by: Henry Robinson 
---
M be/src/gutil/CMakeLists.txt
D be/src/gutil/algorithm.h
M be/src/gutil/atomic_refcount.h
M be/src/gutil/atomicops-internals-powerpc.h
A be/src/gutil/atomicops-internals-tsan.h
M be/src/gutil/atomicops-internals-x86.cc
M be/src/gutil/atomicops-internals-x86.h
M be/src/gutil/atomicops.h
M be/src/gutil/auxiliary/atomicops-internals-arm-generic.h
M be/src/gutil/auxiliary/atomicops-internals-arm-v6plus.h
D be/src/gutil/auxiliary/atomicops-internals-macosx.h
M be/src/gutil/auxiliary/atomicops-internals-windows.h
M be/src/gutil/basictypes.h
A be/src/gutil/bind.h
A be/src/gutil/bind.h.pump
A be/src/gutil/bind_helpers.h
A be/src/gutil/bind_internal.h
A be/src/gutil/bind_internal.h.pump
M be/src/gutil/bits.cc
M be/src/gutil/bits.h
A be/src/gutil/callback.h
A be/src/gutil/callback.h.pump
A be/src/gutil/callback_forward.h
A be/src/gutil/callback_internal.cc
A be/src/gutil/callback_internal.h
M be/src/gutil/casts.h
M be/src/gutil/charmap.h
A be/src/gutil/cpu.cc
A be/src/gutil/cpu.h
M be/src/gutil/cycleclock-inl.h
R be/src/gutil/dynamic_annotations.c
M be/src/gutil/dynamic_annotations.h
M be/src/gutil/endian.h
M be/src/gutil/fixedarray.h
M be/src/gutil/gscoped_ptr.h
M be/src/gutil/hash/builtin_type_hash.h
M be/src/gutil/hash/city.cc
M be/src/gutil/hash/city.h
M be/src/gutil/hash/hash.cc
M be/src/gutil/hash/hash.h
M be/src/gutil/hash/hash128to64.h
M be/src/gutil/hash/jenkins.cc
M be/src/gutil/hash/jenkins.h
M be/src/gutil/hash/jenkins_lookup2.h
M be/src/gutil/hash/legacy_hash.h
M be/src/gutil/hash/string_hash.h
M be/src/gutil/int128.cc
M be/src/gutil/int128.h
M be/src/gutil/integral_types.h
M be/src/gutil/linux_syscall_support.h
M be/src/gutil/logging-inl.h
M be/src/gutil/macros.h
M be/src/gutil/manual_constructor.h
M be/src/gutil/map-util.h
M be/src/gutil/mathlimits.cc
M be/src/gutil/mathlimits.h
M be/src/gutil/move.h
M be/src/gutil/once.cc
M be/src/gutil/once.h
M be/src/gutil/paranoid.h
M be/src/gutil/port.h
D be/src/gutil/proto/types.pb.cc
D be/src/gutil/proto/types.pb.h
D be/src/gutil/proto/types.proto
A be/src/gutil/raw_scoped_refptr_mismatch_checker.h
A be/src/gutil/ref_counted.cc
A be/src/gutil/ref_counted.h
A be/src/gutil/ref_counted_memory.cc
A be/src/gutil/ref_counted_memory.h
M be/src/gutil/singleton.h
D be/src/gutil/sparsetable.h
M be/src/gutil/spinlock.cc
M be/src/gutil/spinlock.h
M be/src/gutil/spinlock_internal.cc
M be/src/gutil/spinlock_internal.h
M be/src/gutil/spinlock_linux-inl.h
M be/src/gutil/spinlock_win32-inl.h
M be/src/gutil/stl_util.h
M be/src/gutil/stringprintf.cc
M be/src/gutil/stringprintf.h
M be/src/gutil/strings/ascii_ctype.cc
M be/src/gutil/strings/charset.cc
M be/src/gutil/strings/charset.h
M be/src/gutil/strings/escaping.cc
M be/src/gutil/strings/escaping.h
M be/src/gutil/strings/fastmem.h
M be/src/gutil/strings/human_readable.cc
M be/src/gutil/strings/human_readable.h
M be/src/gutil/strings/join.cc
M be/src/gutil/strings/join.h
M be/src/gutil/strings/memutil.cc
M be/src/gutil/strings/memutil.h
M be/src/gutil/strings/numbers.cc
M be/src/gutil/strings/numbers.h
M be/src/gutil/strings/serialize.cc
M be/src/gutil/strings/serialize.h
M be/src/gutil/strings/split.cc
M be/src/gutil/strings/split.h
M be/src/gutil/strings/split_internal.h
M be/src/gutil/strings/strcat.cc
M be/src/gutil/strings/strcat.h
A be/src/gutil/strings/string_util-test.cc
M be/src/gutil/strings/stringpiece.cc
M be/src/gutil/strings/stringpiece.h
M be/src/gutil/strings/strip.cc
M be/src/gutil/strings/strip.h
M be/src/gutil/strings/substitute.cc
M be/src/gutil/strings/substitute.h
M be/src/gutil/strings/util.cc
M be/src/gutil/strings/util.h
M be/src/gutil/strtoint.cc
M be/src/gutil/strtoint.h
M be/src/gutil/synchronization_profiling.h
M be/src/gutil/sysinfo.cc
M be/src/gutil/sysinfo.h
M be/src/gutil/template_util.h
A be/src/gutil/threading/thread_collision_warner.cc
A be/src/gutil/threading/thread_collision_warner.h
M be/src/gutil/type_traits.h
R be/src/gutil/utf/rune.c
M be/src/gutil/walltime.cc
M be/src/gutil/walltime.h
122 files changed, 9,196 insertions(+), 4,102 deletions(-)

Approvals:
  Henry Robinson: Verified
  Dan Hecht: Looks good to me, approved



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

Gerrit-MessageType: merged
Gerrit-Change-Id: Ic708a9c4e76ede17af9b06e0a0a8e9ae7d357960
Gerrit-PatchSet: 9
Gerrit-Project: Impala-ASF
Gerrit-Branch: master
Gerrit-Owner: Henry Robinson 
Gerrit-Reviewer: Dan Hecht 
Gerrit-Reviewer: Henry Robinson 
Gerrit-Reviewer: Tim Armstrong 


[Impala-ASF-CR] IMPALA-4758: (2/2) Impala-side changes to build with latest gutil

2017-03-28 Thread Todd Lipcon (Code Review)
Todd Lipcon has posted comments on this change.

Change subject: IMPALA-4758: (2/2) Impala-side changes to build with latest 
gutil
..


Patch Set 9:

(1 comment)

http://gerrit.cloudera.org:8080/#/c/5688/9//COMMIT_MSG
Commit Message:

Line 32: a7c3f30 - Remove AMD Opteron Rev E workaround from atomicops
probably worth our taking this patch into kudu gutil as well


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

Gerrit-MessageType: comment
Gerrit-Change-Id: I4ac21d7d6401f21fcdfdd1132b8f322bfba4bb80
Gerrit-PatchSet: 9
Gerrit-Project: Impala-ASF
Gerrit-Branch: master
Gerrit-Owner: Henry Robinson 
Gerrit-Reviewer: Dan Hecht 
Gerrit-Reviewer: Henry Robinson 
Gerrit-Reviewer: Impala Public Jenkins
Gerrit-Reviewer: Jim Apple 
Gerrit-Reviewer: Tim Armstrong 
Gerrit-Reviewer: Todd Lipcon 
Gerrit-HasComments: Yes


[Impala-ASF-CR] Fix missing declaration of std::max in hdfs-avro-scanner-test

2017-03-28 Thread Henry Robinson (Code Review)
Henry Robinson has submitted this change and it was merged.

Change subject: Fix missing declaration of std::max in hdfs-avro-scanner-test
..


Fix missing declaration of std::max in hdfs-avro-scanner-test

Change-Id: Id41c14e98163bcbb03675969e0a53754e92a4c14
Reviewed-on: http://gerrit.cloudera.org:8080/6497
Reviewed-by: Sailesh Mukil 
Tested-by: Henry Robinson 
---
M be/src/exec/hdfs-avro-scanner-test.cc
1 file changed, 3 insertions(+), 0 deletions(-)

Approvals:
  Henry Robinson: Verified
  Sailesh Mukil: Looks good to me, approved



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

Gerrit-MessageType: merged
Gerrit-Change-Id: Id41c14e98163bcbb03675969e0a53754e92a4c14
Gerrit-PatchSet: 2
Gerrit-Project: Impala-ASF
Gerrit-Branch: master
Gerrit-Owner: Henry Robinson 
Gerrit-Reviewer: Henry Robinson 
Gerrit-Reviewer: Sailesh Mukil 


[Impala-ASF-CR] Fix missing declaration of std::max in hdfs-avro-scanner-test

2017-03-28 Thread Henry Robinson (Code Review)
Henry Robinson has posted comments on this change.

Change subject: Fix missing declaration of std::max in hdfs-avro-scanner-test
..


Patch Set 1: Verified+1

Validated as part of this GVO: 
http://jenkins.impala.io:8080/job/gerrit-verify-dryrun/420/

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

Gerrit-MessageType: comment
Gerrit-Change-Id: Id41c14e98163bcbb03675969e0a53754e92a4c14
Gerrit-PatchSet: 1
Gerrit-Project: Impala-ASF
Gerrit-Branch: master
Gerrit-Owner: Henry Robinson 
Gerrit-Reviewer: Henry Robinson 
Gerrit-Reviewer: Sailesh Mukil 
Gerrit-HasComments: No


[Impala-ASF-CR] IMPALA-5130: fix race in MemTracker::EnableReservationReporting()

2017-03-28 Thread Henry Robinson (Code Review)
Henry Robinson has posted comments on this change.

Change subject: IMPALA-5130: fix race in 
MemTracker::EnableReservationReporting()
..


Patch Set 1: Code-Review+1

(5 comments)

http://gerrit.cloudera.org:8080/#/c/6502/1/be/src/common/atomic.h
File be/src/common/atomic.h:

Line 122:   public:
indentation


http://gerrit.cloudera.org:8080/#/c/6502/1/be/src/runtime/mem-tracker.cc
File be/src/runtime/mem-tracker.cc:

Line 123:   ReservationTrackerCounters* new_counters = new 
ReservationTrackerCounters;
is there an compiler-generated copy-c'tor for ReservationTrackerCounters?


PS1, Line 198: delete
it's really tempting to have the AtomicPtr delete its contents on destruction, 
but I guess we should make a separate AtomicScopedPtr if we have more use cases 
for it.


PS1, Line 307: gc_functions_[i]();
if these are caller-supplied, should the interface say something about how they 
should be non-blocking, since they're executed while holding a spinlock?


http://gerrit.cloudera.org:8080/#/c/6502/1/be/src/runtime/mem-tracker.h
File be/src/runtime/mem-tracker.h:

PS1, Line 386: Must be read and written atomically
I'd remove this. Or say "may be read concurrently". It's not clear how a reader 
could arrange to read this atomically (unless it CAS-es the pointer out of the 
AtomicPtr?), and I'm not sure that's what the comment means to say.


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

Gerrit-MessageType: comment
Gerrit-Change-Id: I2434c952d97c46040e29fca2327c244dd30599d2
Gerrit-PatchSet: 1
Gerrit-Project: Impala-ASF
Gerrit-Branch: master
Gerrit-Owner: Tim Armstrong 
Gerrit-Reviewer: Henry Robinson 
Gerrit-HasComments: Yes


[Impala-ASF-CR] Fix missing declaration of std::max in hdfs-avro-scanner-test

2017-03-28 Thread Sailesh Mukil (Code Review)
Sailesh Mukil has posted comments on this change.

Change subject: Fix missing declaration of std::max in hdfs-avro-scanner-test
..


Patch Set 1: Code-Review+2

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

Gerrit-MessageType: comment
Gerrit-Change-Id: Id41c14e98163bcbb03675969e0a53754e92a4c14
Gerrit-PatchSet: 1
Gerrit-Project: Impala-ASF
Gerrit-Branch: master
Gerrit-Owner: Henry Robinson 
Gerrit-Reviewer: Henry Robinson 
Gerrit-Reviewer: Sailesh Mukil 
Gerrit-HasComments: No


[Impala-ASF-CR] IMPALA-4758: (2/2) Impala-side changes to build with latest gutil

2017-03-28 Thread Impala Public Jenkins (Code Review)
Impala Public Jenkins has posted comments on this change.

Change subject: IMPALA-4758: (2/2) Impala-side changes to build with latest 
gutil
..


Patch Set 9: Verified+1

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

Gerrit-MessageType: comment
Gerrit-Change-Id: I4ac21d7d6401f21fcdfdd1132b8f322bfba4bb80
Gerrit-PatchSet: 9
Gerrit-Project: Impala-ASF
Gerrit-Branch: master
Gerrit-Owner: Henry Robinson 
Gerrit-Reviewer: Dan Hecht 
Gerrit-Reviewer: Henry Robinson 
Gerrit-Reviewer: Impala Public Jenkins
Gerrit-Reviewer: Jim Apple 
Gerrit-Reviewer: Tim Armstrong 
Gerrit-HasComments: No


[Impala-ASF-CR] IMPALA-4883: Implement Codegen for Union

2017-03-28 Thread Taras Bobrovytsky (Code Review)
Taras Bobrovytsky has uploaded a new patch set (#4).

Change subject: IMPALA-4883: Implement Codegen for Union
..

IMPALA-4883: Implement Codegen for Union

For each non-passthrough child of the Union node, codegen
Tuple::MarializeExprs().

Testing:
Ran test_queries.py test locally in exchaustive mode.
Ran some hand crafted performance benchmark queries locally. There is
an up to 50% performance improvement.

Change-Id: Ib4107d27582ff5416172810364a6e76d3d93c439
---
M be/src/codegen/impala-ir.cc
M be/src/exec/CMakeLists.txt
A be/src/exec/union-node-ir.cc
M be/src/exec/union-node.cc
M be/src/exec/union-node.h
5 files changed, 161 insertions(+), 58 deletions(-)


  git pull ssh://gerrit.cloudera.org:29418/Impala-ASF refs/changes/59/6459/4
-- 
To view, visit http://gerrit.cloudera.org:8080/6459
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings

Gerrit-MessageType: newpatchset
Gerrit-Change-Id: Ib4107d27582ff5416172810364a6e76d3d93c439
Gerrit-PatchSet: 4
Gerrit-Project: Impala-ASF
Gerrit-Branch: master
Gerrit-Owner: Taras Bobrovytsky 
Gerrit-Reviewer: Michael Ho 
Gerrit-Reviewer: Taras Bobrovytsky 
Gerrit-Reviewer: Tim Armstrong 


[Impala-ASF-CR] IMPALA-5132: Fix ASAN use after free in timezone db

2017-03-28 Thread Jim Apple (Code Review)
Jim Apple has posted comments on this change.

Change subject: IMPALA-5132: Fix ASAN use after free in timezone_db
..


Patch Set 1:

(1 comment)

http://gerrit.cloudera.org:8080/#/c/6503/1/be/src/exprs/timezone_db.cc
File be/src/exprs/timezone_db.cc:

PS1, Line 676: char *filestr = strdup(path.string().c_str());
> Aside: I think in this one case we're OK: C++11 and on, c_str() has to retu
I am not suggesting that in this case, though. vector seems like the most 
understandable solution.


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

Gerrit-MessageType: comment
Gerrit-Change-Id: I490f741403ea2004bc51394aa1251577337b1e1d
Gerrit-PatchSet: 1
Gerrit-Project: Impala-ASF
Gerrit-Branch: master
Gerrit-Owner: Zach Amsden 
Gerrit-Reviewer: Bharath Vissapragada 
Gerrit-Reviewer: Henry Robinson 
Gerrit-Reviewer: Jim Apple 
Gerrit-Reviewer: Lars Volker 
Gerrit-HasComments: Yes


[Impala-ASF-CR] IMPALA-5132: Fix ASAN use after free in timezone db

2017-03-28 Thread Jim Apple (Code Review)
Jim Apple has posted comments on this change.

Change subject: IMPALA-5132: Fix ASAN use after free in timezone_db
..


Patch Set 1:

(1 comment)

http://gerrit.cloudera.org:8080/#/c/6503/1/be/src/exprs/timezone_db.cc
File be/src/exprs/timezone_db.cc:

PS1, Line 676: char *filestr = strdup(path.string().c_str());
> Thanks, makes sense now. I was unsure about const_cast's casting away behav
Aside: I think in this one case we're OK: C++11 and on, c_str() has to return 
the same value as data(), and data has to return &(*this)[0], which is a char * 
if this is a string *.


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

Gerrit-MessageType: comment
Gerrit-Change-Id: I490f741403ea2004bc51394aa1251577337b1e1d
Gerrit-PatchSet: 1
Gerrit-Project: Impala-ASF
Gerrit-Branch: master
Gerrit-Owner: Zach Amsden 
Gerrit-Reviewer: Bharath Vissapragada 
Gerrit-Reviewer: Henry Robinson 
Gerrit-Reviewer: Jim Apple 
Gerrit-Reviewer: Lars Volker 
Gerrit-HasComments: Yes


[Impala-ASF-CR] IMPALA-5132: Fix ASAN use after free in timezone db

2017-03-28 Thread Bharath Vissapragada (Code Review)
Bharath Vissapragada has posted comments on this change.

Change subject: IMPALA-5132: Fix ASAN use after free in timezone_db
..


Patch Set 1:

(1 comment)

http://gerrit.cloudera.org:8080/#/c/6503/1/be/src/exprs/timezone_db.cc
File be/src/exprs/timezone_db.cc:

PS1, Line 676: char *filestr = strdup(path.string().c_str());
> No, that's precisely the point: const_cast'ing away a const is undefined in
Thanks, makes sense now. I was unsure about const_cast's casting away behavior.


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

Gerrit-MessageType: comment
Gerrit-Change-Id: I490f741403ea2004bc51394aa1251577337b1e1d
Gerrit-PatchSet: 1
Gerrit-Project: Impala-ASF
Gerrit-Branch: master
Gerrit-Owner: Zach Amsden 
Gerrit-Reviewer: Bharath Vissapragada 
Gerrit-Reviewer: Henry Robinson 
Gerrit-Reviewer: Lars Volker 
Gerrit-HasComments: Yes


[Impala-ASF-CR] IMPALA-4883: Implement Codegen for Union

2017-03-28 Thread Taras Bobrovytsky (Code Review)
Taras Bobrovytsky has uploaded a new patch set (#3).

Change subject: IMPALA-4883: Implement Codegen for Union
..

IMPALA-4883: Implement Codegen for Union

For each non-passthrough child of the Union node, codegen
Tuple::MarializeExprs().

Testing:
Ran test_queries.py test locally in exchaustive mode.
Ran some hand crafted performance benchmark queries locally. There is
an up to 50% performance improvement.

Change-Id: Ib4107d27582ff5416172810364a6e76d3d93c439
---
M be/src/codegen/impala-ir.cc
M be/src/exec/CMakeLists.txt
A be/src/exec/union-node-ir.cc
M be/src/exec/union-node.cc
M be/src/exec/union-node.h
5 files changed, 163 insertions(+), 58 deletions(-)


  git pull ssh://gerrit.cloudera.org:29418/Impala-ASF refs/changes/59/6459/3
-- 
To view, visit http://gerrit.cloudera.org:8080/6459
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings

Gerrit-MessageType: newpatchset
Gerrit-Change-Id: Ib4107d27582ff5416172810364a6e76d3d93c439
Gerrit-PatchSet: 3
Gerrit-Project: Impala-ASF
Gerrit-Branch: master
Gerrit-Owner: Taras Bobrovytsky 
Gerrit-Reviewer: Michael Ho 
Gerrit-Reviewer: Taras Bobrovytsky 
Gerrit-Reviewer: Tim Armstrong 


[Impala-ASF-CR] IMPALA-5132: Fix ASAN use after free in timezone db

2017-03-28 Thread Henry Robinson (Code Review)
Henry Robinson has posted comments on this change.

Change subject: IMPALA-5132: Fix ASAN use after free in timezone_db
..


Patch Set 1:

(1 comment)

http://gerrit.cloudera.org:8080/#/c/6503/1/be/src/exprs/timezone_db.cc
File be/src/exprs/timezone_db.cc:

PS1, Line 676: char *filestr = strdup(path.string().c_str());
> Oh ya, const_cast too :)
No, that's precisely the point: const_cast'ing away a const is undefined in 
C++. Here, we copy into a representation that has a non-const pointer to the 
underlying array, so that mkstemp() can mutate it in place.


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

Gerrit-MessageType: comment
Gerrit-Change-Id: I490f741403ea2004bc51394aa1251577337b1e1d
Gerrit-PatchSet: 1
Gerrit-Project: Impala-ASF
Gerrit-Branch: master
Gerrit-Owner: Zach Amsden 
Gerrit-Reviewer: Bharath Vissapragada 
Gerrit-Reviewer: Henry Robinson 
Gerrit-Reviewer: Lars Volker 
Gerrit-HasComments: Yes


[Impala-ASF-CR] IMPALA-4166: Add SORT BY sql clause

2017-03-28 Thread Dimitris Tsirogiannis (Code Review)
Dimitris Tsirogiannis has posted comments on this change.

Change subject: IMPALA-4166: Add SORT BY sql clause
..


Patch Set 2:

(20 comments)

Initial pass, haven't looked at the tests yet.

http://gerrit.cloudera.org:8080/#/c/6495/2/fe/src/main/cup/sql-parser.cup
File fe/src/main/cup/sql-parser.cup:

PS2, Line 986: // SORT BY columns are stored in the 'sort.by.columns' table 
property.
 : HashMap properties = new HashMap();
 : String columnString = Joiner.on(",").join(col_names);
 : 
properties.put(TablePropertyAnalyzer.TBL_PROP_SORT_BY_COLUMNS, columnString);
 : RESULT = new AlterTableSetTblProperties(table, null, 
TTablePropertyType.TBL_PROPERTY,
 : properties);
 :   :}
I don't see why you need to treat it as another SetTblProperties statement. I 
understand that eventually the sort by columns will be stored as table 
properties but this adds unnecessary complexity to the parser. I would simply 
create a new AlterTableSetSortByColumns statement.


PS2, Line 1143: opt_sort_by_cols:sort_by_cols
  :   KW_LIKE table_name:other_table
  :   opt_comment_val:comment
  :   file_format_create_table_val:file_format location_val:location
nit: indentation


PS2, Line 1182:   opt_sort_by_cols:sort_by_cols opt_comment_val:comment 
row_format_val:row_format serde_properties:serde_props
nit: long line


http://gerrit.cloudera.org:8080/#/c/6495/2/fe/src/main/java/org/apache/impala/analysis/AlterTableSetTblProperties.java
File 
fe/src/main/java/org/apache/impala/analysis/AlterTableSetTblProperties.java:

PS2, Line 162: /**
 :* Analyzes the 'sort.by.columns' property to make sure the 
columns inside the property
 :* occur in the target table and are neither partitioning nor 
primary key columns.
 :*/
 :   public void analyzeSortByColumns() throws AnalysisException {
 : StringBuilder error = new StringBuilder();
 : TablePropertyAnalyzer.analyzeSortByColumns(tblProperties_, 
getTargetTable(), error);
 : if (error.length() > 0) throw new 
AnalysisException(error.toString());
 :   }
Along the lines of my previous comment: a) I would move this completely out of 
this class, b) create a new AlterTableSetSortByColumns and move the analysis 
logic there.


http://gerrit.cloudera.org:8080/#/c/6495/2/fe/src/main/java/org/apache/impala/analysis/Analyzer.java
File fe/src/main/java/org/apache/impala/analysis/Analyzer.java:

PS2, Line 275: Boolean
boolean? why class?


PS2, Line 2486: Preconditions.checkState(!globalState_.warningsRetrieved);
This is kind of harsh :). Do we guarantee somewhere that no one will call 
addWarning after warnings have been retrieved?


http://gerrit.cloudera.org:8080/#/c/6495/2/fe/src/main/java/org/apache/impala/analysis/CreateTableLikeStmt.java
File fe/src/main/java/org/apache/impala/analysis/CreateTableLikeStmt.java:

PS2, Line 119: sortByColumns_.size() > 0
!sortByColumns_.isEmpty()


PS2, Line 179: StringBuilder error = new StringBuilder();
 :   TablePropertyAnalyzer.analyzeSortByColumns(sortByColumns_, 
srcTable, error);
 :   if (error.length() > 0) throw new 
AnalysisException(error.toString());
Why don't you just throw the AnalysisException from the analyzeSortByColumns()?


http://gerrit.cloudera.org:8080/#/c/6495/2/fe/src/main/java/org/apache/impala/analysis/InsertStmt.java
File fe/src/main/java/org/apache/impala/analysis/InsertStmt.java:

PS2, Line 382:  sortByExprs_.size() > 0
!sortByExprs_.isEmpty()


PS2, Line 510: sortByExprs_.add(resultExprs_.get(colIdx));
Does this work ok if you have column permutation?


PS2, Line 768: StringBuilder error = new StringBuilder();
 : sortByColumns_ = 
TablePropertyAnalyzer.analyzeSortByColumns(table_, error);
 : if (error.length() > 0) throw new 
AnalysisException(error.toString());
Same comment as before. Move the throw clause inside the analyzeSortByColumns() 
function.


http://gerrit.cloudera.org:8080/#/c/6495/2/fe/src/main/java/org/apache/impala/analysis/TablePropertyAnalyzer.java
File fe/src/main/java/org/apache/impala/analysis/TablePropertyAnalyzer.java:

PS2, Line 33: /**
:  * This class collects various methods to analyze table 
properties.
:  */
: public class TablePropertyAnalyzer {
You're only analyzing the sort by columns, so why this generic class? Can't we 
move these methods to the TableDef class?


PS2, Line 41: Analyzes the 'sort.by.columns' property of 'table'.
What is the return value?


PS2, Line 86: List partitionCols, List primaryKeyCols
You can simply pass one list which includes the list of column names to exclude 
from the sort columns. If you want a specific error message you can construct 
it in function analyzeSortByC

[Impala-ASF-CR] IMPALA-5132: Fix ASAN use after free in timezone db

2017-03-28 Thread Bharath Vissapragada (Code Review)
Bharath Vissapragada has posted comments on this change.

Change subject: IMPALA-5132: Fix ASAN use after free in timezone_db
..


Patch Set 1:

(1 comment)

http://gerrit.cloudera.org:8080/#/c/6503/1/be/src/exprs/timezone_db.cc
File be/src/exprs/timezone_db.cc:

PS1, Line 676: char *filestr = strdup(path.string().c_str());
> c_str() returns a const char*.
Oh ya, const_cast too :)


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

Gerrit-MessageType: comment
Gerrit-Change-Id: I490f741403ea2004bc51394aa1251577337b1e1d
Gerrit-PatchSet: 1
Gerrit-Project: Impala-ASF
Gerrit-Branch: master
Gerrit-Owner: Zach Amsden 
Gerrit-Reviewer: Bharath Vissapragada 
Gerrit-Reviewer: Henry Robinson 
Gerrit-Reviewer: Lars Volker 
Gerrit-HasComments: Yes


[Impala-ASF-CR] IMPALA-5132: Fix ASAN use after free in timezone db

2017-03-28 Thread Henry Robinson (Code Review)
Henry Robinson has posted comments on this change.

Change subject: IMPALA-5132: Fix ASAN use after free in timezone_db
..


Patch Set 1:

(1 comment)

http://gerrit.cloudera.org:8080/#/c/6503/1/be/src/exprs/timezone_db.cc
File be/src/exprs/timezone_db.cc:

PS1, Line 676: char *filestr = strdup(path.string().c_str());
> Or may be just use the string() copy c'tor and copy the string and use path
c_str() returns a const char*.


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

Gerrit-MessageType: comment
Gerrit-Change-Id: I490f741403ea2004bc51394aa1251577337b1e1d
Gerrit-PatchSet: 1
Gerrit-Project: Impala-ASF
Gerrit-Branch: master
Gerrit-Owner: Zach Amsden 
Gerrit-Reviewer: Bharath Vissapragada 
Gerrit-Reviewer: Henry Robinson 
Gerrit-Reviewer: Lars Volker 
Gerrit-HasComments: Yes


[Impala-ASF-CR] IMPALA-5132: Fix ASAN use after free in timezone db

2017-03-28 Thread Bharath Vissapragada (Code Review)
Bharath Vissapragada has posted comments on this change.

Change subject: IMPALA-5132: Fix ASAN use after free in timezone_db
..


Patch Set 1:

(1 comment)

I'm fine with Zach's patch too. I was just waiting for the ASAN to pass before 
pushing it for review. It is a simple patch.

http://gerrit.cloudera.org:8080/#/c/6503/1/be/src/exprs/timezone_db.cc
File be/src/exprs/timezone_db.cc:

PS1, Line 676: char *filestr = strdup(path.string().c_str());
> given the leak(s) below, how about something managed by the stack:
Or may be just use the string() copy c'tor and copy the string and use 
path.c_str()/data() in rest of the code.

  string path = string(boost::filesystem::string());
  mkstemp(filestr.c_str());


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

Gerrit-MessageType: comment
Gerrit-Change-Id: I490f741403ea2004bc51394aa1251577337b1e1d
Gerrit-PatchSet: 1
Gerrit-Project: Impala-ASF
Gerrit-Branch: master
Gerrit-Owner: Zach Amsden 
Gerrit-Reviewer: Bharath Vissapragada 
Gerrit-Reviewer: Henry Robinson 
Gerrit-Reviewer: Lars Volker 
Gerrit-HasComments: Yes


[Impala-ASF-CR] IMPALA-5132: Fix ASAN use after free in timezone db

2017-03-28 Thread Lars Volker (Code Review)
Lars Volker has posted comments on this change.

Change subject: IMPALA-5132: Fix ASAN use after free in timezone_db
..


Patch Set 1:

(1 comment)

http://gerrit.cloudera.org:8080/#/c/6503/1/be/src/exprs/timezone_db.cc
File be/src/exprs/timezone_db.cc:

PS1, Line 676: char *filestr = strdup(path.string().c_str());
> given the leak(s) below, how about something managed by the stack:
Oh, I wasn't aware it would change the string. Today I learned! :)


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

Gerrit-MessageType: comment
Gerrit-Change-Id: I490f741403ea2004bc51394aa1251577337b1e1d
Gerrit-PatchSet: 1
Gerrit-Project: Impala-ASF
Gerrit-Branch: master
Gerrit-Owner: Zach Amsden 
Gerrit-Reviewer: Bharath Vissapragada 
Gerrit-Reviewer: Henry Robinson 
Gerrit-Reviewer: Lars Volker 
Gerrit-HasComments: Yes


[Impala-ASF-CR] IMPALA-4041: Limit catalog and admission control updates to coordinators

2017-03-28 Thread Impala Public Jenkins (Code Review)
Impala Public Jenkins has posted comments on this change.

Change subject: IMPALA-4041: Limit catalog and admission control updates to 
coordinators
..


Patch Set 6: Verified+1

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

Gerrit-MessageType: comment
Gerrit-Change-Id: I5f2c74abdbcd60ac050efa323616bd41182ceff3
Gerrit-PatchSet: 6
Gerrit-Project: Impala-ASF
Gerrit-Branch: master
Gerrit-Owner: Dimitris Tsirogiannis 
Gerrit-Reviewer: Bharath Vissapragada 
Gerrit-Reviewer: Dan Hecht 
Gerrit-Reviewer: Dimitris Tsirogiannis 
Gerrit-Reviewer: Henry Robinson 
Gerrit-Reviewer: Impala Public Jenkins
Gerrit-Reviewer: Marcel Kornacker 
Gerrit-Reviewer: Matthew Jacobs 
Gerrit-HasComments: No


[Impala-ASF-CR] IMPALA-4041: Limit catalog and admission control updates to coordinators

2017-03-28 Thread Impala Public Jenkins (Code Review)
Impala Public Jenkins has submitted this change and it was merged.

Change subject: IMPALA-4041: Limit catalog and admission control updates to 
coordinators
..


IMPALA-4041: Limit catalog and admission control updates to coordinators

With this commit we add the ability to limit catalog updates to a
limited set of coordinator nodes. A new startup option, termed
'is_coordinator' is added to indicate if a node is a coordinator.
Coordinators accept connections through HS2 and Beeswax interfaces
and can also participate in query execution. Non-coordinator nodes
do not receive catalog updates from the statestore, do not initialize
a query scheduler and cannot accept Beeswax and HS2 client connections.

Testing:
- Added a custom cluster test that launches a cluster in which the
number of coordinators is less than the cluster size and runs a number
of smoke queries.
- Successfully run exhaustive tests.

Change-Id: I5f2c74abdbcd60ac050efa323616bd41182ceff3
Reviewed-on: http://gerrit.cloudera.org:8080/6344
Reviewed-by: Dimitris Tsirogiannis 
Tested-by: Impala Public Jenkins
---
M be/src/runtime/exec-env.cc
M be/src/runtime/exec-env.h
M be/src/scheduling/admission-controller.cc
M be/src/scheduling/admission-controller.h
M be/src/scheduling/scheduler-test-util.cc
M be/src/scheduling/scheduler-test.cc
M be/src/scheduling/scheduler.cc
M be/src/scheduling/scheduler.h
M be/src/service/impala-server.cc
M be/src/service/impala-server.h
M be/src/service/impalad-main.cc
M be/src/service/query-exec-state.cc
M be/src/testutil/in-process-servers.h
M be/src/util/webserver.cc
M bin/start-impala-cluster.py
M tests/common/custom_cluster_test_suite.py
M tests/common/impala_service.py
A tests/custom_cluster/test_coordinators.py
M www/root.tmpl
19 files changed, 435 insertions(+), 235 deletions(-)

Approvals:
  Impala Public Jenkins: Verified
  Dimitris Tsirogiannis: Looks good to me, approved



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

Gerrit-MessageType: merged
Gerrit-Change-Id: I5f2c74abdbcd60ac050efa323616bd41182ceff3
Gerrit-PatchSet: 7
Gerrit-Project: Impala-ASF
Gerrit-Branch: master
Gerrit-Owner: Dimitris Tsirogiannis 
Gerrit-Reviewer: Bharath Vissapragada 
Gerrit-Reviewer: Dan Hecht 
Gerrit-Reviewer: Dimitris Tsirogiannis 
Gerrit-Reviewer: Henry Robinson 
Gerrit-Reviewer: Impala Public Jenkins
Gerrit-Reviewer: Marcel Kornacker 
Gerrit-Reviewer: Matthew Jacobs 


[Impala-ASF-CR] IMPALA-5132: Fix ASAN use after free in timezone db

2017-03-28 Thread Lars Volker (Code Review)
Lars Volker has posted comments on this change.

Change subject: IMPALA-5132: Fix ASAN use after free in timezone_db
..


Patch Set 1:

(1 comment)

I left some comments, but I understood from the JIRA that Bharath already has a 
change that he's currently testing in a private ASAN run on Jenkins. Bharath, 
do you want to push your change for public review?

http://gerrit.cloudera.org:8080/#/c/6503/1/be/src/exprs/timezone_db.cc
File be/src/exprs/timezone_db.cc:

Line 676:   char *filestr = strdup(path.string().c_str());
I think you don't need the strdup(), it should be sufficient to keep "path" 
around as long as filestr is accessed.

A nit: we usually put the * next to the type: char* foo


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

Gerrit-MessageType: comment
Gerrit-Change-Id: I490f741403ea2004bc51394aa1251577337b1e1d
Gerrit-PatchSet: 1
Gerrit-Project: Impala-ASF
Gerrit-Branch: master
Gerrit-Owner: Zach Amsden 
Gerrit-Reviewer: Bharath Vissapragada 
Gerrit-Reviewer: Henry Robinson 
Gerrit-Reviewer: Lars Volker 
Gerrit-HasComments: Yes


[Impala-ASF-CR] IMPALA-5132: Fix ASAN use after free in timezone db

2017-03-28 Thread Henry Robinson (Code Review)
Henry Robinson has posted comments on this change.

Change subject: IMPALA-5132: Fix ASAN use after free in timezone_db
..


Patch Set 1:

(2 comments)

http://gerrit.cloudera.org:8080/#/c/6503/1/be/src/exprs/timezone_db.cc
File be/src/exprs/timezone_db.cc:

PS1, Line 676: char *filestr = strdup(path.string().c_str());
given the leak(s) below, how about something managed by the stack:

  string path = boost::filesystem::string();
  vector filestr(path.c_str(), path.c_str() + path.length() + 1);

  mkstemp(filestr.data());

http://man7.org/linux/man-pages/man3/mkstemp.3.html suggests that mkstemp 
*will* edit the string in place.


PS1, Line 687: return
this would leak filestr.


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

Gerrit-MessageType: comment
Gerrit-Change-Id: I490f741403ea2004bc51394aa1251577337b1e1d
Gerrit-PatchSet: 1
Gerrit-Project: Impala-ASF
Gerrit-Branch: master
Gerrit-Owner: Zach Amsden 
Gerrit-Reviewer: Bharath Vissapragada 
Gerrit-Reviewer: Henry Robinson 
Gerrit-Reviewer: Lars Volker 
Gerrit-HasComments: Yes


[Impala-ASF-CR] IMPALA-5031: Remove undefined behavior: left shift of negative values

2017-03-28 Thread Impala Public Jenkins (Code Review)
Impala Public Jenkins has submitted this change and it was merged.

Change subject: IMPALA-5031: Remove undefined behavior: left shift of negative 
values
..


IMPALA-5031: Remove undefined behavior: left shift of negative values

Left shift of negative values is undefined According to C++14 section
5.8 [expr.shift], paragraph 2.

Change-Id: I9d965c3950a878c0a41b374d51bbe2e5705b3360
Reviewed-on: http://gerrit.cloudera.org:8080/6491
Reviewed-by: Dan Hecht 
Reviewed-by: Tim Armstrong 
Tested-by: Impala Public Jenkins
---
M be/src/exec/read-write-util.cc
M be/src/exec/zigzag-test.cc
M be/src/exprs/bit-byte-functions-ir.cc
3 files changed, 6 insertions(+), 4 deletions(-)

Approvals:
  Impala Public Jenkins: Verified
  Tim Armstrong: Looks good to me, approved
  Dan Hecht: Looks good to me, but someone else must approve



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

Gerrit-MessageType: merged
Gerrit-Change-Id: I9d965c3950a878c0a41b374d51bbe2e5705b3360
Gerrit-PatchSet: 2
Gerrit-Project: Impala-ASF
Gerrit-Branch: master
Gerrit-Owner: Jim Apple 
Gerrit-Reviewer: Dan Hecht 
Gerrit-Reviewer: Impala Public Jenkins
Gerrit-Reviewer: Jim Apple 
Gerrit-Reviewer: Tim Armstrong 


[Impala-ASF-CR] IMPALA-5132: Fix ASAN use after free in timezone db

2017-03-28 Thread Zach Amsden (Code Review)
Zach Amsden has uploaded a new change for review.

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

Change subject: IMPALA-5132: Fix ASAN use after free in timezone_db
..

IMPALA-5132: Fix ASAN use after free in timezone_db

The issue is that the string temporary returned by .string goes
out of scope immediately after being created.  Also, the API
to mkstemp is unclear on whether it modifies the string in place.
Just strdup() this to be safe - this is not performance critical
code.

Change-Id: I490f741403ea2004bc51394aa1251577337b1e1d
---
M be/src/exprs/timezone_db.cc
1 file changed, 4 insertions(+), 2 deletions(-)


  git pull ssh://gerrit.cloudera.org:29418/Impala-ASF refs/changes/03/6503/1
-- 
To view, visit http://gerrit.cloudera.org:8080/6503
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I490f741403ea2004bc51394aa1251577337b1e1d
Gerrit-PatchSet: 1
Gerrit-Project: Impala-ASF
Gerrit-Branch: master
Gerrit-Owner: Zach Amsden 


[Impala-ASF-CR] IMPALA-5031: Remove undefined behavior: left shift of negative values

2017-03-28 Thread Impala Public Jenkins (Code Review)
Impala Public Jenkins has posted comments on this change.

Change subject: IMPALA-5031: Remove undefined behavior: left shift of negative 
values
..


Patch Set 1: Verified+1

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

Gerrit-MessageType: comment
Gerrit-Change-Id: I9d965c3950a878c0a41b374d51bbe2e5705b3360
Gerrit-PatchSet: 1
Gerrit-Project: Impala-ASF
Gerrit-Branch: master
Gerrit-Owner: Jim Apple 
Gerrit-Reviewer: Dan Hecht 
Gerrit-Reviewer: Impala Public Jenkins
Gerrit-Reviewer: Jim Apple 
Gerrit-Reviewer: Tim Armstrong 
Gerrit-HasComments: No


[Impala-ASF-CR] IMPALA-4758: (2/2) Impala-side changes to build with latest gutil

2017-03-28 Thread Henry Robinson (Code Review)
Henry Robinson has posted comments on this change.

Change subject: IMPALA-4758: (2/2) Impala-side changes to build with latest 
gutil
..


Patch Set 9:

(2 comments)

Thanks for the quick reviews!

http://gerrit.cloudera.org:8080/#/c/5688/9/be/src/util/time.h
File be/src/util/time.h:

Line 36:   return ts.tv_sec * NANOS_PER_SEC + ts.tv_nsec;
> are you sure impala doesn't have a commit that introduced GetMonoTimeNanos(
I think we did add it for MacOS (see 
https://github.com/apache/incubator-impala/commit/aeadd326a982af0f2ac8d55e425248a8bc7babfe),
 and that added GetMonoTimeNanos() for both platforms. I took the view that 
it's easier to maintain Impala-side dependencies for now, and that the MacOS 
port is effectively dead at this point.


http://gerrit.cloudera.org:8080/#/c/5688/9/cmake_modules/kudu_cmake_fns.txt
File cmake_modules/kudu_cmake_fns.txt:

Line 64:   endif()
> what do these two changes do and why are they needed now?
The first change adds custom compile flags to this target. This is needed to 
suppress some spurious warnings.

The second change isn't strictly needed here, but since gutil is the first user 
of ADD_EXPORTABLE_LIBRARY I figured I'd include the fix at the earliest point. 
This allows CMake to properly handle transitive dependencies, so we don't need 
to 'flatten' all the deps of, e.g., kudu_util when linking against it.


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

Gerrit-MessageType: comment
Gerrit-Change-Id: I4ac21d7d6401f21fcdfdd1132b8f322bfba4bb80
Gerrit-PatchSet: 9
Gerrit-Project: Impala-ASF
Gerrit-Branch: master
Gerrit-Owner: Henry Robinson 
Gerrit-Reviewer: Dan Hecht 
Gerrit-Reviewer: Henry Robinson 
Gerrit-Reviewer: Impala Public Jenkins
Gerrit-Reviewer: Jim Apple 
Gerrit-Reviewer: Tim Armstrong 
Gerrit-HasComments: Yes


[Impala-ASF-CR] IMPALA-4758: (2/2) Impala-side changes to build with latest gutil

2017-03-28 Thread Impala Public Jenkins (Code Review)
Impala Public Jenkins has posted comments on this change.

Change subject: IMPALA-4758: (2/2) Impala-side changes to build with latest 
gutil
..


Patch Set 9:

Build started: http://jenkins.impala.io:8080/job/gerrit-verify-dryrun/420/

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

Gerrit-MessageType: comment
Gerrit-Change-Id: I4ac21d7d6401f21fcdfdd1132b8f322bfba4bb80
Gerrit-PatchSet: 9
Gerrit-Project: Impala-ASF
Gerrit-Branch: master
Gerrit-Owner: Henry Robinson 
Gerrit-Reviewer: Dan Hecht 
Gerrit-Reviewer: Henry Robinson 
Gerrit-Reviewer: Impala Public Jenkins
Gerrit-Reviewer: Jim Apple 
Gerrit-Reviewer: Tim Armstrong 
Gerrit-HasComments: No


[Impala-ASF-CR] IMPALA-4758: (2/2) Impala-side changes to build with latest gutil

2017-03-28 Thread Dan Hecht (Code Review)
Dan Hecht has posted comments on this change.

Change subject: IMPALA-4758: (2/2) Impala-side changes to build with latest 
gutil
..


Patch Set 9: Code-Review+2

(2 comments)

http://gerrit.cloudera.org:8080/#/c/5688/9/be/src/util/time.h
File be/src/util/time.h:

Line 36:   return ts.tv_sec * NANOS_PER_SEC + ts.tv_nsec;
are you sure impala doesn't have a commit that introduced GetMonoTimeNanos() 
that we should just cherry-pick?  It might have been done that way to get it 
working on macos. If we don't, this is fine (though I don't see why kudu would 
have deleted that code).


http://gerrit.cloudera.org:8080/#/c/5688/9/cmake_modules/kudu_cmake_fns.txt
File cmake_modules/kudu_cmake_fns.txt:

Line 64:   endif()
what do these two changes do and why are they needed now?


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

Gerrit-MessageType: comment
Gerrit-Change-Id: I4ac21d7d6401f21fcdfdd1132b8f322bfba4bb80
Gerrit-PatchSet: 9
Gerrit-Project: Impala-ASF
Gerrit-Branch: master
Gerrit-Owner: Henry Robinson 
Gerrit-Reviewer: Dan Hecht 
Gerrit-Reviewer: Henry Robinson 
Gerrit-Reviewer: Impala Public Jenkins
Gerrit-Reviewer: Jim Apple 
Gerrit-Reviewer: Tim Armstrong 
Gerrit-HasComments: Yes


[Impala-ASF-CR] IMPALA-4758: (1/2) Update gutil/ from Kudu@a1bfd7b

2017-03-28 Thread Dan Hecht (Code Review)
Dan Hecht has posted comments on this change.

Change subject: IMPALA-4758: (1/2) Update gutil/ from Kudu@a1bfd7b
..


Patch Set 8: Code-Review+2

(2 comments)

> (4 comments)
 > 
 > I don't think there's a new upstream version of this code in Kudu
 > (which comes from https://chromium.googlesource.com/chromium/src/base/).
 > But they made some local changes that were necessary to keep the
 > kudu library dependencies compiling.
 > 

Okay. I wasn't sure given some of the large deletions (like sparsetable.h). So 
you're saying that kudu deleted that code from their gutils, it wasn't deleted 
upstream).

 > I think having gutil as a toolchain dependency might make some
 > sense in the future, so that it's easier to replay the patches we
 > want if we ever upgrade the base code.
 > 
 > For now, I've split the two commits a bit better: this commit only
 > imports the code (and touches CMakeLists.txt). The following commit
 > makes all the code changes required to have it compile. That way
 > only that commit needs to be checked in the future if we have to do
 > this again.

Okay, let me take a quick look at the second patch again given some code has 
moved between them.

http://gerrit.cloudera.org:8080/#/c/5687/7/be/src/gutil/gscoped_ptr.h
File be/src/gutil/gscoped_ptr.h:

PS7, Line 112: kudu
> It happened in this kudu commit:
It's just surprising to impala developers to see this, if they don't know this 
full history. you'd ask yourself, "what does this code have to do with kudu?" 
and the answer is "nothing".

I'm fine with leaving it, just wasn't sure what was going on with it.


http://gerrit.cloudera.org:8080/#/c/5687/7/be/src/gutil/port.h
File be/src/gutil/port.h:

PS7, Line 939: kudu
> Came with the bulk-import. Since it's commented out, I didn't investigate t
okay. similar to kudu namespace, this is just another thing that will be 
confusing to impala developers, but given how remote the code is, i'm not 
overly concerned.  mainly just wanted to verify there wasn't a botched merge 
here or something.


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

Gerrit-MessageType: comment
Gerrit-Change-Id: Ic708a9c4e76ede17af9b06e0a0a8e9ae7d357960
Gerrit-PatchSet: 8
Gerrit-Project: Impala-ASF
Gerrit-Branch: master
Gerrit-Owner: Henry Robinson 
Gerrit-Reviewer: Dan Hecht 
Gerrit-Reviewer: Henry Robinson 
Gerrit-Reviewer: Tim Armstrong 
Gerrit-HasComments: Yes


[Impala-ASF-CR] IMPALA-5130: fix race in MemTracker::EnableReservationReporting()

2017-03-28 Thread Tim Armstrong (Code Review)
Tim Armstrong has uploaded a new change for review.

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

Change subject: IMPALA-5130: fix race in 
MemTracker::EnableReservationReporting()
..

IMPALA-5130: fix race in MemTracker::EnableReservationReporting()

MemTracker::LogUsage() and MemTracker::EnableReservationReporting()
could race, with LogUsage() seeing a partially-constructed
'reservation_counters_' value and crashing.

This patch fixes that issue by atomically swapping in
'reservation_counters_' so that no threads see a
partially-constructed value.

While we're here, swap boost::mutex for the higher-performance
SpinLock.

Change-Id: I2434c952d97c46040e29fca2327c244dd30599d2
---
M be/src/common/atomic.h
M be/src/runtime/mem-tracker.cc
M be/src/runtime/mem-tracker.h
3 files changed, 37 insertions(+), 17 deletions(-)


  git pull ssh://gerrit.cloudera.org:29418/Impala-ASF refs/changes/02/6502/1
-- 
To view, visit http://gerrit.cloudera.org:8080/6502
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I2434c952d97c46040e29fca2327c244dd30599d2
Gerrit-PatchSet: 1
Gerrit-Project: Impala-ASF
Gerrit-Branch: master
Gerrit-Owner: Tim Armstrong 


[Impala-ASF-CR] IMPALA-4758: (1/2) Update gutil/ from Kudu@a1bfd7b

2017-03-28 Thread Henry Robinson (Code Review)
Henry Robinson has posted comments on this change.

Change subject: IMPALA-4758: (1/2) Update gutil/ from Kudu@a1bfd7b
..


Patch Set 7:

(4 comments)

I don't think there's a new upstream version of this code in Kudu (which comes 
from https://chromium.googlesource.com/chromium/src/base/). But they made some 
local changes that were necessary to keep the kudu library dependencies 
compiling.

I think having gutil as a toolchain dependency might make some sense in the 
future, so that it's easier to replay the patches we want if we ever upgrade 
the base code.

For now, I've split the two commits a bit better: this commit only imports the 
code (and touches CMakeLists.txt). The following commit makes all the code 
changes required to have it compile. That way only that commit needs to be 
checked in the future if we have to do this again.

http://gerrit.cloudera.org:8080/#/c/5687/7/be/src/gutil/bits.cc
File be/src/gutil/bits.cc:

Line 88: }
> why did these move from the header?
I moved our implementation into our BitUtil class. These went back to the .cc 
file where they were originally.


http://gerrit.cloudera.org:8080/#/c/5687/7/be/src/gutil/gscoped_ptr.h
File be/src/gutil/gscoped_ptr.h:

PS7, Line 112: kudu
> is that intentional?
It happened in this kudu commit:

https://github.com/apache/kudu/commit/bb6da1946ea90e3b64bb7a38d9e5751cc95c557b

"gutil: move classes used by exported client into kudu namespace"

To me it's unfortunate but benign. Since the kutil libraries use these classes 
(much more than we do), we'd have to change the namespacing either here or 
there. I think, but am prepared to be convinced otherwise, that it's better to 
have as few changes to these bulk imports as possible.


http://gerrit.cloudera.org:8080/#/c/5687/7/be/src/gutil/port.h
File be/src/gutil/port.h:

PS7, Line 939: kudu
> is that expected?
Came with the bulk-import. Since it's commented out, I didn't investigate too 
deeply (again, it's a place where fidelity to the source probably outweighs 
cleanliness concerns).


http://gerrit.cloudera.org:8080/#/c/5687/7/be/src/gutil/walltime.h
File be/src/gutil/walltime.h:

PS7, Line 83: 1e6
> we had intentionally changed these so that we'd be using integer operations
Done.


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

Gerrit-MessageType: comment
Gerrit-Change-Id: Ic708a9c4e76ede17af9b06e0a0a8e9ae7d357960
Gerrit-PatchSet: 7
Gerrit-Project: Impala-ASF
Gerrit-Branch: master
Gerrit-Owner: Henry Robinson 
Gerrit-Reviewer: Dan Hecht 
Gerrit-Reviewer: Henry Robinson 
Gerrit-Reviewer: Tim Armstrong 
Gerrit-HasComments: Yes


[Impala-ASF-CR] IMPALA-4758: (2/2) Impala-side changes to build with latest gutil

2017-03-28 Thread Henry Robinson (Code Review)
Hello Impala Public Jenkins, Jim Apple, Dan Hecht, Tim Armstrong,

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

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

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

Change subject: IMPALA-4758: (2/2) Impala-side changes to build with latest 
gutil
..

IMPALA-4758: (2/2) Impala-side changes to build with latest gutil

Meant to be taken as a whole with the previous commit. This patch makes
the necessary code changes to Impala and the gutil/ library to fix all
compilation errors. Future upgrades to gutil/ should redo the work in
this commit.

* Remove kudu/ include prefix with command:

git grep -l "include \"kudu/" | xargs sed -i 's/include \"kudu\//include
\"/g'

* Change KUDU_GUTIL_* guards to be GUTIL_*

git grep -l KUDU_GUTIL | xargs sed -i 's/KUDU_GUTIL/GUTIL/g'

* Replace glog/logging.h with common/logging.h

git grep -l "glog/logging" | xargs sed -i 's/glog\/logging/common\/logging/g'

* Provide our own implementation of since-removed MonotonicNanos()
* Reinstate COMPILE_FLAGS argument to ADD_EXPORTABLE_LIBRARY,
  used by gutil.
* Replay overwritten parts of following commits:

a7c3f30 - Remove AMD Opteron Rev E workaround from atomicops
54194af - IMPALA-4631: don't use floating point operations for time unit
conversions
152c586 - Improve AtomicInt abstraction and implementation

* Comment out non-compiling deprecated function definitions in numbers.h
* Overwrite changes from 92fafa "Use more efficient gutil implementation
  of Log2Ceiling" in favour of implementing them in Impala code only.
* Couple of misc fixes.

Change-Id: I4ac21d7d6401f21fcdfdd1132b8f322bfba4bb80
---
M be/src/exec/hash-table.inline.h
M be/src/gutil/atomic_refcount.h
M be/src/gutil/atomicops-internals-x86.cc
M be/src/gutil/atomicops-internals-x86.h
M be/src/gutil/atomicops.h
M be/src/gutil/auxiliary/atomicops-internals-arm-generic.h
M be/src/gutil/auxiliary/atomicops-internals-arm-v6plus.h
M be/src/gutil/auxiliary/atomicops-internals-windows.h
M be/src/gutil/basictypes.h
M be/src/gutil/bind.h
M be/src/gutil/bind_helpers.h
M be/src/gutil/bind_internal.h
M be/src/gutil/bits.cc
M be/src/gutil/bits.h
M be/src/gutil/callback.h
M be/src/gutil/callback_forward.h
M be/src/gutil/callback_internal.cc
M be/src/gutil/callback_internal.h
M be/src/gutil/casts.h
M be/src/gutil/charmap.h
M be/src/gutil/cpu.cc
M be/src/gutil/cycleclock-inl.h
M be/src/gutil/endian.h
M be/src/gutil/fixedarray.h
M be/src/gutil/gscoped_ptr.h
M be/src/gutil/hash/builtin_type_hash.h
M be/src/gutil/hash/city.cc
M be/src/gutil/hash/city.h
M be/src/gutil/hash/hash.cc
M be/src/gutil/hash/hash.h
M be/src/gutil/hash/hash128to64.h
M be/src/gutil/hash/jenkins.cc
M be/src/gutil/hash/jenkins.h
M be/src/gutil/hash/jenkins_lookup2.h
M be/src/gutil/hash/legacy_hash.h
M be/src/gutil/hash/string_hash.h
M be/src/gutil/int128.cc
M be/src/gutil/int128.h
M be/src/gutil/macros.h
M be/src/gutil/manual_constructor.h
M be/src/gutil/map-util.h
M be/src/gutil/mathlimits.cc
M be/src/gutil/once.cc
M be/src/gutil/once.h
M be/src/gutil/paranoid.h
M be/src/gutil/port.h
M be/src/gutil/raw_scoped_refptr_mismatch_checker.h
M be/src/gutil/ref_counted.cc
M be/src/gutil/ref_counted.h
M be/src/gutil/ref_counted_memory.cc
M be/src/gutil/ref_counted_memory.h
M be/src/gutil/singleton.h
M be/src/gutil/spinlock.cc
M be/src/gutil/spinlock.h
M be/src/gutil/spinlock_internal.cc
M be/src/gutil/spinlock_internal.h
M be/src/gutil/spinlock_linux-inl.h
M be/src/gutil/stl_util.h
M be/src/gutil/stringprintf.cc
M be/src/gutil/stringprintf.h
M be/src/gutil/strings/ascii_ctype.cc
M be/src/gutil/strings/charset.cc
M be/src/gutil/strings/charset.h
M be/src/gutil/strings/escaping.cc
M be/src/gutil/strings/escaping.h
M be/src/gutil/strings/fastmem.h
M be/src/gutil/strings/human_readable.cc
M be/src/gutil/strings/human_readable.h
M be/src/gutil/strings/join.cc
M be/src/gutil/strings/join.h
M be/src/gutil/strings/memutil.cc
M be/src/gutil/strings/memutil.h
M be/src/gutil/strings/numbers.cc
M be/src/gutil/strings/numbers.h
M be/src/gutil/strings/serialize.cc
M be/src/gutil/strings/serialize.h
M be/src/gutil/strings/split.cc
M be/src/gutil/strings/split.h
M be/src/gutil/strings/split_internal.h
M be/src/gutil/strings/strcat.cc
M be/src/gutil/strings/strcat.h
M be/src/gutil/strings/string_util-test.cc
M be/src/gutil/strings/stringpiece.cc
M be/src/gutil/strings/stringpiece.h
M be/src/gutil/strings/strip.cc
M be/src/gutil/strings/strip.h
M be/src/gutil/strings/substitute.cc
M be/src/gutil/strings/substitute.h
M be/src/gutil/strings/util.cc
M be/src/gutil/strings/util.h
M be/src/gutil/strtoint.cc
M be/src/gutil/strtoint.h
M be/src/gutil/synchronization_profiling.h
M be/src/gutil/sysinfo.cc
M be/src/gutil/threading/thread_collision_warner.cc
M be/src/gutil/threading/thread_collision_warner.h
M be/src/gutil/type_traits.h
M be/src/gutil/walltime.cc
M be/src/gutil/walltime.h
M be/src/runtime/buffered-tuple-stream-test.cc
M be/src/runtime/buf

[Impala-ASF-CR] IMPALA-4758: (1/2) Update gutil/ from Kudu@a1bfd7b

2017-03-28 Thread Henry Robinson (Code Review)
Hello Tim Armstrong,

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

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

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

Change subject: IMPALA-4758: (1/2) Update gutil/ from Kudu@a1bfd7b
..

IMPALA-4758: (1/2) Update gutil/ from Kudu@a1bfd7b

* Copy gutil from Kudu
* Minimal changes to gutil/CMakeLists.txt

Change-Id: Ic708a9c4e76ede17af9b06e0a0a8e9ae7d357960
---
M be/src/gutil/CMakeLists.txt
D be/src/gutil/algorithm.h
M be/src/gutil/atomic_refcount.h
M be/src/gutil/atomicops-internals-powerpc.h
A be/src/gutil/atomicops-internals-tsan.h
M be/src/gutil/atomicops-internals-x86.cc
M be/src/gutil/atomicops-internals-x86.h
M be/src/gutil/atomicops.h
M be/src/gutil/auxiliary/atomicops-internals-arm-generic.h
M be/src/gutil/auxiliary/atomicops-internals-arm-v6plus.h
D be/src/gutil/auxiliary/atomicops-internals-macosx.h
M be/src/gutil/auxiliary/atomicops-internals-windows.h
M be/src/gutil/basictypes.h
A be/src/gutil/bind.h
A be/src/gutil/bind.h.pump
A be/src/gutil/bind_helpers.h
A be/src/gutil/bind_internal.h
A be/src/gutil/bind_internal.h.pump
M be/src/gutil/bits.cc
M be/src/gutil/bits.h
A be/src/gutil/callback.h
A be/src/gutil/callback.h.pump
A be/src/gutil/callback_forward.h
A be/src/gutil/callback_internal.cc
A be/src/gutil/callback_internal.h
M be/src/gutil/casts.h
M be/src/gutil/charmap.h
A be/src/gutil/cpu.cc
A be/src/gutil/cpu.h
M be/src/gutil/cycleclock-inl.h
R be/src/gutil/dynamic_annotations.c
M be/src/gutil/dynamic_annotations.h
M be/src/gutil/endian.h
M be/src/gutil/fixedarray.h
M be/src/gutil/gscoped_ptr.h
M be/src/gutil/hash/builtin_type_hash.h
M be/src/gutil/hash/city.cc
M be/src/gutil/hash/city.h
M be/src/gutil/hash/hash.cc
M be/src/gutil/hash/hash.h
M be/src/gutil/hash/hash128to64.h
M be/src/gutil/hash/jenkins.cc
M be/src/gutil/hash/jenkins.h
M be/src/gutil/hash/jenkins_lookup2.h
M be/src/gutil/hash/legacy_hash.h
M be/src/gutil/hash/string_hash.h
M be/src/gutil/int128.cc
M be/src/gutil/int128.h
M be/src/gutil/integral_types.h
M be/src/gutil/linux_syscall_support.h
M be/src/gutil/logging-inl.h
M be/src/gutil/macros.h
M be/src/gutil/manual_constructor.h
M be/src/gutil/map-util.h
M be/src/gutil/mathlimits.cc
M be/src/gutil/mathlimits.h
M be/src/gutil/move.h
M be/src/gutil/once.cc
M be/src/gutil/once.h
M be/src/gutil/paranoid.h
M be/src/gutil/port.h
D be/src/gutil/proto/types.pb.cc
D be/src/gutil/proto/types.pb.h
D be/src/gutil/proto/types.proto
A be/src/gutil/raw_scoped_refptr_mismatch_checker.h
A be/src/gutil/ref_counted.cc
A be/src/gutil/ref_counted.h
A be/src/gutil/ref_counted_memory.cc
A be/src/gutil/ref_counted_memory.h
M be/src/gutil/singleton.h
D be/src/gutil/sparsetable.h
M be/src/gutil/spinlock.cc
M be/src/gutil/spinlock.h
M be/src/gutil/spinlock_internal.cc
M be/src/gutil/spinlock_internal.h
M be/src/gutil/spinlock_linux-inl.h
M be/src/gutil/spinlock_win32-inl.h
M be/src/gutil/stl_util.h
M be/src/gutil/stringprintf.cc
M be/src/gutil/stringprintf.h
M be/src/gutil/strings/ascii_ctype.cc
M be/src/gutil/strings/charset.cc
M be/src/gutil/strings/charset.h
M be/src/gutil/strings/escaping.cc
M be/src/gutil/strings/escaping.h
M be/src/gutil/strings/fastmem.h
M be/src/gutil/strings/human_readable.cc
M be/src/gutil/strings/human_readable.h
M be/src/gutil/strings/join.cc
M be/src/gutil/strings/join.h
M be/src/gutil/strings/memutil.cc
M be/src/gutil/strings/memutil.h
M be/src/gutil/strings/numbers.cc
M be/src/gutil/strings/numbers.h
M be/src/gutil/strings/serialize.cc
M be/src/gutil/strings/serialize.h
M be/src/gutil/strings/split.cc
M be/src/gutil/strings/split.h
M be/src/gutil/strings/split_internal.h
M be/src/gutil/strings/strcat.cc
M be/src/gutil/strings/strcat.h
A be/src/gutil/strings/string_util-test.cc
M be/src/gutil/strings/stringpiece.cc
M be/src/gutil/strings/stringpiece.h
M be/src/gutil/strings/strip.cc
M be/src/gutil/strings/strip.h
M be/src/gutil/strings/substitute.cc
M be/src/gutil/strings/substitute.h
M be/src/gutil/strings/util.cc
M be/src/gutil/strings/util.h
M be/src/gutil/strtoint.cc
M be/src/gutil/strtoint.h
M be/src/gutil/synchronization_profiling.h
M be/src/gutil/sysinfo.cc
M be/src/gutil/sysinfo.h
M be/src/gutil/template_util.h
A be/src/gutil/threading/thread_collision_warner.cc
A be/src/gutil/threading/thread_collision_warner.h
M be/src/gutil/type_traits.h
R be/src/gutil/utf/rune.c
M be/src/gutil/walltime.cc
M be/src/gutil/walltime.h
122 files changed, 9,196 insertions(+), 4,102 deletions(-)


  git pull ssh://gerrit.cloudera.org:29418/Impala-ASF refs/changes/87/5687/8
-- 
To view, visit http://gerrit.cloudera.org:8080/5687
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings

Gerrit-MessageType: newpatchset
Gerrit-Change-Id: Ic708a9c4e76ede17af9b06e0a0a8e9ae7d357960
Gerrit-PatchSet: 8
Gerrit-Project: Impala-ASF
Gerrit-Branch: master
Gerrit-Owner: Henry Robinson 
Gerrit-Reviewer: Dan Hecht 
Gerrit-Reviewer: Henry Robinson 
Gerrit-Reviewer: Tim Armstrong 


[Impala-ASF-CR] [DOCS] Remove references to DSSD storage appliance

2017-03-28 Thread Michael Brown (Code Review)
Michael Brown has posted comments on this change.

Change subject: [DOCS] Remove references to DSSD storage appliance
..


Patch Set 1: Code-Review+1

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

Gerrit-MessageType: comment
Gerrit-Change-Id: I9e47fae9b098c6be85a769fdbac8ea2b87d6c167
Gerrit-PatchSet: 1
Gerrit-Project: Impala-ASF
Gerrit-Branch: master
Gerrit-Owner: John Russell 
Gerrit-Reviewer: Greg Rahn 
Gerrit-Reviewer: Jim Apple 
Gerrit-Reviewer: Michael Brown 
Gerrit-HasComments: No


[Impala-ASF-CR] IMPALA-4701: make distcc work reliably with clang

2017-03-28 Thread Lars Volker (Code Review)
Lars Volker has posted comments on this change.

Change subject: IMPALA-4701: make distcc work reliably with clang
..


Patch Set 7: Code-Review+1

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

Gerrit-MessageType: comment
Gerrit-Change-Id: I199b245fb14b6c3484b66339a7d4b37d74755af7
Gerrit-PatchSet: 7
Gerrit-Project: Impala-ASF
Gerrit-Branch: master
Gerrit-Owner: Tim Armstrong 
Gerrit-Reviewer: Jim Apple 
Gerrit-Reviewer: Lars Volker 
Gerrit-Reviewer: Tim Armstrong 
Gerrit-HasComments: No


[Impala-ASF-CR] IMPALA-4701: make distcc work reliably with clang

2017-03-28 Thread Tim Armstrong (Code Review)
Hello Lars Volker,

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

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

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

Change subject: IMPALA-4701: make distcc work reliably with clang
..

IMPALA-4701: make distcc work reliably with clang

The previous compiler-switching method in distcc had some problems:
* It duplicated logic from CMakeLists.txt in choosing flags to pass to
  clang
* In order to switch to ASAN, you needed to remember to change distcc
  settings.
* The wrapper script approach interacted badly with ccache - GCC and
  Clang-generated artifacts would be treated as equivalent by ccache,
  meaning that if you accidentally build with the wrong compiler setting
  and the artifacts got into the cache you needed to clear ccache.

Instead of using environment variables to set the compiler, we now
pass the compiler as an argument to distcc.sh and set things up
in CMakeLists.txt the same way as ccache. Switching to/from
clang builds now requires no extra step (aside from cleaning
out the cmake-generated files with clean.sh).

Also changes the name of the config file

Testing:
Tested switching between debug and asan builds locally.

Change-Id: I199b245fb14b6c3484b66339a7d4b37d74755af7
---
M be/CMakeLists.txt
M bin/clean.sh
M bin/distcc/README.md
M bin/distcc/distcc.sh
M bin/distcc/distcc_env.sh
5 files changed, 47 insertions(+), 54 deletions(-)


  git pull ssh://gerrit.cloudera.org:29418/Impala-ASF refs/changes/93/6493/7
-- 
To view, visit http://gerrit.cloudera.org:8080/6493
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings

Gerrit-MessageType: newpatchset
Gerrit-Change-Id: I199b245fb14b6c3484b66339a7d4b37d74755af7
Gerrit-PatchSet: 7
Gerrit-Project: Impala-ASF
Gerrit-Branch: master
Gerrit-Owner: Tim Armstrong 
Gerrit-Reviewer: Jim Apple 
Gerrit-Reviewer: Lars Volker 
Gerrit-Reviewer: Tim Armstrong 


[Impala-ASF-CR] IMPALA-4701: make distcc work reliably with clang

2017-03-28 Thread Tim Armstrong (Code Review)
Tim Armstrong has posted comments on this change.

Change subject: IMPALA-4701: make distcc work reliably with clang
..


Patch Set 5:

(1 comment)

http://gerrit.cloudera.org:8080/#/c/6493/5/bin/distcc/distcc_env.sh
File bin/distcc/distcc_env.sh:

Line 120:   -not -path '*thirdparty*'  | xargs rm -rf
> -execdir is the new -exec:
I switched to -exec.

I couldn't get -execdir to work reliably, I think because we're trying to 
delete directories. I don't think there are any security implications since 
we're only working within the Impala tree.


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

Gerrit-MessageType: comment
Gerrit-Change-Id: I199b245fb14b6c3484b66339a7d4b37d74755af7
Gerrit-PatchSet: 5
Gerrit-Project: Impala-ASF
Gerrit-Branch: master
Gerrit-Owner: Tim Armstrong 
Gerrit-Reviewer: Jim Apple 
Gerrit-Reviewer: Lars Volker 
Gerrit-Reviewer: Tim Armstrong 
Gerrit-HasComments: Yes


[Impala-ASF-CR] IMPALA-4166: Add SORT BY sql clause

2017-03-28 Thread Lars Volker (Code Review)
Lars Volker has posted comments on this change.

Change subject: IMPALA-4166: Add SORT BY sql clause
..


Patch Set 2:

PS2 adds a file I had forgotten to "git add" in PS1.

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

Gerrit-MessageType: comment
Gerrit-Change-Id: I08834f38a941786ab45a4381c2732d929a934f75
Gerrit-PatchSet: 2
Gerrit-Project: Impala-ASF
Gerrit-Branch: master
Gerrit-Owner: Lars Volker 
Gerrit-Reviewer: Lars Volker 
Gerrit-HasComments: No


[Impala-ASF-CR] IMPALA-4166: Add SORT BY sql clause

2017-03-28 Thread Lars Volker (Code Review)
Lars Volker has uploaded a new patch set (#2).

Change subject: IMPALA-4166: Add SORT BY sql clause
..

IMPALA-4166: Add SORT BY sql clause

This change adds support for adding SORT BY (...) clauses to CREATE
TABLE and ALTER TABLE statements. The columns in the SORT BY clause are
stored in the 'sort.by.columns' table property and will result in an
additional SORT node being added to the plan before the final table
sink. Specifying SORT BY columns also enables clustering during inserts,
so the SORT node will contain all partitioning columns first, followed
by the SORT BY columns.

This change introduces a new TablePropertyAnalyzer class to collect
various methods used to analyze table properties.

Change-Id: I08834f38a941786ab45a4381c2732d929a934f75
---
M common/thrift/JniCatalog.thrift
M fe/src/main/cup/sql-parser.cup
M fe/src/main/java/org/apache/impala/analysis/AlterTableSetTblProperties.java
M fe/src/main/java/org/apache/impala/analysis/Analyzer.java
M fe/src/main/java/org/apache/impala/analysis/BaseTableRef.java
M fe/src/main/java/org/apache/impala/analysis/CreateTableLikeStmt.java
M fe/src/main/java/org/apache/impala/analysis/InsertStmt.java
M fe/src/main/java/org/apache/impala/analysis/TableDef.java
A fe/src/main/java/org/apache/impala/analysis/TablePropertyAnalyzer.java
M fe/src/main/java/org/apache/impala/catalog/Column.java
M fe/src/main/java/org/apache/impala/catalog/Table.java
M fe/src/main/java/org/apache/impala/planner/Planner.java
M fe/src/main/java/org/apache/impala/service/CatalogOpExecutor.java
M fe/src/main/jflex/sql-scanner.flex
M fe/src/test/java/org/apache/impala/analysis/AnalyzeDDLTest.java
M fe/src/test/java/org/apache/impala/analysis/AnalyzeStmtsTest.java
M fe/src/test/java/org/apache/impala/analysis/ParserTest.java
M fe/src/test/java/org/apache/impala/analysis/ToSqlTest.java
M fe/src/test/java/org/apache/impala/common/FrontendTestBase.java
M fe/src/test/java/org/apache/impala/planner/PlannerTest.java
M testdata/workloads/functional-planner/queries/PlannerTest/ddl.test
A testdata/workloads/functional-planner/queries/PlannerTest/insert-sort-by.test
M testdata/workloads/functional-planner/queries/PlannerTest/insert.test
M testdata/workloads/functional-query/queries/QueryTest/alter-table.test
M 
testdata/workloads/functional-query/queries/QueryTest/create-table-as-select.test
M 
testdata/workloads/functional-query/queries/QueryTest/create-table-like-file.test
M 
testdata/workloads/functional-query/queries/QueryTest/create-table-like-table.test
M testdata/workloads/functional-query/queries/QueryTest/create-table.test
M testdata/workloads/functional-query/queries/QueryTest/show-create-table.test
29 files changed, 730 insertions(+), 51 deletions(-)


  git pull ssh://gerrit.cloudera.org:29418/Impala-ASF refs/changes/95/6495/2
-- 
To view, visit http://gerrit.cloudera.org:8080/6495
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings

Gerrit-MessageType: newpatchset
Gerrit-Change-Id: I08834f38a941786ab45a4381c2732d929a934f75
Gerrit-PatchSet: 2
Gerrit-Project: Impala-ASF
Gerrit-Branch: master
Gerrit-Owner: Lars Volker 
Gerrit-Reviewer: Lars Volker 


[Impala-ASF-CR] IMPALA-4701: make distcc work reliably with clang

2017-03-28 Thread Jim Apple (Code Review)
Jim Apple has posted comments on this change.

Change subject: IMPALA-4701: make distcc work reliably with clang
..


Patch Set 5:

(1 comment)

http://gerrit.cloudera.org:8080/#/c/6493/5/bin/distcc/distcc_env.sh
File bin/distcc/distcc_env.sh:

Line 120:   -not -path '*thirdparty*'  | xargs rm -rf
> I think it would be safer to use find's -print0 parameter and xargs -0 here
-execdir is the new -exec:

   -execdir command ;

   -execdir command {} +
  Like -exec, but the specified command is run from the 
subdirectory containing the matched file, which is not
  normally the directory in which you started find.  This a much 
more secure method for invoking commands,  as
  it  avoids  race  conditions during resolution of the paths to 
the matched files.


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

Gerrit-MessageType: comment
Gerrit-Change-Id: I199b245fb14b6c3484b66339a7d4b37d74755af7
Gerrit-PatchSet: 5
Gerrit-Project: Impala-ASF
Gerrit-Branch: master
Gerrit-Owner: Tim Armstrong 
Gerrit-Reviewer: Jim Apple 
Gerrit-Reviewer: Lars Volker 
Gerrit-Reviewer: Tim Armstrong 
Gerrit-HasComments: Yes


[Impala-ASF-CR] IMPALA-4701: make distcc work reliably with clang

2017-03-28 Thread Lars Volker (Code Review)
Lars Volker has posted comments on this change.

Change subject: IMPALA-4701: make distcc work reliably with clang
..


Patch Set 5:

(1 comment)

Apologies for leaving yet another comment. Feel free to ignore it.

http://gerrit.cloudera.org:8080/#/c/6493/5/bin/distcc/distcc_env.sh
File bin/distcc/distcc_env.sh:

Line 120:   -not -path '*thirdparty*'  | xargs rm -rf
> While I'm here, this wasn't updated to take into account the toolchain
I think it would be safer to use find's -print0 parameter and xargs -0 here, 
otherwise files with spaces will be an issue.

On second thought, you could do something like 

find . -name "FILE-TO-FIND" -exec rm -rf {} \;

and do away with xargs altogether.


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

Gerrit-MessageType: comment
Gerrit-Change-Id: I199b245fb14b6c3484b66339a7d4b37d74755af7
Gerrit-PatchSet: 5
Gerrit-Project: Impala-ASF
Gerrit-Branch: master
Gerrit-Owner: Tim Armstrong 
Gerrit-Reviewer: Jim Apple 
Gerrit-Reviewer: Lars Volker 
Gerrit-Reviewer: Tim Armstrong 
Gerrit-HasComments: Yes


[Impala-ASF-CR] IMPALA-4041: Limit catalog and admission control updates to coordinators

2017-03-28 Thread Impala Public Jenkins (Code Review)
Impala Public Jenkins has posted comments on this change.

Change subject: IMPALA-4041: Limit catalog and admission control updates to 
coordinators
..


Patch Set 6:

Build started: http://jenkins.impala.io:8080/job/gerrit-verify-dryrun/419/

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

Gerrit-MessageType: comment
Gerrit-Change-Id: I5f2c74abdbcd60ac050efa323616bd41182ceff3
Gerrit-PatchSet: 6
Gerrit-Project: Impala-ASF
Gerrit-Branch: master
Gerrit-Owner: Dimitris Tsirogiannis 
Gerrit-Reviewer: Bharath Vissapragada 
Gerrit-Reviewer: Dan Hecht 
Gerrit-Reviewer: Dimitris Tsirogiannis 
Gerrit-Reviewer: Henry Robinson 
Gerrit-Reviewer: Impala Public Jenkins
Gerrit-Reviewer: Marcel Kornacker 
Gerrit-Reviewer: Matthew Jacobs 
Gerrit-HasComments: No


[Impala-ASF-CR] IMPALA-4041: Limit catalog and admission control updates to coordinators

2017-03-28 Thread Dimitris Tsirogiannis (Code Review)
Dimitris Tsirogiannis has posted comments on this change.

Change subject: IMPALA-4041: Limit catalog and admission control updates to 
coordinators
..


Patch Set 6: Code-Review+2

Keep Henry's +2

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

Gerrit-MessageType: comment
Gerrit-Change-Id: I5f2c74abdbcd60ac050efa323616bd41182ceff3
Gerrit-PatchSet: 6
Gerrit-Project: Impala-ASF
Gerrit-Branch: master
Gerrit-Owner: Dimitris Tsirogiannis 
Gerrit-Reviewer: Bharath Vissapragada 
Gerrit-Reviewer: Dan Hecht 
Gerrit-Reviewer: Dimitris Tsirogiannis 
Gerrit-Reviewer: Henry Robinson 
Gerrit-Reviewer: Marcel Kornacker 
Gerrit-Reviewer: Matthew Jacobs 
Gerrit-HasComments: No


[Impala-ASF-CR] IMPALA-4041: Limit catalog and admission control updates to coordinators

2017-03-28 Thread Dimitris Tsirogiannis (Code Review)
Hello Marcel Kornacker, Henry Robinson,

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

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

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

Change subject: IMPALA-4041: Limit catalog and admission control updates to 
coordinators
..

IMPALA-4041: Limit catalog and admission control updates to coordinators

With this commit we add the ability to limit catalog updates to a
limited set of coordinator nodes. A new startup option, termed
'is_coordinator' is added to indicate if a node is a coordinator.
Coordinators accept connections through HS2 and Beeswax interfaces
and can also participate in query execution. Non-coordinator nodes
do not receive catalog updates from the statestore, do not initialize
a query scheduler and cannot accept Beeswax and HS2 client connections.

Testing:
- Added a custom cluster test that launches a cluster in which the
number of coordinators is less than the cluster size and runs a number
of smoke queries.
- Successfully run exhaustive tests.

Change-Id: I5f2c74abdbcd60ac050efa323616bd41182ceff3
---
M be/src/runtime/exec-env.cc
M be/src/runtime/exec-env.h
M be/src/scheduling/admission-controller.cc
M be/src/scheduling/admission-controller.h
M be/src/scheduling/scheduler-test-util.cc
M be/src/scheduling/scheduler-test.cc
M be/src/scheduling/scheduler.cc
M be/src/scheduling/scheduler.h
M be/src/service/impala-server.cc
M be/src/service/impala-server.h
M be/src/service/impalad-main.cc
M be/src/service/query-exec-state.cc
M be/src/testutil/in-process-servers.h
M be/src/util/webserver.cc
M bin/start-impala-cluster.py
M tests/common/custom_cluster_test_suite.py
M tests/common/impala_service.py
A tests/custom_cluster/test_coordinators.py
M www/root.tmpl
19 files changed, 435 insertions(+), 235 deletions(-)


  git pull ssh://gerrit.cloudera.org:29418/Impala-ASF refs/changes/44/6344/6
-- 
To view, visit http://gerrit.cloudera.org:8080/6344
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings

Gerrit-MessageType: newpatchset
Gerrit-Change-Id: I5f2c74abdbcd60ac050efa323616bd41182ceff3
Gerrit-PatchSet: 6
Gerrit-Project: Impala-ASF
Gerrit-Branch: master
Gerrit-Owner: Dimitris Tsirogiannis 
Gerrit-Reviewer: Bharath Vissapragada 
Gerrit-Reviewer: Dan Hecht 
Gerrit-Reviewer: Dimitris Tsirogiannis 
Gerrit-Reviewer: Henry Robinson 
Gerrit-Reviewer: Marcel Kornacker 
Gerrit-Reviewer: Matthew Jacobs 


[Impala-ASF-CR] IMPALA-4041: Limit catalog and admission control updates to coordinators

2017-03-28 Thread Dimitris Tsirogiannis (Code Review)
Dimitris Tsirogiannis has posted comments on this change.

Change subject: IMPALA-4041: Limit catalog and admission control updates to 
coordinators
..


Patch Set 5:

(6 comments)

Thanks Henry!

http://gerrit.cloudera.org:8080/#/c/6344/5/be/src/service/impala-server.cc
File be/src/service/impala-server.cc:

PS5, Line 180: node can coordinate queries.
> maybe tighten this up:
Done


http://gerrit.cloudera.org:8080/#/c/6344/5/be/src/service/impala-server.h
File be/src/service/impala-server.h:

Line 949: 
> comment?
Done


http://gerrit.cloudera.org:8080/#/c/6344/5/be/src/service/query-exec-state.cc
File be/src/service/query-exec-state.cc:

PS5, Line 461: if (!FLAGS_disable_admission_control) {
> again, it seems better to check to see if admission_controller() != nullptr
Done


http://gerrit.cloudera.org:8080/#/c/6344/5/be/src/util/webserver.cc
File be/src/util/webserver.cc:

PS5, Line 192: FLAGS_is_coordinator
> it would be neater to do something like:
Done


PS5, Line 192: Worker
> nit: dunno how much we want to bikeshed this, but I prefer "Executor" to "W
Renamed "worker" to "executor". Also, "coordinator" now is "coordinator + 
executor".


http://gerrit.cloudera.org:8080/#/c/6344/5/www/root.tmpl
File www/root.tmpl:

Line 21:   Impala Server Mode
> This template gets used for catalog and statestored as well. You need to ch
Good point, forgot about it. Fixed it.


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

Gerrit-MessageType: comment
Gerrit-Change-Id: I5f2c74abdbcd60ac050efa323616bd41182ceff3
Gerrit-PatchSet: 5
Gerrit-Project: Impala-ASF
Gerrit-Branch: master
Gerrit-Owner: Dimitris Tsirogiannis 
Gerrit-Reviewer: Bharath Vissapragada 
Gerrit-Reviewer: Dan Hecht 
Gerrit-Reviewer: Dimitris Tsirogiannis 
Gerrit-Reviewer: Henry Robinson 
Gerrit-Reviewer: Marcel Kornacker 
Gerrit-Reviewer: Matthew Jacobs 
Gerrit-HasComments: Yes


[Impala-ASF-CR](asf-site) Update Impala Jira link to ASF's Jira.

2017-03-28 Thread Michael Brown (Code Review)
Michael Brown has submitted this change and it was merged.

Change subject: Update Impala Jira link to ASF's Jira.
..


Update Impala Jira link to ASF's Jira.

Change-Id: Ia903898c4e31fd0f4820048244e23ffa638dab4a
Reviewed-on: http://gerrit.cloudera.org:8080/6499
Reviewed-by: Henry Robinson 
Tested-by: Michael Brown 
---
M community.html
1 file changed, 1 insertion(+), 1 deletion(-)

Approvals:
  Michael Brown: Verified
  Henry Robinson: Looks good to me, approved



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

Gerrit-MessageType: merged
Gerrit-Change-Id: Ia903898c4e31fd0f4820048244e23ffa638dab4a
Gerrit-PatchSet: 2
Gerrit-Project: Impala-ASF
Gerrit-Branch: asf-site
Gerrit-Owner: Michael Brown 
Gerrit-Reviewer: Henry Robinson 
Gerrit-Reviewer: Jim Apple 
Gerrit-Reviewer: Michael Brown 


[Impala-ASF-CR](asf-site) Update Impala Jira link to ASF's Jira.

2017-03-28 Thread Michael Brown (Code Review)
Michael Brown has posted comments on this change.

Change subject: Update Impala Jira link to ASF's Jira.
..


Patch Set 1: Verified+1

I verified by looking at community.html in the links2 browser, navigating to 
the issues link, and following the link.

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

Gerrit-MessageType: comment
Gerrit-Change-Id: Ia903898c4e31fd0f4820048244e23ffa638dab4a
Gerrit-PatchSet: 1
Gerrit-Project: Impala-ASF
Gerrit-Branch: asf-site
Gerrit-Owner: Michael Brown 
Gerrit-Reviewer: Henry Robinson 
Gerrit-Reviewer: Jim Apple 
Gerrit-Reviewer: Michael Brown 
Gerrit-HasComments: No


[Impala-ASF-CR] IMPALA-5031: Remove undefined behavior: left shift of negative values

2017-03-28 Thread Impala Public Jenkins (Code Review)
Impala Public Jenkins has posted comments on this change.

Change subject: IMPALA-5031: Remove undefined behavior: left shift of negative 
values
..


Patch Set 1:

Build started: http://jenkins.impala.io:8080/job/gerrit-verify-dryrun/418/

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

Gerrit-MessageType: comment
Gerrit-Change-Id: I9d965c3950a878c0a41b374d51bbe2e5705b3360
Gerrit-PatchSet: 1
Gerrit-Project: Impala-ASF
Gerrit-Branch: master
Gerrit-Owner: Jim Apple 
Gerrit-Reviewer: Dan Hecht 
Gerrit-Reviewer: Impala Public Jenkins
Gerrit-Reviewer: Jim Apple 
Gerrit-Reviewer: Tim Armstrong 
Gerrit-HasComments: No


[Impala-ASF-CR] IMPALA-5031: Remove undefined behavior: left shift of negative values

2017-03-28 Thread Tim Armstrong (Code Review)
Tim Armstrong has posted comments on this change.

Change subject: IMPALA-5031: Remove undefined behavior: left shift of negative 
values
..


Patch Set 1: Code-Review+2

(1 comment)

http://gerrit.cloudera.org:8080/#/c/6491/1/be/src/exec/read-write-util.cc
File be/src/exec/read-write-util.cc:

Line 96:   uint32_t uinteger = (static_cast(integer) << 1) ^ (integer 
>> 31);
> That's what I thought, too, but it doesn't work: the right shift depends on
Ah got it


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

Gerrit-MessageType: comment
Gerrit-Change-Id: I9d965c3950a878c0a41b374d51bbe2e5705b3360
Gerrit-PatchSet: 1
Gerrit-Project: Impala-ASF
Gerrit-Branch: master
Gerrit-Owner: Jim Apple 
Gerrit-Reviewer: Dan Hecht 
Gerrit-Reviewer: Jim Apple 
Gerrit-Reviewer: Tim Armstrong 
Gerrit-HasComments: Yes


[Impala-ASF-CR] IMPALA-4318: Kudu support for CREATE EXTERNAL TABLE AS SELECT

2017-03-28 Thread Dan Hecht (Code Review)
Dan Hecht has posted comments on this change.

Change subject: IMPALA-4318:  Kudu support for CREATE EXTERNAL TABLE AS SELECT
..


Patch Set 10: Code-Review+1

Thanks, the new commit message is much clearer.

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

Gerrit-MessageType: comment
Gerrit-Change-Id: I9aa82809a6c0c5e6386827314b7e5b520c1a6633
Gerrit-PatchSet: 10
Gerrit-Project: Impala-ASF
Gerrit-Branch: master
Gerrit-Owner: Zach Amsden 
Gerrit-Reviewer: Dan Hecht 
Gerrit-Reviewer: Dimitris Tsirogiannis 
Gerrit-Reviewer: Marcel Kornacker 
Gerrit-Reviewer: Matthew Jacobs 
Gerrit-Reviewer: Thomas Tauber-Marshall 
Gerrit-Reviewer: Zach Amsden 
Gerrit-HasComments: No


[Impala-ASF-CR] IMPALA-5128: BE Test Infrastructure

2017-03-28 Thread Zach Amsden (Code Review)
Zach Amsden has uploaded a new patch set (#2).

Change subject: IMPALA-5128: BE Test Infrastructure
..

IMPALA-5128: BE Test Infrastructure

Investigating a crash in backend exprs test and this test takes
a long time to run.  Lets add the notion of exhaustive tests to
the be tests as well and skip tests which take a longer amount
of time.  This diff adds a new boolean flag to all tests,
-run-exhaustive, which can be used to enable extra testing,
and makes the default test run use this only if exhaustive mode
has been requested.

Change-Id: I71fe6de39dff21b21d322daf0232b0578bdff297
---
M be/CMakeLists.txt
M be/src/exprs/expr-test.cc
M be/src/testutil/CMakeLists.txt
A be/src/testutil/gtest-util.cc
M be/src/testutil/gtest-util.h
M bin/run-all-tests.sh
M bin/run-backend-tests.sh
7 files changed, 432 insertions(+), 379 deletions(-)


  git pull ssh://gerrit.cloudera.org:29418/Impala-ASF refs/changes/77/6477/2
-- 
To view, visit http://gerrit.cloudera.org:8080/6477
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings

Gerrit-MessageType: newpatchset
Gerrit-Change-Id: I71fe6de39dff21b21d322daf0232b0578bdff297
Gerrit-PatchSet: 2
Gerrit-Project: Impala-ASF
Gerrit-Branch: master
Gerrit-Owner: Zach Amsden 
Gerrit-Reviewer: Dan Hecht 
Gerrit-Reviewer: Michael Ho 


[Impala-ASF-CR](asf-site) Update Impala Jira link to ASF's Jira.

2017-03-28 Thread Henry Robinson (Code Review)
Henry Robinson has posted comments on this change.

Change subject: Update Impala Jira link to ASF's Jira.
..


Patch Set 1: Code-Review+2

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

Gerrit-MessageType: comment
Gerrit-Change-Id: Ia903898c4e31fd0f4820048244e23ffa638dab4a
Gerrit-PatchSet: 1
Gerrit-Project: Impala-ASF
Gerrit-Branch: asf-site
Gerrit-Owner: Michael Brown 
Gerrit-Reviewer: Henry Robinson 
Gerrit-Reviewer: Jim Apple 
Gerrit-HasComments: No


[Impala-ASF-CR] IMPALA-4318: Kudu support for CREATE EXTERNAL TABLE AS SELECT

2017-03-28 Thread Zach Amsden (Code Review)
Hello Matthew Jacobs,

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

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

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

Change subject: IMPALA-4318:  Kudu support for CREATE EXTERNAL TABLE AS SELECT
..

IMPALA-4318:  Kudu support for CREATE EXTERNAL TABLE AS SELECT

Create external table can be used for two different operations,
creating a new table by selecting data from another, and importing
an existing unmanaged external table.  Previously, for Kudu tables,
it was only possible to issue CTAS for managed tables, and external
tables were assumed to be imports of already existing data.  This
change allows the creation of new, unmanaged (external) kudu tables
from SELECT statements.

In the catalog executor, we detect if a table creation is new by
inferring that from the presence of column definitions, not by whether
it is external / managed.  Front-end code is changed to allow this
through the parser.  This means any attempts to specify table metadata
for Kudu tables are now interpreted as a table creation.

Testing: Manual testing, expanded ParserTest and AnalyzeDDLTest
and added test cases to query_test to validate Kudu support.

Ran the folowing query:

create external table test2_name primary key(id) partition by hash(id)
partitions 10 stored as kudu as select * from test_name;

Which successfully created and inserted 3 rows of data.  Tried many
other things like changing primary keys and forms of partitioning.

Change-Id: I9aa82809a6c0c5e6386827314b7e5b520c1a6633
---
M fe/src/main/java/org/apache/impala/analysis/CreateTableAsSelectStmt.java
M fe/src/main/java/org/apache/impala/analysis/CreateTableStmt.java
M fe/src/main/java/org/apache/impala/service/CatalogOpExecutor.java
M fe/src/main/java/org/apache/impala/service/KuduCatalogOpExecutor.java
M fe/src/test/java/org/apache/impala/analysis/AnalyzeDDLTest.java
M fe/src/test/java/org/apache/impala/analysis/ParserTest.java
M shell/impala_shell.py
M tests/query_test/test_kudu.py
8 files changed, 92 insertions(+), 33 deletions(-)


  git pull ssh://gerrit.cloudera.org:29418/Impala-ASF refs/changes/61/6261/10
-- 
To view, visit http://gerrit.cloudera.org:8080/6261
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings

Gerrit-MessageType: newpatchset
Gerrit-Change-Id: I9aa82809a6c0c5e6386827314b7e5b520c1a6633
Gerrit-PatchSet: 10
Gerrit-Project: Impala-ASF
Gerrit-Branch: master
Gerrit-Owner: Zach Amsden 
Gerrit-Reviewer: Dan Hecht 
Gerrit-Reviewer: Dimitris Tsirogiannis 
Gerrit-Reviewer: Marcel Kornacker 
Gerrit-Reviewer: Matthew Jacobs 
Gerrit-Reviewer: Thomas Tauber-Marshall 
Gerrit-Reviewer: Zach Amsden 


[Impala-ASF-CR] IMPALA-4318: Kudu support for CREATE EXTERNAL TABLE AS SELECT

2017-03-28 Thread Zach Amsden (Code Review)
Zach Amsden has posted comments on this change.

Change subject: IMPALA-4318:  Kudu support for CREATE EXTERNAL TABLE AS SELECT
..


Patch Set 9:

(1 comment)

http://gerrit.cloudera.org:8080/#/c/6261/9//COMMIT_MSG
Commit Message:

Line 10: creating a new managed table, and importing an existing unmanaged
> "Managed" is a synonym for "internal", and the opposite of "external". So, 
Code is right, comment is very confused.  Let's try this:

Create external table can be used for two different operations,
creating a new table by selecting data from another, and importing
an existing unmanaged external table.  Previously, for Kudu tables,
it was only possible to issue CTAS for managed tables, and external
tables were assumed to be imports of already existing data.  This
change allows the creation of new, unmanaged (external) kudu tables
from SELECT statements.

In the catalog executor, we detect if a table creation is new by
inferring that from the presence of column definitions, not by whether
it is external / managed.  Front-end code is changed to allow this
through the parser.  This means any attempts to specify table metadata
for Kudu tables are now interpreted as a table creation.


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

Gerrit-MessageType: comment
Gerrit-Change-Id: I9aa82809a6c0c5e6386827314b7e5b520c1a6633
Gerrit-PatchSet: 9
Gerrit-Project: Impala-ASF
Gerrit-Branch: master
Gerrit-Owner: Zach Amsden 
Gerrit-Reviewer: Dan Hecht 
Gerrit-Reviewer: Dimitris Tsirogiannis 
Gerrit-Reviewer: Marcel Kornacker 
Gerrit-Reviewer: Matthew Jacobs 
Gerrit-Reviewer: Thomas Tauber-Marshall 
Gerrit-Reviewer: Zach Amsden 
Gerrit-HasComments: Yes


[Impala-ASF-CR](asf-site) Update Impala Jira link to ASF's Jira.

2017-03-28 Thread Michael Brown (Code Review)
Michael Brown has uploaded a new change for review.

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

Change subject: Update Impala Jira link to ASF's Jira.
..

Update Impala Jira link to ASF's Jira.

Change-Id: Ia903898c4e31fd0f4820048244e23ffa638dab4a
---
M community.html
1 file changed, 1 insertion(+), 1 deletion(-)


  git pull ssh://gerrit.cloudera.org:29418/Impala-ASF refs/changes/99/6499/1
-- 
To view, visit http://gerrit.cloudera.org:8080/6499
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: Ia903898c4e31fd0f4820048244e23ffa638dab4a
Gerrit-PatchSet: 1
Gerrit-Project: Impala-ASF
Gerrit-Branch: asf-site
Gerrit-Owner: Michael Brown 


[Impala-ASF-CR] IMPALA-5127: Add history max option

2017-03-28 Thread Zach Amsden (Code Review)
Hello Sailesh Mukil,

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

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

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

Change subject: IMPALA-5127: Add history_max option
..

IMPALA-5127: Add history_max option

Allow users to keep a longer history of queries if desired.  I
personally find it useful to keep a long history of queries to
reference and want to bump this up to a very large value, but
keep the default reasonable.

Testing: Created .impalarc as follows, now getting more history saved.

[impala]
history_max=1000

Change-Id: Iaf65bbecb8fd7f1105aac62b6745d6125a603d7f
---
M shell/impala_shell.py
M shell/impala_shell_config_defaults.py
2 files changed, 21 insertions(+), 21 deletions(-)


  git pull ssh://gerrit.cloudera.org:29418/Impala-ASF refs/changes/35/6335/2
-- 
To view, visit http://gerrit.cloudera.org:8080/6335
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings

Gerrit-MessageType: newpatchset
Gerrit-Change-Id: Iaf65bbecb8fd7f1105aac62b6745d6125a603d7f
Gerrit-PatchSet: 2
Gerrit-Project: Impala-ASF
Gerrit-Branch: master
Gerrit-Owner: Zach Amsden 
Gerrit-Reviewer: Sailesh Mukil 


[Impala-ASF-CR] IMPALA-4318: Kudu support for CREATE EXTERNAL TABLE AS SELECT

2017-03-28 Thread Dan Hecht (Code Review)
Dan Hecht has posted comments on this change.

Change subject: IMPALA-4318:  Kudu support for CREATE EXTERNAL TABLE AS SELECT
..


Patch Set 9:

(1 comment)

http://gerrit.cloudera.org:8080/#/c/6261/9//COMMIT_MSG
Commit Message:

Line 10: creating a new managed table, and importing an existing unmanaged
"Managed" is a synonym for "internal", and the opposite of "external". So, I 
don't understand what you mean by "creating a new managed table" when it comes 
to "create external table".

The semantics for external tables is that DROP TABLE won't delete the backing 
data. That should be true for all external tables, whether Impala had to create 
the table or the table was pre-existing.

So, what do you mean exactly by "managed" here?


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

Gerrit-MessageType: comment
Gerrit-Change-Id: I9aa82809a6c0c5e6386827314b7e5b520c1a6633
Gerrit-PatchSet: 9
Gerrit-Project: Impala-ASF
Gerrit-Branch: master
Gerrit-Owner: Zach Amsden 
Gerrit-Reviewer: Dan Hecht 
Gerrit-Reviewer: Dimitris Tsirogiannis 
Gerrit-Reviewer: Marcel Kornacker 
Gerrit-Reviewer: Matthew Jacobs 
Gerrit-Reviewer: Thomas Tauber-Marshall 
Gerrit-Reviewer: Zach Amsden 
Gerrit-HasComments: Yes


[Impala-ASF-CR] IMPALA-4758: (2/2) Impala-side changes to build with latest gutil

2017-03-28 Thread Dan Hecht (Code Review)
Dan Hecht has posted comments on this change.

Change subject: IMPALA-4758: (2/2) Impala-side changes to build with latest 
gutil
..


Patch Set 8: Code-Review+2

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

Gerrit-MessageType: comment
Gerrit-Change-Id: I4ac21d7d6401f21fcdfdd1132b8f322bfba4bb80
Gerrit-PatchSet: 8
Gerrit-Project: Impala-ASF
Gerrit-Branch: master
Gerrit-Owner: Henry Robinson 
Gerrit-Reviewer: Dan Hecht 
Gerrit-Reviewer: Henry Robinson 
Gerrit-Reviewer: Impala Public Jenkins
Gerrit-Reviewer: Jim Apple 
Gerrit-Reviewer: Tim Armstrong 
Gerrit-HasComments: No


[Impala-ASF-CR] IMPALA-4758: (1/2) Update gutil/ from Kudu@a1bfd7b

2017-03-28 Thread Dan Hecht (Code Review)
Dan Hecht has posted comments on this change.

Change subject: IMPALA-4758: (1/2) Update gutil/ from Kudu@a1bfd7b
..


Patch Set 7:

(4 comments)

Do you know if kudu actually pulled in a newer version of this code from 
upstream, and if so, which version?

http://gerrit.cloudera.org:8080/#/c/5687/7/be/src/gutil/bits.cc
File be/src/gutil/bits.cc:

Line 88: }
why did these move from the header?


http://gerrit.cloudera.org:8080/#/c/5687/7/be/src/gutil/gscoped_ptr.h
File be/src/gutil/gscoped_ptr.h:

PS7, Line 112: kudu
is that intentional?


http://gerrit.cloudera.org:8080/#/c/5687/7/be/src/gutil/port.h
File be/src/gutil/port.h:

PS7, Line 939: kudu
is that expected?


http://gerrit.cloudera.org:8080/#/c/5687/7/be/src/gutil/walltime.h
File be/src/gutil/walltime.h:

PS7, Line 83: 1e6
we had intentionally changed these so that we'd be using integer operations 
rather than floating point. can we cherry pick that commit back over?


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

Gerrit-MessageType: comment
Gerrit-Change-Id: Ic708a9c4e76ede17af9b06e0a0a8e9ae7d357960
Gerrit-PatchSet: 7
Gerrit-Project: Impala-ASF
Gerrit-Branch: master
Gerrit-Owner: Henry Robinson 
Gerrit-Reviewer: Dan Hecht 
Gerrit-Reviewer: Henry Robinson 
Gerrit-Reviewer: Tim Armstrong 
Gerrit-HasComments: Yes


[Impala-ASF-CR] IMPALA-4701: make distcc work reliably with clang

2017-03-28 Thread Tim Armstrong (Code Review)
Hello Lars Volker,

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

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

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

Change subject: IMPALA-4701: make distcc work reliably with clang
..

IMPALA-4701: make distcc work reliably with clang

The previous compiler-switching method in distcc had some problems:
* It duplicated logic from CMakeLists.txt in choosing flags to pass to
  clang
* In order to switch to ASAN, you needed to remember to change distcc
  settings.
* The wrapper script approach interacted badly with ccache - GCC and
  Clang-generated artifacts would be treated as equivalent by ccache,
  meaning that if you accidentally build with the wrong compiler setting
  and the artifacts got into the cache you needed to clear ccache.

Instead of using environment variables to set the compiler, we now
pass the compiler as an argument to distcc.sh and set things up
in CMakeLists.txt the same way as ccache. Switching to/from
clang builds now requires no extra step (aside from cleaning
out the cmake-generated files with clean.sh).

Also changes the name of the config file

Testing:
Tested switching between debug and asan builds locally.

Change-Id: I199b245fb14b6c3484b66339a7d4b37d74755af7
---
M be/CMakeLists.txt
M bin/distcc/README.md
M bin/distcc/distcc.sh
M bin/distcc/distcc_env.sh
4 files changed, 46 insertions(+), 53 deletions(-)


  git pull ssh://gerrit.cloudera.org:29418/Impala-ASF refs/changes/93/6493/6
-- 
To view, visit http://gerrit.cloudera.org:8080/6493
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings

Gerrit-MessageType: newpatchset
Gerrit-Change-Id: I199b245fb14b6c3484b66339a7d4b37d74755af7
Gerrit-PatchSet: 6
Gerrit-Project: Impala-ASF
Gerrit-Branch: master
Gerrit-Owner: Tim Armstrong 
Gerrit-Reviewer: Jim Apple 
Gerrit-Reviewer: Lars Volker 
Gerrit-Reviewer: Tim Armstrong 


[Impala-ASF-CR] IMPALA-4701: make distcc work reliably with clang

2017-03-28 Thread Tim Armstrong (Code Review)
Tim Armstrong has posted comments on this change.

Change subject: IMPALA-4701: make distcc work reliably with clang
..


Patch Set 6: Code-Review+1

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

Gerrit-MessageType: comment
Gerrit-Change-Id: I199b245fb14b6c3484b66339a7d4b37d74755af7
Gerrit-PatchSet: 6
Gerrit-Project: Impala-ASF
Gerrit-Branch: master
Gerrit-Owner: Tim Armstrong 
Gerrit-Reviewer: Jim Apple 
Gerrit-Reviewer: Lars Volker 
Gerrit-Reviewer: Tim Armstrong 
Gerrit-HasComments: No


[Impala-ASF-CR] IMPALA-4701: make distcc work reliably with clang

2017-03-28 Thread Tim Armstrong (Code Review)
Tim Armstrong has posted comments on this change.

Change subject: IMPALA-4701: make distcc work reliably with clang
..


Patch Set 5:

(3 comments)

http://gerrit.cloudera.org:8080/#/c/6493/5/bin/distcc/distcc.sh
File bin/distcc/distcc.sh:

Line 19: 
> Would it make sense to add "set -euo pipefail" here?
Done


http://gerrit.cloudera.org:8080/#/c/6493/5/bin/distcc/distcc_env.sh
File bin/distcc/distcc_env.sh:

Line 83: IMPALA_COMPILER_CONFIG_FILE="$IMPALA_HOME/.impala_compiler_opts"
I ran into some issues locally because the old opts file wasn't compatible with 
the changed script. So I just removed


Line 120:   -not -path '*thirdparty*'  | xargs rm -rf
While I'm here, this wasn't updated to take into account the toolchain


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

Gerrit-MessageType: comment
Gerrit-Change-Id: I199b245fb14b6c3484b66339a7d4b37d74755af7
Gerrit-PatchSet: 5
Gerrit-Project: Impala-ASF
Gerrit-Branch: master
Gerrit-Owner: Tim Armstrong 
Gerrit-Reviewer: Jim Apple 
Gerrit-Reviewer: Lars Volker 
Gerrit-Reviewer: Tim Armstrong 
Gerrit-HasComments: Yes


[Impala-ASF-CR] IMPALA-4114: Port BufferedBlockMgr tests to buffer pool

2017-03-28 Thread Tim Armstrong (Code Review)
Tim Armstrong has uploaded a new patch set (#2).

Change subject: IMPALA-4114: Port BufferedBlockMgr tests to buffer pool
..

IMPALA-4114: Port BufferedBlockMgr tests to buffer pool

BufferedBlockMgr had a number of interesting backend tests
that are still relevant to BufferPool. This commit copies
them across and adapts them to BufferPool. This should bring
the backend test coverage for BufferPool up to par with
BufferedBlockMgr.

Many tests weren't ported because they are not relevant or would
duplicate other tests:
* GetNewBlock* -> covered by PageCreation/BufferAllocation
* Pin -> covered by Pin
* Deletion/DeleteSingleBlocks -> all BufferPool tests cover deletion
* Close -> BufferPool doesn't have "cancellation"
* TransferBufferDuringWrite -> the API being tested is not present. Some
   of the deletion tests are the closest analogue.
* WriteCompleteWithCancelledRuntimeState -> not relevant, BufferPool
  doesn't reference RuntimeState.
* MultipleClients* -> we have many tests for the (very different)
  reservation mechanism
* ClientOversubscription -> oversubscription is not supported
* CreateDestroyMulti -> we don't support creation/destruction of
  buffer pools like this
* AllocationErrorHandling -> redundant with WriteErrorBlacklist

Change-Id: Ifb0221e8bea6f3b23b62d5094634d97562295ea3
---
M be/src/runtime/bufferpool/buffer-allocator.h
M be/src/runtime/bufferpool/buffer-pool-internal.h
M be/src/runtime/bufferpool/buffer-pool-test.cc
M be/src/runtime/bufferpool/buffer-pool.cc
M be/src/runtime/bufferpool/buffer-pool.h
5 files changed, 819 insertions(+), 7 deletions(-)


  git pull ssh://gerrit.cloudera.org:29418/Impala-ASF refs/changes/98/6498/2
-- 
To view, visit http://gerrit.cloudera.org:8080/6498
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings

Gerrit-MessageType: newpatchset
Gerrit-Change-Id: Ifb0221e8bea6f3b23b62d5094634d97562295ea3
Gerrit-PatchSet: 2
Gerrit-Project: Impala-ASF
Gerrit-Branch: master
Gerrit-Owner: Tim Armstrong 


[Impala-ASF-CR] Port BufferedBlockMgr tests to buffer pool

2017-03-28 Thread Tim Armstrong (Code Review)
Tim Armstrong has uploaded a new change for review.

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

Change subject: Port BufferedBlockMgr tests to buffer pool
..

Port BufferedBlockMgr tests to buffer pool

BufferedBlockMgr had a number of interesting backend tests
that are still relevant to BufferPool. This commit copies
them across and adapts them to BufferPool. This should bring
the backend test coverage for BufferPool up to par with
BufferedBlockMgr.

Many tests weren't ported because they are not relevant or would
duplicate other tests:
* GetNewBlock* -> covered by PageCreation/BufferAllocation
* Pin -> covered by Pin
* Deletion/DeleteSingleBlocks -> all BufferPool tests cover deletion
* Close -> BufferPool doesn't have "cancellation"
* TransferBufferDuringWrite -> the API being tested is not present. Some
   of the deletion tests are the closest analogue.
* WriteCompleteWithCancelledRuntimeState -> not relevant, BufferPool
  doesn't reference RuntimeState.
* MultipleClients* -> we have many tests for the (very different)
  reservation mechanism
* ClientOversubscription -> oversubscription is not supported
* CreateDestroyMulti -> we don't support creation/destruction of
  buffer pools like this
* AllocationErrorHandling -> redundant with WriteErrorBlacklist

Change-Id: Ifb0221e8bea6f3b23b62d5094634d97562295ea3
---
M be/src/runtime/bufferpool/buffer-allocator.h
M be/src/runtime/bufferpool/buffer-pool-internal.h
M be/src/runtime/bufferpool/buffer-pool-test.cc
M be/src/runtime/bufferpool/buffer-pool.cc
M be/src/runtime/bufferpool/buffer-pool.h
5 files changed, 819 insertions(+), 7 deletions(-)


  git pull ssh://gerrit.cloudera.org:29418/Impala-ASF refs/changes/98/6498/1
-- 
To view, visit http://gerrit.cloudera.org:8080/6498
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: Ifb0221e8bea6f3b23b62d5094634d97562295ea3
Gerrit-PatchSet: 1
Gerrit-Project: Impala-ASF
Gerrit-Branch: master
Gerrit-Owner: Tim Armstrong 


[Impala-ASF-CR] IMPALA-3203: Part 2: per-core free lists in buffer pool

2017-03-28 Thread Tim Armstrong (Code Review)
Tim Armstrong has uploaded a new patch set (#14).

Change subject: IMPALA-3203: Part 2: per-core free lists in buffer pool
..

IMPALA-3203: Part 2: per-core free lists in buffer pool

Add per-core lists of clean pages and free pages to enable allocation
of buffers without contention on shared locks in the common case.

This is implemented with an additional layer of abstraction in
"BufferAllocator", which tracks all memory (free buffers and clean
pages) that is not in use but has not been released to the OS.
The old BufferAllocator is renamed to SystemAllocator.

See "Spilled Page Mgmt" and "MMap Allocator & Scalable Free Lists" in
https://goo.gl/0zuy97 for a high-level summary of how this fits into
the buffer pool design.

The guts of the new code is BufferAllocator::AllocateInternal(),
which progresses through several strategies for allocating memory.

Misc changes:
* Enforce upper limit on buffer size to reduce the number of free lists
  required.
* Add additional allocation counters.
* Slightly reorganise the MemTracker GC functions to use lambdas and
  clarify the order in which they should be called. Also adds a target
  memory value so that they don't need to free *all* of the memory in
  the system.
* Fix an accounting bug in the buffer pool where it didn't
  evict dirty pages before reclaiming a clean page.

Performance:
We will need to validate the performance of the system under high query
concurrency before this is used as part of query execution. The benchmark
in Part 1 provided some evidence that this approach of a list per core
should scale well to many cores.

Testing:
Added buffer-allocator-test to test the free list resizing algorithm
directly.

Added a test to buffer-pool-test to exercise the various new memory
reclamation code paths that are now possible. Also run buffer-pool-test
under two different faked-out NUMA setups - one with no NUMA and another
with three NUMA nodes.

buffer-pool-test, suballocator-test, and buffered-tuple-stream-v2-test
provide some further basic coverage. Future system and unit tests will
validate this further before it is used for query execution (see
IMPALA-3200).

Ran an initial version of IMPALA-4114, the ported BufferedBlockMgr
tests, against this. The randomised stress test revealed some accounting
bugs which are fixed. I'll post those tests as a follow-on patch.

Change-Id: I612bd1cd0f0e87f7d8186e5bedd53a22f2d80832
---
M be/src/benchmarks/free-lists-benchmark.cc
M be/src/common/init.cc
M be/src/runtime/bufferpool/CMakeLists.txt
A be/src/runtime/bufferpool/buffer-allocator-test.cc
M be/src/runtime/bufferpool/buffer-allocator.cc
M be/src/runtime/bufferpool/buffer-allocator.h
M be/src/runtime/bufferpool/buffer-pool-counters.h
M be/src/runtime/bufferpool/buffer-pool-internal.h
M be/src/runtime/bufferpool/buffer-pool-test.cc
M be/src/runtime/bufferpool/buffer-pool.cc
M be/src/runtime/bufferpool/buffer-pool.h
M be/src/runtime/bufferpool/free-list-test.cc
M be/src/runtime/bufferpool/free-list.h
M be/src/runtime/bufferpool/suballocator-test.cc
M be/src/runtime/bufferpool/suballocator.h
A be/src/runtime/bufferpool/system-allocator.cc
A be/src/runtime/bufferpool/system-allocator.h
M be/src/runtime/disk-io-mgr.cc
M be/src/runtime/disk-io-mgr.h
M be/src/runtime/exec-env.cc
M be/src/runtime/mem-tracker.cc
M be/src/runtime/mem-tracker.h
A be/src/testutil/cpu-util.h
A be/src/testutil/rand-util.h
M be/src/util/cpu-info.cc
M be/src/util/cpu-info.h
26 files changed, 1,513 insertions(+), 314 deletions(-)


  git pull ssh://gerrit.cloudera.org:29418/Impala-ASF refs/changes/14/6414/14
-- 
To view, visit http://gerrit.cloudera.org:8080/6414
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings

Gerrit-MessageType: newpatchset
Gerrit-Change-Id: I612bd1cd0f0e87f7d8186e5bedd53a22f2d80832
Gerrit-PatchSet: 14
Gerrit-Project: Impala-ASF
Gerrit-Branch: master
Gerrit-Owner: Tim Armstrong 
Gerrit-Reviewer: Dan Hecht 
Gerrit-Reviewer: Taras Bobrovytsky 
Gerrit-Reviewer: Tim Armstrong 


[Impala-ASF-CR] Fix missing declaration of std::max in hdfs-avro-scanner-test

2017-03-28 Thread Henry Robinson (Code Review)
Henry Robinson has posted comments on this change.

Change subject: Fix missing declaration of std::max in hdfs-avro-scanner-test
..


Patch Set 1:

Ping: who wants an easy review? :)

I'm not sure why these issues show up on my KRPC branch (but not in trunk), but 
we should aim to include-what-we-use anyhow.

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

Gerrit-MessageType: comment
Gerrit-Change-Id: Id41c14e98163bcbb03675969e0a53754e92a4c14
Gerrit-PatchSet: 1
Gerrit-Project: Impala-ASF
Gerrit-Branch: master
Gerrit-Owner: Henry Robinson 
Gerrit-Reviewer: Henry Robinson 
Gerrit-HasComments: No


[Impala-ASF-CR] IMPALA-3203: Part 2: per-core free lists in buffer pool

2017-03-28 Thread Tim Armstrong (Code Review)
Tim Armstrong has posted comments on this change.

Change subject: IMPALA-3203: Part 2: per-core free lists in buffer pool
..


Patch Set 13:

(15 comments)

http://gerrit.cloudera.org:8080/#/c/6414/13/be/src/runtime/bufferpool/buffer-allocator.cc
File be/src/runtime/bufferpool/buffer-allocator.cc:

Line 35: static int64_t FREE_LIST_MAX_BYTES = 1024L * 1024L * 1024L;
> how are these chosen?
Pretty arbitrarily, I was just guestimating at what a reasonable upper bound to 
the amount of memory to hold onto was. Potentially we don't need these and 
could just rely on scavenging/maintenance to shrink the lists if they get too 
large.


PS13, Line 94: BufferSize
> PerSizeLists?
Works for me. I struggled to come up with a good name since it's more of a 
grouping of data structures than an abstraction.


http://gerrit.cloudera.org:8080/#/c/6414/13/be/src/runtime/bufferpool/buffer-allocator.h
File be/src/runtime/bufferpool/buffer-allocator.h:

Line 31: /// released to SystemAllocator.
> buffers allocation lengths requested from this class must be a power of 2, 
Done


Line 44: /// system error occurs (e.g. we can't allocate all of the required 
memory from the OS).
> what about allocations beyond the limit? are they guaranteed to fail, or ar
Done


PS13, Line 50: len
> required to be power of 2?
Done


PS13, Line 74: it
> the buffer?
Done


PS13, Line 81: free
> what does that mean? free back to the SystemAllocator?
Tried to clarify. Not sure if the level of detail is appropriate for this 
comment.


PS13, Line 108: 'min_buffer_len'
> hard to imagine what this input means and how it affects the result without
Done


PS13, Line 115: 'len'
> what is that?
Done


PS13, Line 122: The buffers are freed with 'system_allocator_'
> why would memory that comes from 'buffer_bytes_remaining_' need to be freed
That part was confusing. Reworded to make it clearer that there are two 
different strategies to come up with the memory. The code works out simpler to 
implement all the strategies in this method, but I guess it makes the name 
ScavengeBuffers less accurate. I'm not sure what a better alternative mightbe.


PS13, Line 135: we support allocating
> that can be allocated. i.e. i assume it's not just unsupported, it wouldn't
Done


PS13, Line 138: we support allocating.
> same
Done


Line 159:   static const int MAX_SCAVENGE_ATTEMPTS = 3;
> what happens after this number of retries?
elaborated in the comment.


Line 164: };
> how do we (or will we) expose whatever needs to be exposed from this (and b
Most of the perf counters are client-centric, so we will get a lot of info in 
the profiles for debugging query performance.

We'll also get information through the MemTracker hierarchy (you can see 
used/reserved). We have DebugString() here too that dumps out the current state 
of the allocator when an allocation unexpectedly fails.

I have some basic memory metrics (bytes in use, etc) in a follow-on patch that 
also switches to using mmap(). 

It would be easy enough to add more global metrics but it's unclear to me what 
would be actually useful for debugging. E.g. total #/bytes of allocations and 
total #/bytes of buffers released to the system might be marginally useful.


http://gerrit.cloudera.org:8080/#/c/6414/13/be/src/runtime/bufferpool/buffer-pool-counters.h
File be/src/runtime/bufferpool/buffer-pool-counters.h:

Line 28:   /// Amount of time spent trying to allocate a buffer.
> there are multiple levels of "allocate" in the bufferpool subsystem. are th
Done


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

Gerrit-MessageType: comment
Gerrit-Change-Id: I612bd1cd0f0e87f7d8186e5bedd53a22f2d80832
Gerrit-PatchSet: 13
Gerrit-Project: Impala-ASF
Gerrit-Branch: master
Gerrit-Owner: Tim Armstrong 
Gerrit-Reviewer: Dan Hecht 
Gerrit-Reviewer: Taras Bobrovytsky 
Gerrit-Reviewer: Tim Armstrong 
Gerrit-HasComments: Yes


[native-toolchain-CR] IMPALA-4226, IMPALA-4227: bump max threads, handle dwz compressed symbols

2017-03-28 Thread Lars Volker (Code Review)
Lars Volker has submitted this change and it was merged.

Change subject: IMPALA-4226, IMPALA-4227: bump max threads, handle dwz 
compressed symbols
..


IMPALA-4226, IMPALA-4227: bump max threads, handle dwz compressed symbols

IMPALA-4226: Increase the thread count limit in the minidump stack
resolver. The old limit to 4096 is arbitrary and we are hitting it from
time to time.

To test this I ran minidump_stackwalk on a minidump with more than 4096
threads.

IMPALA-4227: Add basic support for dwz dwarf extension
The dwz tool [1] can be used to compress symbols that occur in multiple
object files by moving them into a shared object file. It introduces new
DWARF macros to reference to those symbols.

Breakpad currently does not support those macros, which can lead to
crashes.

This change makes breakpad ignore these symbols. Impala's binaries don't
share symbols so we are not losing functionality with this change.

To test this I ran dump_syms on a binary compiled on CentOS 7, which
uses DWZ for symbol compression.

[1] https://sourceware.org/git/?p=dwz.git;a=summary

Change-Id: I1bf83edd8cda037c31a842801ad1445f3fd4f71e
---
M buildall.sh
A 
source/breakpad/breakpad-88e5b2c8806bac3f2c80d2fe80094be5bd371601-patches/0001-Add-basic-support-for-dwz-dwarf-extension.patch
A 
source/breakpad/breakpad-88e5b2c8806bac3f2c80d2fe80094be5bd371601-patches/0002-Increase-maximum-number-of-threads-for-minidump_stac.patch
3 files changed, 120 insertions(+), 1 deletion(-)

Approvals:
  Lars Volker: Verified
  Tim Armstrong: Looks good to me, approved



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

Gerrit-MessageType: merged
Gerrit-Change-Id: I1bf83edd8cda037c31a842801ad1445f3fd4f71e
Gerrit-PatchSet: 3
Gerrit-Project: native-toolchain
Gerrit-Branch: master
Gerrit-Owner: Lars Volker 
Gerrit-Reviewer: Bharath Vissapragada 
Gerrit-Reviewer: Lars Volker 
Gerrit-Reviewer: Tim Armstrong 


[native-toolchain-CR] IMPALA-4226, IMPALA-4227: bump max threads, handle dwz compressed symbols

2017-03-28 Thread Lars Volker (Code Review)
Lars Volker has posted comments on this change.

Change subject: IMPALA-4226, IMPALA-4227: bump max threads, handle dwz 
compressed symbols
..


Patch Set 3: Verified+1

Verified in a private build.

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

Gerrit-MessageType: comment
Gerrit-Change-Id: I1bf83edd8cda037c31a842801ad1445f3fd4f71e
Gerrit-PatchSet: 3
Gerrit-Project: native-toolchain
Gerrit-Branch: master
Gerrit-Owner: Lars Volker 
Gerrit-Reviewer: Bharath Vissapragada 
Gerrit-Reviewer: Lars Volker 
Gerrit-Reviewer: Tim Armstrong 
Gerrit-HasComments: No


[native-toolchain-CR] Ported native-toolchain to work on ppc64le

2017-03-28 Thread Valencia Edna Serrao (Code Review)
Valencia Edna Serrao has posted comments on this change.

Change subject: Ported native-toolchain to work on ppc64le
..


Patch Set 1:

(16 comments)

> (5 comments)

@Matt: Thanks for your comments. I've incorporated the modifications you asked 
for.


> (11 comments)

@Tim: Thanks for your comments.

> I did a pass over most of it. It would be easier to review with
> some cleanup to avoid duplicating code and make things consistent
> with the style of the rest of the toolchain.
I've aimed to eliminate the duplicated code in most of the places and align it 
to toolchain style with the help of your comments. But in some places, 
especially, using patching mechanism in crcutil and breakpad, I will require to 
add a conditional check for them in buildall.sh. I would like to know if there 
is any better way to do it.

> I'm also reluctant to add patches here that aren't in the upstream
> projects - we're not really equipped to review them.
Yes...I understand your concern w.r.t patches which are not yet upstream. We 
are already communicating with the respective communities to get the patches 
upstreamed.

http://gerrit.cloudera.org:8080/#/c/6468/1/buildall.sh
File buildall.sh:

PS1, Line 270: master
> it would be better to use the same version as below, but just build_fake_pa
Done.


http://gerrit.cloudera.org:8080/#/c/6468/1/source/autoconf/build.sh
File source/autoconf/build.sh:

Line 31: if [[ "$(uname -p)" == "ppc64le" ]]; then
> Can you add a variable to init.sh to hold the architecture instead of repea
Done. I've added a new var 'ARCH_NAME' in init.sh that will be initialized to 
the underlying machine arch.


Line 32:   wrap ./configure \
> No need to wrap lines when they fit in 90 characters
Ok. But this is as it is upstream.


Line 35: else
> The indentation of the if is wrong. Can you fix this here and elsewhere?
Ok. Fixed.


http://gerrit.cloudera.org:8080/#/c/6468/1/source/breakpad/build.sh
File source/breakpad/build.sh:

Line 35:  wrap patch  -p1 < 
$SOURCE_DIR/source/breakpad/breakpad-88e5b2c_ppc.patch
> We already have a mechanism for including patches in the toolchain - see th
Ok. I've been able to successfully use the native-toolchain patching mechanism 
to apply the ppc-patches for breakpad. However, this leads to conditional 
setting of BREAKPAD_VERSION in buildall.sh based on a arch check.


http://gerrit.cloudera.org:8080/#/c/6468/1/source/crcutil/build.sh
File source/crcutil/build.sh:

Line 37: if [[ "$(uname -p)" == "ppc64le" ]]; then
> Indentation
Fixed.


Line 42:   wrap autoreconf -i;
> Why not apply the patch before running autogen.sh above?
The patch is applied on Makefile.am which is generated only after autogen.sh. 
Therefore, cannot apply the patch before autogen.sh. 

I used the native-toolchain patching mechanism here. It works fine for the 
"crc_interface_cc.patch", however, not for the "crc_makefile_am.patch", as the 
required file "Makefile.am" is not available at this point and will be 
generated later when the autogen.sh is executed.

In this case, I might have to use my current approach without using the 
patching mechanism.

Please let me know if there is any other better way to get the Makefile.am 
patch applied.


http://gerrit.cloudera.org:8080/#/c/6468/1/source/crcutil/ppc-patches/crc_interface_cc.patch
File source/crcutil/ppc-patches/crc_interface_cc.patch:

Line 1: --- 
/home/test/crcutil-440ba7babeff77ffad992df3a10c767f184e946e/examples/interface.cc
   2014-05-23 09:31:26.0 +0530
> I don't really understand what this patch does and we don't know enough abo
Since this code is part of the examples section, I have just worked around the 
compilation error. I am yet to fix it appropriately. Once done I’ll surely push 
it upstream.


http://gerrit.cloudera.org:8080/#/c/6468/1/source/cyrus-sasl/build.sh
File source/cyrus-sasl/build.sh:

Line 51: CFLAGS="$CFLAGS -fPIC -DPIC" CXXFLAGS="$CXXFLAGS -fPIC -DPIC" wrap 
./configure \
> Why not just put the additional flag into CONFIGURE_FLAGS above?
Agreed. I've done the change.


http://gerrit.cloudera.org:8080/#/c/6468/1/source/glog/build.sh
File source/glog/build.sh:

Line 37: --build=powerpc64le-unknown-linux-gnu \
> The command is mostly the same. Why not factor out the different flag into 
Yes. I've done the change.


http://gerrit.cloudera.org:8080/#/c/6468/1/source/kudu/build.sh
File source/kudu/build.sh:

Line 68:  
> Can you remove the build changes for now since it sounds like this is still
Ok. Done


PS1, Line 70: git clone https://github.com/ibmsoe/kudu
> The Kudu changes will be merged into upstream Kudu master, right?
Yes. Right.


PS1, Line 121: echo "Installing gcc-4.9.3 to build kudu src code on ppc"
 : source $SOURCE_DIR/source/kudu/setup_gcc493.sh
> why do you need a different version of gcc to build kudu but not for other 
GCC_VERSION in init.sh is set to 4.9.2. This gcc version works perfect for all

[Impala-ASF-CR] IMPALA-4701: make distcc work reliably with clang

2017-03-28 Thread Lars Volker (Code Review)
Lars Volker has posted comments on this change.

Change subject: IMPALA-4701: make distcc work reliably with clang
..


Patch Set 5:

(1 comment)

http://gerrit.cloudera.org:8080/#/c/6493/5/bin/distcc/distcc.sh
File bin/distcc/distcc.sh:

Line 19: 
Would it make sense to add "set -euo pipefail" here?


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

Gerrit-MessageType: comment
Gerrit-Change-Id: I199b245fb14b6c3484b66339a7d4b37d74755af7
Gerrit-PatchSet: 5
Gerrit-Project: Impala-ASF
Gerrit-Branch: master
Gerrit-Owner: Tim Armstrong 
Gerrit-Reviewer: Jim Apple 
Gerrit-Reviewer: Lars Volker 
Gerrit-Reviewer: Tim Armstrong 
Gerrit-HasComments: Yes


[Impala-ASF-CR] IMPALA-4758: (2/2) Impala-side changes to build with latest gutil

2017-03-28 Thread Impala Public Jenkins (Code Review)
Impala Public Jenkins has posted comments on this change.

Change subject: IMPALA-4758: (2/2) Impala-side changes to build with latest 
gutil
..


Patch Set 8: Verified+1

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

Gerrit-MessageType: comment
Gerrit-Change-Id: I4ac21d7d6401f21fcdfdd1132b8f322bfba4bb80
Gerrit-PatchSet: 8
Gerrit-Project: Impala-ASF
Gerrit-Branch: master
Gerrit-Owner: Henry Robinson 
Gerrit-Reviewer: Henry Robinson 
Gerrit-Reviewer: Impala Public Jenkins
Gerrit-Reviewer: Jim Apple 
Gerrit-Reviewer: Tim Armstrong 
Gerrit-HasComments: No