-
Notifications
You must be signed in to change notification settings - Fork 8.3k
Logical error: 'check_in_range(result_exact_range, BoolMask::consider_only_can_be_false) == BoolMask(true, false)'. #80742
Copy link
Copy link
Labels
bugConfirmed user-visible misbehaviour in official releaseConfirmed user-visible misbehaviour in official releasefuzzProblem found by one of the fuzzersProblem found by one of the fuzzers
Description
Describe the bug
Failed assertion with UInt128 primary key and UInt256 constant. I didn't check whether it can lead to user facing bug.
How to reproduce
DROP TABLE IF EXISTS t_primary_index_cache__fuzz_37;
CREATE TABLE t_primary_index_cache__fuzz_37 (`a` UInt128, `b` UInt64)
ENGINE = MergeTree PARTITION BY a % 2 ORDER BY a
SETTINGS index_granularity = 64, index_granularity_bytes = '10M', min_bytes_for_wide_part = 0;
INSERT INTO t_primary_index_cache__fuzz_37 SELECT number, number FROM numbers(10000);
SELECT count() FROM t_primary_index_cache__fuzz_37 WHERE (a < toUInt256(200));<Fatal> BaseDaemon: ########## Short fault info ############
<Fatal> BaseDaemon: (version 25.6.1.785 (official build), build id: 226869BB9FC2F0C9062B7F5BF8268881008873DE, git hash: e96a66498b97e5c1ab84143b99f179e44d7c515f, architecture: x86_64) (from thread 714245) Received signal 6
<Fatal> BaseDaemon: Signal description: Aborted
<Fatal> BaseDaemon:
<Fatal> BaseDaemon: Stack trace: 0x000071c7ca2969fd 0x000071c7ca242476 0x000071c7ca2287f3 0x00005d091c97a4c3 0x00005d091c97a6d0 0x00005d093008a05d 0x00005d09300a62a1 0x00005d09300b7f89 0x00005d091cc6bcf3 0x00005d091cc79e10 0x00005d091cc6636e 0x00005d091cc74b10 0x00005d090b89ce77 0x000071c7ca294ac3 0x000071c7ca326850
<Fatal> BaseDaemon: ########################################
<Fatal> BaseDaemon: (version 25.6.1.785 (official build), build id: 226869BB9FC2F0C9062B7F5BF8268881008873DE, git hash: e96a66498b97e5c1ab84143b99f179e44d7c515f) (from thread 714245) (query_id: 593fdc08-a6de-464a-9d4a-668077eea635) (query: SELECT count() FROM t_primary_index_cache__fuzz_37 WHERE (a < toUInt256(200));) Received signal Aborted (6)
<Fatal> BaseDaemon:
<Fatal> BaseDaemon: Stack trace: 0x000071c7ca2969fd 0x000071c7ca242476 0x000071c7ca2287f3 0x00005d091c97a4c3 0x00005d091c97a6d0 0x00005d093008a05d 0x00005d09300a62a1 0x00005d09300b7f89 0x00005d091cc6bcf3 0x00005d091cc79e10 0x00005d091cc6636e 0x00005d091cc74b10 0x00005d090b89ce77 0x000071c7ca294ac3 0x000071c7ca326850
<Fatal> BaseDaemon: 3. pthread_kill@@GLIBC_2.34 @ 0x00000000000969fd
<Fatal> BaseDaemon: 4. gsignal @ 0x0000000000042476
<Fatal> BaseDaemon: 5. __GI_abort @ 0x00000000000287f3
<Fatal> BaseDaemon: 6. ./ci/tmp/build/./src/Common/Exception.cpp:50: DB::abortOnFailedAssertion(String const&, void* const*, unsigned long, unsigned long) @ 0x000000001d49f4c3
<Fatal> BaseDaemon: 7. ./ci/tmp/build/./src/Common/Exception.cpp:56: ? @ 0x000000001d49f6d0
<Fatal> BaseDaemon: 8. ./ci/tmp/build/./src/Storages/MergeTree/MergeTreeDataSelectExecutor.cpp:1562: DB::MergeTreeDataSelectExecutor::markRangesFromPKRange(DB::RangesInDataPart const&, std::shared_ptr<DB::StorageInMemoryMetadata const> const&, DB::KeyCondition const&, std::optional<DB::KeyCondition> const&, std::optional<DB::KeyCondition> const&, DB::MarkRanges*, DB::Settings const&, std::shared_ptr<Poco::Logger>) @ 0x0000000030baf05d
<Fatal> BaseDaemon: 9. ./ci/tmp/build/./src/Storages/MergeTree/MergeTreeDataSelectExecutor.cpp:767: DB::MergeTreeDataSelectExecutor::filterPartsByPrimaryKeyAndSkipIndexes(DB::RangesInDataParts, std::shared_ptr<DB::StorageInMemoryMetadata const>, std::shared_ptr<DB::Context const> const&, DB::KeyCondition const&, std::optional<DB::KeyCondition> const&, std::optional<DB::KeyCondition> const&, DB::UsefulSkipIndexes const&, DB::MergeTreeReaderSettings const&, std::shared_ptr<Poco::Logger>, unsigned long, std::vector<DB::ReadFromMergeTree::IndexStat, std::allocator<DB::ReadFromMergeTree::IndexStat>>&, bool, bool, bool)::$_1::operator()(unsigned long) const @ 0x0000000030bcb2a1
<Fatal> BaseDaemon: 10.0. inlined from ./ci/tmp/build/./src/Storages/MergeTree/MergeTreeDataSelectExecutor.cpp:876: operator()
<Fatal> BaseDaemon: 10.1. inlined from ./contrib/llvm-project/libcxx/include/__type_traits/invoke.h:149: decltype(std::declval<DB::MergeTreeDataSelectExecutor::filterPartsByPrimaryKeyAndSkipIndexes(DB::RangesInDataParts, std::shared_ptr<DB::StorageInMemoryMetadata const>, std::shared_ptr<DB::Context const> const&, DB::KeyCondition const&, std::optional<DB::KeyCondition> const&, std::optional<DB::KeyCondition> const&, DB::UsefulSkipIndexes const&, DB::MergeTreeReaderSettings const&, std::shared_ptr<Poco::Logger>, unsigned long, std::vector<DB::ReadFromMergeTree::IndexStat, std::allocator<DB::ReadFromMergeTree::IndexStat>>&, bool, bool, bool)::$_2&>()()) std::__invoke[abi:ne190107]<DB::MergeTreeDataSelectExecutor::filterPartsByPrimaryKeyAndSkipIndexes(DB::RangesInDataParts, std::shared_ptr<DB::StorageInMemoryMetadata const>, std::shared_ptr<DB::Context const> const&, DB::KeyCondition const&, std::optional<DB::KeyCondition> const&, std::optional<DB::KeyCondition> const&, DB::UsefulSkipIndexes const&, DB::MergeTreeReaderSettings const&, std::shared_ptr<Poco::Logger>, unsigned long, std::vector<DB::ReadFromMergeTree::IndexStat, std::allocator<DB::ReadFromMergeTree::IndexStat>>&, bool, bool, bool)::$_2&>(DB::MergeTreeDataSelectExecutor::filterPartsByPrimaryKeyAndSkipIndexes(DB::RangesInDataParts, std::shared_ptr<DB::StorageInMemoryMetadata const>, std::shared_ptr<DB::Context const> const&, DB::KeyCondition const&, std::optional<DB::KeyCondition> const&, std::optional<DB::KeyCondition> const&, DB::UsefulSkipIndexes const&, DB::MergeTreeReaderSettings const&, std::shared_ptr<Poco::Logger>, unsigned long, std::vector<DB::ReadFromMergeTree::IndexStat, std::allocator<DB::ReadFromMergeTree::IndexStat>>&, bool, bool, bool)::$_2&)
<Fatal> BaseDaemon: 10.2. inlined from ./contrib/llvm-project/libcxx/include/__type_traits/invoke.h:224: void std::__invoke_void_return_wrapper<void, true>::__call[abi:ne190107]<DB::MergeTreeDataSelectExecutor::filterPartsByPrimaryKeyAndSkipIndexes(DB::RangesInDataParts, std::shared_ptr<DB::StorageInMemoryMetadata const>, std::shared_ptr<DB::Context const> const&, DB::KeyCondition const&, std::optional<DB::KeyCondition> const&, std::optional<DB::KeyCondition> const&, DB::UsefulSkipIndexes const&, DB::MergeTreeReaderSettings const&, std::shared_ptr<Poco::Logger>, unsigned long, std::vector<DB::ReadFromMergeTree::IndexStat, std::allocator<DB::ReadFromMergeTree::IndexStat>>&, bool, bool, bool)::$_2&>(DB::MergeTreeDataSelectExecutor::filterPartsByPrimaryKeyAndSkipIndexes(DB::RangesInDataParts, std::shared_ptr<DB::StorageInMemoryMetadata const>, std::shared_ptr<DB::Context const> const&, DB::KeyCondition const&, std::optional<DB::KeyCondition> const&, std::optional<DB::KeyCondition> const&, DB::UsefulSkipIndexes const&, DB::MergeTreeReaderSettings const&, std::shared_ptr<Poco::Logger>, unsigned long, std::vector<DB::ReadFromMergeTree::IndexStat, std::allocator<DB::ReadFromMergeTree::IndexStat>>&, bool, bool, bool)::$_2&)
<Fatal> BaseDaemon: 10.3. inlined from ./contrib/llvm-project/libcxx/include/__functional/function.h:210: ?
<Fatal> BaseDaemon: 10. ./contrib/llvm-project/libcxx/include/__functional/function.h:610: ? @ 0x0000000030bdcf89
<Fatal> BaseDaemon: 11.0. inlined from ./contrib/llvm-project/libcxx/include/__functional/function.h:716: ?
<Fatal> BaseDaemon: 11.1. inlined from ./contrib/llvm-project/libcxx/include/__functional/function.h:989: ?
<Fatal> BaseDaemon: 11. ./ci/tmp/build/./src/Common/ThreadPool.cpp:799: ThreadPoolImpl<ThreadFromGlobalPoolImpl<false, true>>::ThreadFromThreadPool::worker() @ 0x000000001d790cf3
<Fatal> BaseDaemon: 12.0. inlined from ./contrib/llvm-project/libcxx/include/__type_traits/invoke.h:117: decltype(*std::declval<ThreadPoolImpl<ThreadFromGlobalPoolImpl<false, true>>::ThreadFromThreadPool*&>().*std::declval<void (ThreadPoolImpl<ThreadFromGlobalPoolImpl<false, true>>::ThreadFromThreadPool::*&)()>()()) std::__invoke[abi:ne190107]<void (ThreadPoolImpl<ThreadFromGlobalPoolImpl<false, true>>::ThreadFromThreadPool::*&)(), ThreadPoolImpl<ThreadFromGlobalPoolImpl<false, true>>::ThreadFromThreadPool*&, void>(void (ThreadPoolImpl<ThreadFromGlobalPoolImpl<false, true>>::ThreadFromThreadPool::*&)(), ThreadPoolImpl<ThreadFromGlobalPoolImpl<false, true>>::ThreadFromThreadPool*&)
<Fatal> BaseDaemon: 12.1. inlined from ./contrib/llvm-project/libcxx/include/tuple:1354: decltype(auto) std::__apply_tuple_impl[abi:ne190107]<void (ThreadPoolImpl<ThreadFromGlobalPoolImpl<false, true>>::ThreadFromThreadPool::*&)(), std::tuple<ThreadPoolImpl<ThreadFromGlobalPoolImpl<false, true>>::ThreadFromThreadPool*>&, 0ul>(void (ThreadPoolImpl<ThreadFromGlobalPoolImpl<false, true>>::ThreadFromThreadPool::*&)(), std::tuple<ThreadPoolImpl<ThreadFromGlobalPoolImpl<false, true>>::ThreadFromThreadPool*>&, std::__tuple_indices<0ul>)
<Fatal> BaseDaemon: 12.2. inlined from ./contrib/llvm-project/libcxx/include/tuple:1358: decltype(auto) std::apply[abi:ne190107]<void (ThreadPoolImpl<ThreadFromGlobalPoolImpl<false, true>>::ThreadFromThreadPool::*&)(), std::tuple<ThreadPoolImpl<ThreadFromGlobalPoolImpl<false, true>>::ThreadFromThreadPool*>&>(void (ThreadPoolImpl<ThreadFromGlobalPoolImpl<false, true>>::ThreadFromThreadPool::*&)(), std::tuple<ThreadPoolImpl<ThreadFromGlobalPoolImpl<false, true>>::ThreadFromThreadPool*>&)
<Fatal> BaseDaemon: 12. ./src/Common/ThreadPool.h:312: ThreadFromGlobalPoolImpl<false, true>::ThreadFromGlobalPoolImpl<void (ThreadPoolImpl<ThreadFromGlobalPoolImpl<false, true>>::ThreadFromThreadPool::*)(), ThreadPoolImpl<ThreadFromGlobalPoolImpl<false, true>>::ThreadFromThreadPool*>(void (ThreadPoolImpl<ThreadFromGlobalPoolImpl<false, true>>::ThreadFromThreadPool::*&&)(), ThreadPoolImpl<ThreadFromGlobalPoolImpl<false, true>>::ThreadFromThreadPool*&&)::'lambda'()::operator()() @ 0x000000001d79ee10
Error message and/or stacktrace
No response
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
bugConfirmed user-visible misbehaviour in official releaseConfirmed user-visible misbehaviour in official releasefuzzProblem found by one of the fuzzersProblem found by one of the fuzzers