Skip to content

Failed to load table with Dictionary engine when initializing ClickHouse server #10397

@maison2710

Description

@maison2710

Recently, I upgraded ClickHouse from 19.5.3 to 20.4.1 and I got some issue when trying to load table with Dictionary engine during server's start up in version 20.4.1. (It worked fine with 19.5.3)

I defined a Dictionary xml file with name topics_article and put this xml file under /etc/clickhouse-server/config.d/

My table create statement as:
CREATE TABLE intermediate.topics_article (topic_idString,entryString,type String) ENGINE = Dictionary(topics_article)

I also have setting in config.xml as <dictionaries_config>*_dictionary.xml</dictionaries_config>
<dictionaries_lazy_load>true</dictionaries_lazy_load>

However, in version 20.4.1, server can not start successfully during this error:

2020.04.20 18:34:56.575355 [ 191 ] {} <Information> DatabaseOrdinary (intermediate): Total 30 tables and 0 dictionaries.
2020.04.20 18:34:56.639836 [ 218 ] {}<Error> ThreadPool: Exception in ThreadPool(max_threads: 4, max_free_threads: 4, queue_size: 4, shutdown_on_exception: 1).: Code: 36, e.displayText() = DB::Exception: external dictionary 'topics_article' not found: Cannot attach table `intermediate`.`topics_article` from metadata file /var/lib/clickhouse/metadata/intermediate/topics_article.sql from query ATTACH TABLE topics_article (`topic_id` String, `entry` String, `type` String) ENGINE = Dictionary('topics_article'), Stack trace (when copying this message, always include the lines below):

0. Poco::Exception::Exception(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, int) @ 0x105bbe70 in /usr/bin/clickhouse
1. DB::Exception::Exception(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, int) @ 0x8f0c8ad in /usr/bin/clickhouse
2. ? @ 0xcfca6c9 in /usr/bin/clickhouse
3. std::__1::shared_ptr<DB::IExternalLoadable const> DB::ExternalLoader::load<std::__1::shared_ptr<DB::IExternalLoadable const>, void>(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) const @ 0xcfd6cc3 in /usr/bin/clickhouse
4. ? @ 0xd66a9cc in /usr/bin/clickhouse
5. DB::StorageFactory::get(DB::ASTCreateQuery const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, DB::Context&, DB::Context&, DB::ColumnsDescription const&, DB::ConstraintsDescription const&, bool) const @ 0xd68efa0 in /usr/bin/clickhouse
6. DB::createTableFromAST(DB::ASTCreateQuery, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, DB::Context&, bool) @ 0xd1090be in /usr/bin/clickhouse
7. ? @ 0xd0fc36f in /usr/bin/clickhouse
8. ? @ 0xd0fcb52 in /usr/bin/clickhouse
9. ThreadPoolImpl<ThreadFromGlobalPool>::worker(std::__1::__list_iterator<ThreadFromGlobalPool, void*>) @ 0x8f333ab in /usr/bin/clickhouse
10. ThreadFromGlobalPool::ThreadFromGlobalPool<void ThreadPoolImpl<ThreadFromGlobalPool>::scheduleImpl<void>(std::__1::function<void ()>, int, std::__1::optional<unsigned long>)::'lambda1'()>(void&&, void ThreadPoolImpl<ThreadFromGlobalPool>::scheduleImpl<void>(std::__1::function<void ()>, int, std::__1::optional<unsigned long>)::'lambda1'()&&...)::'lambda'()::operator()() const @ 0x8f3417a in /usr/bin/clickhouse
11. ThreadPoolImpl<std::__1::thread>::worker(std::__1::__list_iterator<std::__1::thread, void*>) @ 0x8f3226b in /usr/bin/clickhouse
12. ? @ 0x8f30753 in /usr/bin/clickhouse
13. start_thread @ 0x76db in /lib/x86_64-linux-gnu/libpthread-2.27.so
14. clone @ 0x12188f in /lib/x86_64-linux-gnu/libc-2.27.so
 (version 20.4.1.1 (official build))

Metadata

Metadata

Assignees

Labels

comp-dictionaryDictionaries (in-memory key-value, periodically refreshed from sources).questionQuestion?

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions