Skip to content

The BloomFilter false positive must be a double number between 0 and 1.: Cannot attach table #10551

@qoega

Description

@qoega

Describe the bug
A clear and concise description of what works not as it is supposed to.

How to reproduce

  • master
  1. Previously ClickHouse allowed me to create this table:
    CREATE TABLE mass_table_508 (order_key int, str Array(String), INDEX idx str TYPE bloom_filter(1.01) GRANULARITY 1024) ENGINE = MergeTree() ORDER BY order_key SETTINGS index_granularity = 1024;
  2. After master update I get error:
    cat ./data/metadata/tmp1/mass_table_508.sql
ATTACH TABLE mass_table_508
(
    `order_key` Int32,
    `str` Array(String),
    INDEX idx str TYPE bloom_filter(1.01) GRANULARITY 1024
)
ENGINE = MergeTree()
ORDER BY order_key
SETTINGS index_granularity = 1024

Expected behavior
Probably there is backward incompatibility in 20.4 and server would not start with bad bloom filter config for old tables.
Error message and/or stacktrace

2020.04.28 11:54:09.409466 [ 782475 ] {} <Error> ThreadPool: Exception in ThreadPool(max_threads: 32, max_free_threads: 32, queue_size: 32, shutdown_on_exception: 1).: Code: 36, e.displayText() = DB::Exception: The BloomFilter false positive must be a double number between 0 and 1.: Cannot attach table `tmp1`.`mass_table_508` from metadata file /home/qoega/clickhouse-server/data/metadata/tmp1/mass_table_508.sql from query ATTACH TABLE mass_table_508 (`order_key` Int32, `str` Array(String),  INDEX idx str TYPE bloom_filter(1.01) GRANULARITY 1024) ENGINE = MergeTree() ORDER BY order_key SETTINGS index_granularity = 1024, Stack trace (when copying this message, always include the lines below):

0. /home/qoega/clickhouse/build/../contrib/poco/Foundation/src/Exception.cpp:27: Poco::Exception::Exception(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, int) @ 0xbc561cc in /home/qoega/clickhouse/build/programs/clickhouse
1. /home/qoega/clickhouse/build/../src/Common/Exception.cpp:32: DB::Exception::Exception(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, int) @ 0x4fedd09 in /home/qoega/clickhouse/build/programs/clickhouse
2. /home/qoega/clickhouse/build/../contrib/libcxx/include/string:2134: DB::bloomFilterIndexCreatorNew(DB::NamesAndTypesList const&, std::__1::shared_ptr<DB::ASTIndexDeclaration>, DB::Context const&) (.cold) @ 0x4d439d3 in /home/qoega/clickhouse/build/programs/clickhouse
3. /home/qoega/clickhouse/build/../contrib/libcxx/include/memory:4206: DB::MergeTreeIndexFactory::get(DB::NamesAndTypesList const&, std::__1::shared_ptr<DB::ASTIndexDeclaration>, DB::Context const&) const @ 0x909f9f9 in /home/qoega/clickhouse/build/programs/clickhouse
4. /home/qoega/clickhouse/build/../contrib/libcxx/include/memory:2591: DB::MergeTreeData::setProperties(DB::StorageInMemoryMetadata const&, bool) @ 0x90192e6 in /home/qoega/clickhouse/build/programs/clickhouse
5. /home/qoega/clickhouse/build/../src/Storages/MergeTree/MergeTreeData.cpp:152: DB::MergeTreeData::MergeTreeData(DB::StorageID const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, DB::StorageInMemoryMetadata const&, DB::Context&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, DB::MergeTreeData::MergingParams const&, std::__1::unique_ptr<DB::MergeTreeSettings, std::__1::default_delete<DB::MergeTreeSettings> >, bool, bool, std::__1::function<void (std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)>) @ 0x901be05 in /home/qoega/clickhouse/build/programs/clickhouse
6. /home/qoega/clickhouse/build/../contrib/libcxx/include/memory:2615: DB::StorageMergeTree::StorageMergeTree(DB::StorageID const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, DB::StorageInMemoryMetadata const&, bool, DB::Context&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, DB::MergeTreeData::MergingParams const&, std::__1::unique_ptr<DB::MergeTreeSettings, std::__1::default_delete<DB::MergeTreeSettings> >, bool) @ 0x8eff30b in /home/qoega/clickhouse/build/programs/clickhouse
7. /home/qoega/clickhouse/build/../base/common/../ext/shared_ptr_helper.h:19: DB::create(DB::StorageFactory::Arguments const&) @ 0x915b8e2 in /home/qoega/clickhouse/build/programs/clickhouse
8. /home/qoega/clickhouse/build/../contrib/libcxx/include/functional:1715: std::__1::__function::__func<std::__1::shared_ptr<DB::IStorage> (*)(DB::StorageFactory::Arguments const&), std::__1::allocator<std::__1::shared_ptr<DB::IStorage> (*)(DB::StorageFactory::Arguments const&)>, std::__1::shared_ptr<DB::IStorage> (DB::StorageFactory::Arguments const&)>::operator()(DB::StorageFactory::Arguments const&) @ 0x915cd93 in /home/qoega/clickhouse/build/programs/clickhouse
9. /home/qoega/clickhouse/build/../contrib/libcxx/include/string:2134: 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 @ 0x8ea4299 in /home/qoega/clickhouse/build/programs/clickhouse
10. /home/qoega/clickhouse/build/../contrib/libcxx/include/utility:447: 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) @ 0x9491fff in /home/qoega/clickhouse/build/programs/clickhouse
11. /home/qoega/clickhouse/build/../contrib/libcxx/include/memory:4081: DB::(anonymous namespace)::tryAttachTable(DB::Context&, DB::ASTCreateQuery const&, DB::DatabaseOrdinary&, 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&, bool) @ 0x949b058 in /home/qoega/clickhouse/build/programs/clickhouse
12. /home/qoega/clickhouse/build/../contrib/libcxx/include/string:2134: std::__1::__function::__func<DB::DatabaseOrdinary::loadStoredObjects(DB::Context&, bool)::'lambda0'(), std::__1::allocator<DB::DatabaseOrdinary::loadStoredObjects(DB::Context&, bool)::'lambda0'()>, void ()>::operator()() @ 0x949b9ce in /home/qoega/clickhouse/build/programs/clickhouse
13. /home/qoega/clickhouse/build/../contrib/libcxx/include/atomic:856: ThreadPoolImpl<ThreadFromGlobalPool>::worker(std::__1::__list_iterator<ThreadFromGlobalPool, void*>) @ 0x4ffa1fb in /home/qoega/clickhouse/build/programs/clickhouse
14. /home/qoega/clickhouse/build/../src/Common/ThreadPool.h:159: 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 @ 0x4ffaf56 in /home/qoega/clickhouse/build/programs/clickhouse
15. /home/qoega/clickhouse/build/../contrib/libcxx/include/atomic:856: ThreadPoolImpl<std::__1::thread>::worker(std::__1::__list_iterator<std::__1::thread, void*>) @ 0x4ff90fb in /home/qoega/clickhouse/build/programs/clickhouse
16. /home/qoega/clickhouse/build/../contrib/libcxx/include/memory:2615: void* std::__1::__thread_proxy<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, void ThreadPoolImpl<std::__1::thread>::scheduleImpl<void>(std::__1::function<void ()>, int, std::__1::optional<unsigned long>)::'lambda1'()> >(void*) @ 0x4ff76bf in /home/qoega/clickhouse/build/programs/clickhouse
17. start_thread @ 0x76db in /lib/x86_64-linux-gnu/libpthread-2.27.so
18. /build/glibc-OTsEL5/glibc-2.27/misc/../sysdeps/unix/sysv/linux/x86_64/clone.S:97: __clone @ 0x12188f in /usr/lib/debug/lib/x86_64-linux-gnu/libc-2.27.so
 (version 20.4.1.1)
