Jim Apple has uploaded a new change for review.

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

Change subject: IMPALA-5031: Suppress noisy UBSAN errors from Thrift.
......................................................................

IMPALA-5031: Suppress noisy UBSAN errors from Thrift.

This suppresses a Thrift undefined behavior error in which a negative
value is left-shifted. See THRIFT-2026 for tracking.

One example backtrace from the exr-test backend test:

    /thrift/protocol/TCompactProtocol.tcc:375:13: runtime error: left shift of 
negative value -1
    #0 0x2b02fe247996 in 
apache::thrift::protocol::TCompactProtocolT<apache::thrift::transport::TMemoryBuffer>::i64ToZigzag(long)
 /thrift/protocol/TCompactProtocol.tcc:375:13
    #1 0x2b02fe247674 in 
apache::thrift::protocol::TCompactProtocolT<apache::thrift::transport::TMemoryBuffer>::writeI64(long)
 /thrift/protocol/TCompactProtocol.tcc:242:24
    #2 0x2b02fe239504 in 
apache::thrift::protocol::TVirtualProtocol<apache::thrift::protocol::TCompactProtocolT<apache::thrift::transport::TMemoryBuffer>,
 apache::thrift::protocol::TProtocolDefaults>::writeI64_virt(long) 
/thrift/protocol/TVirtualProtocol.h:409:12
    #3 0x2b03014a3a06 in apache::thrift::protocol::TProtocol::writeI64(long) 
/thrift/protocol/TProtocol.h:453:12
    #4 0x2b0301d55c02 in 
impala::TRuntimeProfileNode::write(apache::thrift::protocol::TProtocol*) const 
/generated-sources/gen-cpp/RuntimeProfile_types.cpp:827:11
    #5 0x2b0301d59e34 in 
impala::TRuntimeProfileTree::write(apache::thrift::protocol::TProtocol*) const 
/generated-sources/gen-cpp/RuntimeProfile_types.cpp:1017:15
    #6 0x2b02f6f8c7be in impala::Status 
impala::ThriftSerializer::Serialize<impala::TRuntimeProfileTree>(impala::TRuntimeProfileTree*,
 unsigned int*, unsigned char**) /src/rpc/thrift-util.h:67:7
    #7 0x2b02f6f0d23e in impala::Status 
impala::ThriftSerializer::Serialize<impala::TRuntimeProfileTree>(impala::TRuntimeProfileTree*,
 std::vector<unsigned char, std::allocator<unsigned char> >*) 
/src/rpc/thrift-util.h:54:31
    #8 0x2b02f6eec934 in 
impala::RuntimeProfile::SerializeToArchiveString(std::basic_stringstream<char, 
std::char_traits<char>, std::allocator<char> >*) const 
/src/util/runtime-profile.cc:727:19
    #9 0x2b02f6eec640 in impala::RuntimeProfile::SerializeToArchiveString() 
const /src/util/runtime-profile.cc:718:3
    #10 0x2b02feda626c in 
impala::ImpalaServer::ArchiveQuery(impala::ImpalaServer::QueryExecState const&) 
/src/service/impala-server.cc:671:39
    #11 0x2b02fedb57b0 in 
impala::ImpalaServer::UnregisterQuery(impala::TUniqueId const&, bool, 
impala::Status const*) /src/service/impala-server.cc:972:3
    #12 0x2b02ff15b666 in impala::ImpalaServer::close(beeswax::QueryHandle 
const&) /src/service/impala-beeswax-server.cc:236:29
    #13 0x2b030177dc14 in beeswax::BeeswaxServiceProcessor::process_close(int, 
apache::thrift::protocol::TProtocol*, apache::thrift::protocol::TProtocol*, 
void*) /generated-sources/gen-cpp/BeeswaxService.cpp:3543:5
    #14 0x2b0301763825 in 
beeswax::BeeswaxServiceProcessor::dispatchCall(apache::thrift::protocol::TProtocol*,
 apache::thrift::protocol::TProtocol*, std::string const&, int, void*) 
/generated-sources/gen-cpp/BeeswaxService.cpp:2952:3
    #15 0x2b03016bc2d6 in 
impala::ImpalaServiceProcessor::dispatchCall(apache::thrift::protocol::TProtocol*,
 apache::thrift::protocol::TProtocol*, std::string const&, int, void*) 
/generated-sources/gen-cpp/ImpalaService.cpp:1673:12
    #16 0x2b02f650138e in 
apache::thrift::TDispatchProcessor::process(boost::shared_ptr<apache::thrift::protocol::TProtocol>,
 boost::shared_ptr<apache::thrift::protocol::TProtocol>, void*) 
/thrift/TDispatchProcessor.h:121:12
    #17 0x1d4080a in apache::thrift::server::TThreadPoolServer::Task::run() 
(/build/debug/exprs/expr-test+0x1d4080a)
    #18 0x1d23e38 in apache::thrift::concurrency::ThreadManager::Worker::run() 
(/build/debug/exprs/expr-test+0x1d23e38)
    #19 0x2b02fe2be520 in 
impala::ThriftThread::RunRunnable(boost::shared_ptr<apache::thrift::concurrency::Runnable>,
 impala::Promise<unsigned long>*) /src/rpc/thrift-thread.cc:64:3
    #20 0x2b02fe2c4c6b in boost::_mfi::mf2<void, impala::ThriftThread, 
boost::shared_ptr<apache::thrift::concurrency::Runnable>, 
impala::Promise<unsigned long>*>::operator()(impala::ThriftThread*, 
boost::shared_ptr<apache::thrift::concurrency::Runnable>, 
impala::Promise<unsigned long>*) const /boost/bind/mem_fn_template.hpp:280:16
    #21 0x2b02fe2c498a in void 
boost::_bi::list3<boost::_bi::value<impala::ThriftThread*>, 
boost::_bi::value<boost::shared_ptr<apache::thrift::concurrency::Runnable> >, 
boost::_bi::value<impala::Promise<unsigned long>*> 
>::operator()<boost::_mfi::mf2<void, impala::ThriftThread, 
boost::shared_ptr<apache::thrift::concurrency::Runnable>, 
impala::Promise<unsigned long>*>, boost::_bi::list0>(boost::_bi::type<void>, 
boost::_mfi::mf2<void, impala::ThriftThread, 
boost::shared_ptr<apache::thrift::concurrency::Runnable>, 
impala::Promise<unsigned long>*>&, boost::_bi::list0&, int) 
/boost/bind/bind.hpp:392:9
    #22 0x2b02fe2c444b in boost::_bi::bind_t<void, boost::_mfi::mf2<void, 
impala::ThriftThread, boost::shared_ptr<apache::thrift::concurrency::Runnable>, 
impala::Promise<unsigned long>*>, 
boost::_bi::list3<boost::_bi::value<impala::ThriftThread*>, 
boost::_bi::value<boost::shared_ptr<apache::thrift::concurrency::Runnable> >, 
boost::_bi::value<impala::Promise<unsigned long>*> > >::operator()() 
/boost/bind/bind_template.hpp:20:16
    #23 0x2b02fe2c3709 in 
boost::detail::function::void_function_obj_invoker0<boost::_bi::bind_t<void, 
boost::_mfi::mf2<void, impala::ThriftThread, 
boost::shared_ptr<apache::thrift::concurrency::Runnable>, 
impala::Promise<unsigned long>*>, 
boost::_bi::list3<boost::_bi::value<impala::ThriftThread*>, 
boost::_bi::value<boost::shared_ptr<apache::thrift::concurrency::Runnable> >, 
boost::_bi::value<impala::Promise<unsigned long>*> > >, 
void>::invoke(boost::detail::function::function_buffer&) 
/boost/function/function_template.hpp:153:11
    #24 0x2b02f70085d4 in boost::function0<void>::operator()() const 
/boost/function/function_template.hpp:766:14
    #25 0x2b02f6ff9710 in impala::Thread::SuperviseThread(std::string const&, 
std::string const&, boost::function<void ()>, impala::Promise<long>*) 
/src/util/thread.cc:325:3
    #26 0x2b02f7021783 in void 
boost::_bi::list4<boost::_bi::value<std::string>, 
boost::_bi::value<std::string>, boost::_bi::value<boost::function<void ()> >, 
boost::_bi::value<impala::Promise<long>*> >::operator()<void (*)(std::string 
const&, std::string const&, boost::function<void ()>, impala::Promise<long>*), 
boost::_bi::list0>(boost::_bi::type<void>, void (*&)(std::string const&, 
std::string const&, boost::function<void ()>, impala::Promise<long>*), 
boost::_bi::list0&, int) /boost/bind/bind.hpp:457:9
    #27 0x2b02f70210ab in boost::_bi::bind_t<void, void (*)(std::string const&, 
std::string const&, boost::function<void ()>, impala::Promise<long>*), 
boost::_bi::list4<boost::_bi::value<std::string>, 
boost::_bi::value<std::string>, boost::_bi::value<boost::function<void ()> >, 
boost::_bi::value<impala::Promise<long>*> > >::operator()() 
/boost/bind/bind_template.hpp:20:16
    #28 0x2b02f701faf5 in boost::detail::thread_data<boost::_bi::bind_t<void, 
void (*)(std::string const&, std::string const&, boost::function<void ()>, 
impala::Promise<long>*), boost::_bi::list4<boost::_bi::value<std::string>, 
boost::_bi::value<std::string>, boost::_bi::value<boost::function<void ()> >, 
boost::_bi::value<impala::Promise<long>*> > > >::run() 
/boost/thread/detail/thread.hpp:116:17
    #29 0xfaa189 in thread_proxy (/build/debug/exprs/expr-test+0xfaa189)
    #30 0x2b0305c5e183 in start_thread 
(/lib/x86_64-linux-gnu/libpthread.so.0+0x8183)
    #31 0x2b0305f6e37c in clone (/lib/x86_64-linux-gnu/libc.so.6+0xfa37c)

Change-Id: I74ece2157048e8cd24c2536c0a292d9c21f719b9
---
M bin/ubsan-suppressions.txt
1 file changed, 4 insertions(+), 0 deletions(-)


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

Gerrit-MessageType: newchange
Gerrit-Change-Id: I74ece2157048e8cd24c2536c0a292d9c21f719b9
Gerrit-PatchSet: 1
Gerrit-Project: Impala-ASF
Gerrit-Branch: master
Gerrit-Owner: Jim Apple <[email protected]>

Reply via email to