apache / incubator-pegasus

Apache Pegasus - A horizontally scalable, strongly consistent and high-performance key-value store
https://pegasus.apache.org/
Apache License 2.0
1.98k stars 313 forks source link

Error occurred while building rocksdb on the environment where a lower-version zstd is pre-installed #1788

Closed empiredan closed 10 months ago

empiredan commented 10 months ago

Error occurred while building rocksdb -- undefined reference to `ZSTD_compressStream2', as below:

[ 81%] Building CXX object CMakeFiles/rocksdb-shared.dir/utilities/transactions/lock/range/range_tree/range_tree_lock_manager.cc.o
[ 81%] Building CXX object CMakeFiles/rocksdb-shared.dir/utilities/transactions/lock/range/range_tree/range_tree_lock_tracker.cc.o
[ 81%] Building CXX object CMakeFiles/rocksdb.dir/utilities/blob_db/blob_db.cc.o
[ 81%] Building CXX object CMakeFiles/rocksdb-shared.dir/utilities/transactions/optimistic_transaction_db_impl.cc.o
[ 81%] Building CXX object CMakeFiles/rocksdb-shared.dir/utilities/transactions/optimistic_transaction.cc.o
[ 82%] Building CXX object CMakeFiles/rocksdb.dir/utilities/blob_db/blob_db_impl.cc.o
[ 82%] Building CXX object CMakeFiles/rocksdb-shared.dir/utilities/transactions/pessimistic_transaction.cc.o
[ 82%] Building CXX object CMakeFiles/rocksdb-shared.dir/utilities/transactions/pessimistic_transaction_db.cc.o
[ 82%] Building CXX object CMakeFiles/rocksdb-shared.dir/utilities/transactions/snapshot_checker.cc.o
[ 83%] Building CXX object CMakeFiles/rocksdb-shared.dir/utilities/transactions/transaction_base.cc.o
[ 83%] Building CXX object CMakeFiles/rocksdb-shared.dir/utilities/transactions/transaction_db_mutex_impl.cc.o
[ 83%] Building CXX object CMakeFiles/rocksdb-shared.dir/utilities/transactions/transaction_util.cc.o
[ 83%] Building CXX object CMakeFiles/rocksdb.dir/utilities/blob_db/blob_db_impl_filesnapshot.cc.o
[ 83%] Building CXX object CMakeFiles/rocksdb-shared.dir/utilities/transactions/write_prepared_txn.cc.o
[ 83%] Building CXX object CMakeFiles/rocksdb-shared.dir/utilities/transactions/write_prepared_txn_db.cc.o
[ 83%] Building CXX object CMakeFiles/rocksdb-shared.dir/utilities/transactions/write_unprepared_txn.cc.o
[ 83%] Building CXX object CMakeFiles/rocksdb.dir/utilities/blob_db/blob_dump_tool.cc.o
[ 84%] Building CXX object CMakeFiles/rocksdb-shared.dir/utilities/transactions/write_unprepared_txn_db.cc.o
[ 84%] Building CXX object CMakeFiles/rocksdb.dir/utilities/blob_db/blob_file.cc.o
[ 84%] Building CXX object CMakeFiles/rocksdb-shared.dir/utilities/ttl/db_ttl_impl.cc.o
[ 84%] Building CXX object CMakeFiles/rocksdb-shared.dir/utilities/wal_filter.cc.o
[ 84%] Building CXX object CMakeFiles/rocksdb-shared.dir/utilities/write_batch_with_index/write_batch_with_index.cc.o
[ 84%] Building CXX object CMakeFiles/rocksdb-shared.dir/utilities/write_batch_with_index/write_batch_with_index_internal.cc.o
[ 84%] Building CXX object CMakeFiles/rocksdb.dir/utilities/cache_dump_load.cc.o
[ 84%] Building CXX object CMakeFiles/rocksdb.dir/utilities/cache_dump_load_impl.cc.o
[ 84%] Building CXX object CMakeFiles/rocksdb-shared.dir/utilities/transactions/lock/range/range_tree/lib/locktree/concurrent_tree.cc.o
[ 84%] Building CXX object CMakeFiles/rocksdb-shared.dir/utilities/transactions/lock/range/range_tree/lib/locktree/keyrange.cc.o
[ 85%] Building CXX object CMakeFiles/rocksdb-shared.dir/utilities/transactions/lock/range/range_tree/lib/locktree/lock_request.cc.o
[ 85%] Building CXX object CMakeFiles/rocksdb-shared.dir/utilities/transactions/lock/range/range_tree/lib/locktree/locktree.cc.o
[ 85%] Building CXX object CMakeFiles/rocksdb-shared.dir/utilities/transactions/lock/range/range_tree/lib/locktree/manager.cc.o
[ 85%] Building CXX object CMakeFiles/rocksdb-shared.dir/utilities/transactions/lock/range/range_tree/lib/locktree/range_buffer.cc.o
[ 85%] Building CXX object CMakeFiles/rocksdb-shared.dir/utilities/transactions/lock/range/range_tree/lib/locktree/treenode.cc.o
[ 85%] Building CXX object CMakeFiles/rocksdb-shared.dir/utilities/transactions/lock/range/range_tree/lib/locktree/txnid_set.cc.o
[ 85%] Building CXX object CMakeFiles/rocksdb.dir/utilities/cassandra/cassandra_compaction_filter.cc.o
[ 85%] Building CXX object CMakeFiles/rocksdb-shared.dir/utilities/transactions/lock/range/range_tree/lib/locktree/wfg.cc.o
[ 86%] Building CXX object CMakeFiles/rocksdb-shared.dir/utilities/transactions/lock/range/range_tree/lib/standalone_port.cc.o
[ 86%] Building CXX object CMakeFiles/rocksdb-shared.dir/utilities/transactions/lock/range/range_tree/lib/util/dbt.cc.o
[ 86%] Building CXX object CMakeFiles/rocksdb-shared.dir/utilities/transactions/lock/range/range_tree/lib/util/memarena.cc.o
[ 86%] Building CXX object CMakeFiles/rocksdb-shared.dir/plugin/encfs/encfs.cc.o
[ 86%] Building CXX object CMakeFiles/rocksdb-shared.dir/port/port_posix.cc.o
[ 86%] Building CXX object CMakeFiles/rocksdb-shared.dir/env/env_posix.cc.o
[ 86%] Building CXX object CMakeFiles/rocksdb-shared.dir/env/fs_posix.cc.o
[ 87%] Building CXX object CMakeFiles/rocksdb.dir/utilities/cassandra/format.cc.o
[ 88%] Building CXX object CMakeFiles/rocksdb-shared.dir/env/io_posix.cc.o
[ 88%] Building CXX object CMakeFiles/rocksdb.dir/utilities/cassandra/merge_operator.cc.o
[ 88%] Building CXX object CMakeFiles/rocksdb-shared.dir/build_version.cc.o
[ 88%] Building CXX object CMakeFiles/rocksdb.dir/utilities/checkpoint/checkpoint_impl.cc.o
[ 88%] Building CXX object CMakeFiles/rocksdb.dir/utilities/compaction_filters.cc.o
[ 88%] Building CXX object CMakeFiles/rocksdb.dir/utilities/compaction_filters/remove_emptyvalue_compactionfilter.cc.o
[ 88%] Building CXX object CMakeFiles/rocksdb.dir/utilities/counted_fs.cc.o
[ 88%] Linking CXX shared library librocksdb.so
[ 88%] Building CXX object CMakeFiles/rocksdb.dir/utilities/debug.cc.o
[ 88%] Built target rocksdb-shared
[ 88%] Building CXX object CMakeFiles/block_cache_trace_analyzer.dir/tools/block_cache_analyzer/block_cache_trace_analyzer_tool.cc.o
[ 88%] Linking CXX executable block_cache_trace_analyzer
librocksdb.so.8.5.3: undefined reference to `ZSTD_compressStream2'
collect2: error: ld returned 1 exit status
make[5]: *** [block_cache_trace_analyzer] Error 1
make[4]: *** [CMakeFiles/block_cache_trace_analyzer.dir/all] Error 2
make[4]: *** Waiting for unfinished jobs....

......

[ 99%] Linking CXX static library librocksdb.a
[ 99%] Built target rocksdb
make[3]: *** [all] Error 2
make[2]: *** [Stamp/rocksdb/rocksdb-build] Error 2
make[1]: *** [CMakeFiles/rocksdb.dir/all] Error 2
make: *** [all] Error 2

It was found that instead of zstd that was installed by the third-party package, pre-installed /lib/libzstd.so with lower version was used to build rocksdb, leading to undefined reference to `ZSTD_compressStream2':

-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /opt/rh/devtoolset-7/root/usr/bin/g++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /opt/rh/devtoolset-7/root/usr/bin/gcc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Found lz4: /lib64/liblz4.so
-- Found zstd: /lib/libzstd.so
-- Performing Test HAVE_OMIT_LEAF_FRAME_POINTER
-- Performing Test HAVE_OMIT_LEAF_FRAME_POINTER - Success
-- Performing Test BUILTIN_ATOMIC
-- Performing Test BUILTIN_ATOMIC - Success
-- Could NOT find uring (missing: uring_LIBRARIES uring_INCLUDE_DIR)
-- Enabling RTTI in all builds
-- Performing Test HAVE_FALLOCATE
-- Performing Test HAVE_FALLOCATE - Success
-- Performing Test HAVE_SYNC_FILE_RANGE_WRITE
-- Performing Test HAVE_SYNC_FILE_RANGE_WRITE - Success
-- Performing Test HAVE_PTHREAD_MUTEX_ADAPTIVE_NP
-- Performing Test HAVE_PTHREAD_MUTEX_ADAPTIVE_NP - Success
-- Looking for malloc_usable_size
empiredan commented 10 months ago

This issue has been resolved by https://github.com/apache/incubator-pegasus/pull/1777.