You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues-all@impala.apache.org by "Joe McDonnell (Jira)" <ji...@apache.org> on 2020/03/19 03:41:00 UTC

[jira] [Created] (IMPALA-9533) Replace boost::atomic usages with std::atomic in LIRSCache

Joe McDonnell created IMPALA-9533:
-------------------------------------

             Summary: Replace boost::atomic usages with std::atomic in LIRSCache
                 Key: IMPALA-9533
                 URL: https://issues.apache.org/jira/browse/IMPALA-9533
             Project: IMPALA
          Issue Type: Improvement
          Components: Backend
    Affects Versions: Impala 4.0
            Reporter: Joe McDonnell


The fix adding LIRSCache for IMPALA-8690 does compare and swap atomic operations with a 32-bit struct as the datatype. When using std::atomic, this fails to build with "buildall.sh -ubsan -so -skiptests". It fails when trying to link:
{noformat}
make[1]: *** [be/src/benchmarks/CMakeFiles/date-benchmark.dir/all] Error 2
../../build/debug/util/cache/libUtilCache.so: error: undefined reference to '__c11_atomic_compare_exchange_weak'
../../build/debug/util/cache/libUtilCache.so: error: undefined reference to '__c11_atomic_store'
../../build/debug/util/cache/libUtilCache.so: error: undefined reference to '__c11_atomic_is_lock_free'
../../build/debug/util/cache/libUtilCache.so: error: undefined reference to '__c11_atomic_load'
../../build/debug/util/cache/libUtilCache.so: error: undefined reference to '__c11_atomic_compare_exchange_strong'
../../build/debug/util/cache/libUtilCache.so: error: undefined reference to '__c11_atomic_exchange'
../../build/debug/util/cache/libUtilCache.so: error: undefined reference to '__c11_atomic_fetch_add'
../../build/debug/util/cache/libUtilCache.so: error: undefined reference to '__c11_atomic_fetch_sub'
../../build/debug/util/cache/libUtilCache.so: error: undefined reference to '__c11_atomic_fetch_and'
../../build/debug/util/cache/libUtilCache.so: error: undefined reference to '__c11_atomic_fetch_or'
../../build/debug/util/cache/libUtilCache.so: error: undefined reference to '__c11_atomic_fetch_xor'{noformat}
This only fails with that specific build configuration. UBSAN with static linking works. The thing that is unique about UBSAN is that it uses LLVM's compiler-rt:

[https://github.com/apache/impala/blob/ded55d696acaaf2b87227f7f23b7fb799a80e872/be/CMakeLists.txt#L124]

Since boost atomic is header-only, it works fine in this case and provides the same functionality, but it would be nice to avoid it if possible.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

---------------------------------------------------------------------
To unsubscribe, e-mail: issues-all-unsubscribe@impala.apache.org
For additional commands, e-mail: issues-all-help@impala.apache.org