2020.04.28 11:54:09.409466 [ 782430 ] {} <Error> ThreadPool: Exception in ThreadPool(max_threads: 32, max_free_threads: 32, queue_size: 32, shutdown_on_exception: 1).: Code: 36, e.displayText() = DB::Exception: The BloomFilter false positive must be a double number between 0 and 1.: Cannot attach table `tmp1`.`mass_table_506` from metadata file /home/qoega/clickhouse-server/data/metadata/tmp1/mass_table_506.sql from query ATTACH TABLE mass_table_506 (`order_key` Int32, `i` Array(Int32),  INDEX idx i TYPE bloom_filter(1.01) GRANULARITY 1024) ENGINE = MergeTree() ORDER BY order_key SETTINGS index_granularity = 1024, Stack trace (when copying this message, always include the lines below):

0. /home/qoega/clickhouse/build/../contrib/poco/Foundation/src/Exception.cpp:27: Poco::Exception::Exception(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, int) @ 0xbc561cc in /home/qoega/clickhouse/build/programs/clickhouse
1. /home/qoega/clickhouse/build/../src/Common/Exception.cpp:32: DB::Exception::Exception(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, int) @ 0x4fedd09 in /home/qoega/clickhouse/build/programs/clickhouse
2. /home/qoega/clickhouse/build/../contrib/libcxx/include/string:2134: DB::bloomFilterIndexCreatorNew(DB::NamesAndTypesList const&, std::__1::shared_ptr<DB::ASTIndexDeclaration>, DB::Context const&) (.cold) @ 0x4d439d3 in /home/qoega/clickhouse/build/programs/clickhouse
3. /home/qoega/clickhouse/build/../contrib/libcxx/include/memory:4206: DB::MergeTreeIndexFactory::get(DB::NamesAndTypesList const&, std::__1::shared_ptr<DB::ASTIndexDeclaration>, DB::Context const&) const @ 0x909f9f9 in /home/qoega/clickhouse/build/programs/clickhouse
4. /home/qoega/clickhouse/build/../contrib/libcxx/include/memory:2591: DB::MergeTreeData::setProperties(DB::StorageInMemoryMetadata const&, bool) @ 0x90192e6 in /home/qoega/clickhouse/build/programs/clickhouse
5. /home/qoega/clickhouse/build/../src/Storages/MergeTree/MergeTreeData.cpp:152: DB::MergeTreeData::MergeTreeData(DB::StorageID const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, DB::StorageInMemoryMetadata const&, DB::Context&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, DB::MergeTreeData::MergingParams const&, std::__1::unique_ptr<DB::MergeTreeSettings, std::__1::default_delete<DB::MergeTreeSettings> >, bool, bool, std::__1::function<void (std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)>) @ 0x901be05 in /home/qoega/clickhouse/build/programs/clickhouse
6. /home/qoega/clickhouse/build/../contrib/libcxx/include/memory:2615: DB::StorageMergeTree::StorageMergeTree(DB::StorageID const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, DB::StorageInMemoryMetadata const&, bool, DB::Context&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, DB::MergeTreeData::MergingParams const&, std::__1::unique_ptr<DB::MergeTreeSettings, std::__1::default_delete<DB::MergeTreeSettings> >, bool) @ 0x8eff30b in /home/qoega/clickhouse/build/programs/clickhouse
7. /home/qoega/clickhouse/build/../base/common/../ext/shared_ptr_helper.h:19: DB::create(DB::StorageFactory::Arguments const&) @ 0x915b8e2 in /home/qoega/clickhouse/build/programs/clickhouse
8. /home/qoega/clickhouse/build/../contrib/libcxx/include/functional:1715: std::__1::__function::__func<std::__1::shared_ptr<DB::IStorage> (*)(DB::StorageFactory::Arguments const&), std::__1::allocator<std::__1::shared_ptr<DB::IStorage> (*)(DB::StorageFactory::Arguments const&)>, std::__1::shared_ptr<DB::IStorage> (DB::StorageFactory::Arguments const&)>::operator()(DB::StorageFactory::Arguments const&) @ 0x915cd93 in /home/qoega/clickhouse/build/programs/clickhouse
9. /home/qoega/clickhouse/build/../contrib/libcxx/include/string:2134: 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 @ 0x8ea4299 in /home/qoega/clickhouse/build/programs/clickhouse
10. /home/qoega/clickhouse/build/../contrib/libcxx/include/utility:447: 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) @ 0x9491fff in /home/qoega/clickhouse/build/programs/clickhouse
11. /home/qoega/clickhouse/build/../contrib/libcxx/include/memory:4081: DB::(anonymous namespace)::tryAttachTable(DB::Context&, DB::ASTCreateQuery const&, DB::DatabaseOrdinary&, 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&, bool) @ 0x949b058 in /home/qoega/clickhouse/build/programs/clickhouse
12. /home/qoega/clickhouse/build/../contrib/libcxx/include/string:2134: std::__1::__function::__func<DB::DatabaseOrdinary::loadStoredObjects(DB::Context&, bool)::'lambda0'(), std::__1::allocator<DB::DatabaseOrdinary::loadStoredObjects(DB::Context&, bool)::'lambda0'()>, void ()>::operator()() @ 0x949b9ce in /home/qoega/clickhouse/build/programs/clickhouse
13. /home/qoega/clickhouse/build/../contrib/libcxx/include/atomic:856: ThreadPoolImpl<ThreadFromGlobalPool>::worker(std::__1::__list_iterator<ThreadFromGlobalPool, void*>) @ 0x4ffa1fb in /home/qoega/clickhouse/build/programs/clickhouse
14. /home/qoega/clickhouse/build/../src/Common/ThreadPool.h:159: 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 @ 0x4ffaf56 in /home/qoega/clickhouse/build/programs/clickhouse
15. /home/qoega/clickhouse/build/../contrib/libcxx/include/atomic:856: ThreadPoolImpl<std::__1::thread>::worker(std::__1::__list_iterator<std::__1::thread, void*>) @ 0x4ff90fb in /home/qoega/clickhouse/build/programs/clickhouse
16. /home/qoega/clickhouse/build/../contrib/libcxx/include/memory:2615: void* std::__1::__thread_proxy<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, void ThreadPoolImpl<std::__1::thread>::scheduleImpl<void>(std::__1::function<void ()>, int, std::__1::optional<unsigned long>)::'lambda1'()> >(void*) @ 0x4ff76bf in /home/qoega/clickhouse/build/programs/clickhouse
17. start_thread @ 0x76db in /lib/x86_64-linux-gnu/libpthread-2.27.so
18. /build/glibc-OTsEL5/glibc-2.27/misc/../sysdeps/unix/sysv/linux/x86_64/clone.S:97: __clone @ 0x12188f in /usr/lib/debug/lib/x86_64-linux-gnu/libc-2.27.so
 (version 20.4.1.1)

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugConfirmed user-visible misbehaviour in official release

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions