Я работал над кластером ClickHouse с тремя узлами с таблицей, созданной с помощью ReplicatedMergeTree. Недавно я обновил один из его узлов с версии 18.14.2 до 19.3.7. Однако после обновления мне не удалось установить соединение с обновленным узлом, так как данные не синхронизировались.
Журналы ошибок ClickHouse выглядят следующим образом.
(StorageReplicatedMergeTree): DB::StorageReplicatedMergeTree::queueTask()::<lambda(DB::StorageReplicatedMergeTree::LogEntryPtr&)>: Code: 432, e.displayText() = DB::Exception: Unknown codec family code : 130, Stack trace:
0. clickhouse-server(StackTrace::StackTrace()+0x16) [0x5d9fdf6]
1. clickhouse-server(DB::Exception::Exception(std::string const&, int)+0x1f) [0x2ceb79f]
2. clickhouse-server(DB::CompressionCodecFactory::get(unsigned char) const+0x185) [0x5af35b5]
3. clickhouse-server(DB::CompressedReadBufferBase::readCompressedData(unsigned long&, unsigned long&)+0x911) [0x5af0e31]
4. clickhouse-server(DB::CompressedReadBuffer::nextImpl()+0x26) [0x5aef7b6]
5. clickhouse-server(DB::MergeTreeDataPartChecksums::read_v3(DB::ReadBuffer&)+0x834) [0x5738604]
6. clickhouse-server(DB::MergeTreeDataPartChecksums::read_v4(DB::ReadBuffer&)+0xb2) [0x5738fd2]
7. clickhouse-server(DB::MergeTreeDataPartChecksums::read(DB::ReadBuffer&, unsigned long)+0x28) [0x5739f68]
8. clickhouse-server(DB::MergeTreeDataPartChecksums::read(DB::ReadBuffer&)+0x94) [0x573a114]
9. clickhouse-server(DB::MergeTreeDataPart::loadChecksums(bool)+0x119) [0x572f6b9]
10. clickhouse-server(DB::MergeTreeDataPart::loadColumnsChecksumsIndexes(bool, bool)+0x39) [0x57338a9]
11. clickhouse-server(DB::DataPartsExchange::Fetcher::fetchPart(std::string const&, std::string const&, std::string const&, int, DB::ConnectionTimeouts const&, std::string const&, std::string const&, std::string const&, bool, std::string const&)+0xdde) [0x56d955e]
12. clickhouse-server() [0x567a556]
13. clickhouse-server(DB::StorageReplicatedMergeTree::fetchPart(std::string const&, std::string const&, bool, unsigned long)+0x7a9) [0x569c379]
14. clickhouse-server(DB::StorageReplicatedMergeTree::executeFetch(DB::ReplicatedMergeTreeLogEntry&)+0x999) [0x569ebf9]
15. clickhouse-server(DB::StorageReplicatedMergeTree::executeLogEntry(DB::ReplicatedMergeTreeLogEntry&)+0x9f) [0x56a3c9f]
16. clickhouse-server() [0x56a4610]
17. clickhouse-server(DB::ReplicatedMergeTreeQueue::processEntry(std::function<std::shared_ptr<zkutil::ZooKeeper> ()>, std::shared_ptr<DB::ReplicatedMergeTreeLogEntry>&, std::function<bool (std::shared_ptr<DB::ReplicatedMergeTreeLogEntry>&)>)+0x3e) [0x57aadfe]
18. clickhouse-server(DB::StorageReplicatedMergeTree::queueTask()+0x192) [0x5678b62]
19. clickhouse-server(DB::BackgroundProcessingPool::threadFunction()+0x396) [0x56d3b86]
20. clickhouse-server() [0x56d4484]
21. clickhouse-server(ThreadPoolImpl<std::thread>::worker(std::_List_iterator<std::thread>)+0x199) [0x5da8aa9]
22. clickhouse-server() [0x65ce86f]
23. /lib64/libpthread.so.0(+0x7e25) [0x7fb7b43ffe25]
24. /lib64/libc.so.6(clone+0x6d) [0x7fb7b3c2334d]
Изменить 1:
При обновлении до 19.4.3.11 эта ошибка была исправлена. Однако теперь постоянно появляется следующая ошибка и все еще не удается установить соединение с сервером.
(StorageReplicatedMergeTree): DB :: StorageReplicatedMergeTree :: queueTask () ::: Poco :: Exception. Код: 1000, e.code () = 0, e.displayText () = Нулевой указатель: _pInstance в файле "/home/centos/clickhouse-rpm/rpmbuild/BUILD/ClickHouse-19.4.3.11-stable/contrib/poco/ Util / include / Poco / Util / Application.h ", строка 457
Изменить 2:
Обнаружено, что указанное выше является еще одной ошибкой в ClickHouse v19.4.3.11 - https://github.com/yandex/ClickHouse/issues/5005