Greetings all.

I have update the Impala codebase to the latest using "git pull cdh5-trunk 
origin".
And then run "make clean;" to clean up the pre-built binaries.
Finally I run the make_release.sh to build Impala in release mode.

When I ran the benchmarks in the Impala/be/build/release/benchmarks directory, 
many benchmarks came across the "segment fault" error. For example:
root@debian:~/Impala/be/build/release/benchmarks# ./ atod-benchmark
Segmentation fault

The following are gdb message:
Gdb atod-benchmark
(gdb) where
#0  0x00007ffff65bebb9 in KuduNotSupported() () from 
/root/Impala/toolchain/kudu-0.8.0-RC1/release/lib64/libkudu_client.so.0
#1  0x00007ffff65bfef5 in char* std::string::_S_construct<char*>(char*, char*, 
std::allocator<char> const&, std::forward_iterator_tag) ()
   from /root/Impala/toolchain/kudu-0.8.0-RC1/release/lib64/libkudu_client.so.0
#2  0x00007ffff56d6841 in _S_construct_aux<char*> (__a=..., __end=<optimized 
out>, __beg=<optimized out>)
    at 
/data/jenkins/workspace/verify-impala-toolchain-package-build/label/unittest-ec2-pkg-debian-8/toolchain/source/gcc/build/x86_64-unknown-linux-gnu/libstdc++-v3/include/bits/basic_string.h:1743
#3  _S_construct<char*> (__a=..., __end=<optimized out>, __beg=<optimized out>)
    at 
/data/jenkins/workspace/verify-impala-toolchain-package-build/label/unittest-ec2-pkg-debian-8/toolchain/source/gcc/build/x86_64-unknown-linux-gnu/libstdc++-v3/include/bits/basic_string.h:1764
#4  std::basic_string<char, std::char_traits<char>, std::allocator<char> 
>::basic_string (this=0x7fffffff7e00, __str=..., __pos=<optimized out>, 
__n=<optimized out>)
    at 
/data/jenkins/workspace/verify-impala-toolchain-package-build/label/unittest-ec2-pkg-debian-8/toolchain/source/gcc/build/x86_64-unknown-linux-gnu/libstdc++-v3/include/bits/basic_string.tcc:189
#5  0x0000000000424bf1 in substr (__n=9, __pos=0, this=0x7fffffff7da0) at 
/root/Impala/toolchain/gcc-4.9.2/include/c++/4.9.2/bits/basic_string.h:2227
#6  impala::CpuInfo::Init () at /root/Impala/be/src/util/cpu-info.cc:98
#7  0x000000000041b91e in main (argc=<optimized out>, argv=<optimized out>) at 
/root/Impala/be/src/benchmarks/atod-benchmark.cc:90

As well as the valgrind message:
root@debian:~/Impala/be/build/release/benchmarks# valgrind atod-benchmark
==19445== Memcheck, a memory error detector
==19445== Copyright (C) 2002-2013, and GNU GPL'd, by Julian Seward et al.
==19445== Using Valgrind-3.10.0 and LibVEX; rerun with -h for copyright info
==19445== Command: atod-benchmark
==19445==
==19445== Invalid write of size 1
==19445==    at 0x6456BB9: KuduNotSupported() (in 
/root/Impala/toolchain/kudu-0.8.0-RC1/release/lib64/libkudu_client.so.0.1.0)
==19445==    by 0x6457EF4: char* std::string::_S_construct<char*>(char*, char*, 
std::allocator<char> const&, std::forward_iterator_tag) (in 
/root/Impala/toolchain/kudu-0.8.0-RC1/release/lib64/libkudu_client.so.0.1.0)
==19445==    by 0x73AF840: _S_construct_aux<char*> (basic_string.h:1743)
==19445==    by 0x73AF840: _S_construct<char*> (basic_string.h:1764)
==19445==    by 0x73AF840: std::basic_string<char, std::char_traits<char>, 
std::allocator<char> >::basic_string(std::string const&, unsigned long, 
unsigned long) (basic_string.tcc:189)
==19445==    by 0x424BF0: substr (basic_string.h:2227)
==19445==    by 0x424BF0: impala::CpuInfo::Init() (cpu-info.cc:98)
==19445==    by 0x41B91D: main (atod-benchmark.cc:90)
==19445==  Address 0x0 is not stack'd, malloc'd or (recently) free'd
==19445==
==19445==
==19445== Process terminating with default action of signal 11 (SIGSEGV)
==19445==  Access not within mapped region at address 0x0
==19445==    at 0x6456BB9: KuduNotSupported() (in 
/root/Impala/toolchain/kudu-0.8.0-RC1/release/lib64/libkudu_client.so.0.1.0)
==19445==    by 0x6457EF4: char* std::string::_S_construct<char*>(char*, char*, 
std::allocator<char> const&, std::forward_iterator_tag) (in 
/root/Impala/toolchain/kudu-0.8.0-RC1/release/lib64/libkudu_client.so.0.1.0)
==19445==    by 0x73AF840: _S_construct_aux<char*> (basic_string.h:1743)
==19445==    by 0x73AF840: _S_construct<char*> (basic_string.h:1764)
==19445==    by 0x73AF840: std::basic_string<char, std::char_traits<char>, 
std::allocator<char> >::basic_string(std::string const&, unsigned long, 
unsigned long) (basic_string.tcc:189)
==19445==    by 0x424BF0: substr (basic_string.h:2227)
==19445==    by 0x424BF0: impala::CpuInfo::Init() (cpu-info.cc:98)
==19445==    by 0x41B91D: main (atod-benchmark.cc:90)
==19445==  If you believe this happened as a result of a stack
==19445==  overflow in your program's main thread (unlikely but
==19445==  possible), you can try to increase the size of the
==19445==  main thread stack using the --main-stacksize= flag.
==19445==  The main thread stack size used in this run was 8388608.
==19445==
==19445== HEAP SUMMARY:
==19445==     in use at exit: 0 bytes in 0 blocks
==19445==   total heap usage: 0 allocs, 0 frees, 0 bytes allocated
==19445==
==19445== All heap blocks were freed -- no leaks are possible
==19445==
==19445== For counts of detected and suppressed errors, rerun with: -v
==19445== ERROR SUMMARY: 1 errors from 1 contexts (suppressed: 0 from 0)
Segmentation fault

Here are some more information:
1. Corresponding code line is located in: Impala/be/src/util/cpu-info.cc:98
name = line.substr(0, colon - 1);

2. My environment configuration:
CPU: Intel(R) Core(TM) i5-4460  CPU @ 3.20GHz (4 cores)
OS: Linux debian 4.3.0 #2 SMP Tue Nov 24 20:22:57 EST 2015 x86_64 GNU/Linux
Compiler: gcc version 4.9.2 (Debian 4.9.2-10)

3. If we build such benchmarks in debug mode (make_debug.sh), everything runs 
perfectly without such "Segment fault" error.


Thanks for taking time reading this letter.
Any idea or help is greatly appreciated.



Reply via email to