Uploaded image for project: 'IMPALA'
  1. IMPALA
  2. IMPALA-10833

Upgrade toolchain to support run kudu client on old version Unix platforms

    XMLWordPrintableJSON

Details

    • Wish
    • Status: Closed
    • Major
    • Resolution: Fixed
    • Impala 4.0.0
    • Impala 4.1.0
    • None
    • None
    • ghx-label-5

    Description

      Kudu client library in Impala 4.0 toolchain was built on Linux 3.17 or later on which Boost use getrandom(2) to generate UUID. When run impala on an older version platform, it could crash when use kudu tables. Below is a coredump stack of impalad:

      #0  0x00007f25eb0ec1f7 in raise () from /lib64/libc.so.6
      #1  0x00007f25eb0ed8e8 in abort () from /lib64/libc.so.6
      #2  0x00007f25eba25475 in __gnu_cxx::__verbose_terminate_handler () at ../../../../gcc-7.5.0/libstdc++-v3/libsupc++/vterminate.cc:95
      #3  0x00007f25eba23236 in __cxxabiv1::__terminate (handler=<optimized out>) at ../../../../gcc-7.5.0/libstdc++-v3/libsupc++/eh_terminate.cc:47
      #4  0x00007f25eba23281 in std::terminate () at ../../../../gcc-7.5.0/libstdc++-v3/libsupc++/eh_terminate.cc:57
      #5  0x00007f25eba234c4 in __cxxabiv1::__cxa_throw (obj=obj@entry=0x4a47ad30, 
          tinfo=tinfo@entry=0x7f25ed44c8f0 <typeinfo for boost::wrapexcept<boost::uuids::entropy_error>>, dest=dest@entry=
          0x7f25ecf926c0 <boost::wrapexcept<boost::uuids::entropy_error>::~wrapexcept()>) at ../../../../gcc-7.5.0/libstdc++-v3/libsupc++/eh_throw.cc:93
      #6  0x00007f25ecfc29f1 in throw_exception<boost::uuids::entropy_error> (loc=..., e=...)
          at /mnt/source/kudu/kudu-b5e7362e69/thirdparty/installed/uninstrumented/include/boost/throw_exception.hpp:171
      #7  get_random_bytes (siz=<optimized out>, buf=<optimized out>, this=<optimized out>)
          at /mnt/source/kudu/kudu-b5e7362e69/thirdparty/installed/uninstrumented/include/boost/uuid/detail/random_provider_getrandom.ipp:55
      #8  operator() (this=<optimized out>) at /mnt/source/kudu/kudu-b5e7362e69/thirdparty/installed/uninstrumented/include/boost/uuid/random_generator.hpp:211
      #9  kudu::ObjectIdGenerator::Next[abi:cxx11]() (this=this@entry=0x7f25ed463c50 <_ZZN4kudu6client10KuduClientC4EvE13oid_generator>)
          at /mnt/source/kudu/kudu-b5e7362e69/src/kudu/util/oid_generator.cc:49
      #10 0x00007f25ecdb9a2b in kudu::client::KuduClient::KuduClient (this=0x42d42dc0) at /mnt/source/kudu/kudu-b5e7362e69/src/kudu/client/client.cc:460
      #11 0x00007f25ecdbf521 in kudu::client::KuduClientBuilder::Build (this=this@entry=0x7f0a548a6170, client=client@entry=0x141d26b0)
          at /mnt/source/kudu/kudu-b5e7362e69/src/kudu/client/client.cc:377
      #12 0x0000000000d6f403 in impala::CreateKuduClient (master_addrs=..., client=client@entry=0x141d26b0) at /data/apache-impala/be/src/exec/kudu-util.cc:100
      

      Because kudu 1.15 forces Boost to use /dev/[u]random for UUID generation(see 274181 and 316f74 for more details), I think it's necessary to upgrade toolchain to pull in newer version of kudu client.

       

      Attachments

        Issue Links

          Activity

            People

              Unassigned Unassigned
              zhangyifan27 YifanZhang
              Votes:
              2 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: