-
Notifications
You must be signed in to change notification settings - Fork 8.3k
UBSan report from fuzz test: signed integer overflow. #8973
Copy link
Copy link
Closed
Labels
bugConfirmed user-visible misbehaviour in official releaseConfirmed user-visible misbehaviour in official release
Description
How to reproduce
select now64(10)
../dbms/src/Core/DecimalFunctions.h:55:27: runtime error: signed integer overflow: 1580737114 * 1000000000000000000 cannot be represented in type 'long'
#0 0x15e406de in DB::Decimal<long> DB::DecimalUtils::decimalFromComponentsWithMultiplier<DB::Decimal<long> >(DB::Decimal<long>::NativeType const&, DB::Decimal<long>::NativeType const&, DB::Decimal<long>::NativeType) (/usr/bin/clickhouse+0x15e406de)
#1 0x1882dd7d (/usr/bin/clickhouse+0x1882dd7d)
#2 0x1882eb4b in DB::FunctionNow64::executeImpl(DB::Block&, std::__1::vector<unsigned long, std::__1::allocator<unsigned long> > const&, unsigned long, unsigned long) (/usr/bin/clickhouse+0x1882eb4b)
#3 0x15fee3ce in DB::ExecutableFunctionAdaptor::execute(DB::Block&, std::__1::vector<unsigned long, std::__1::allocator<unsigned long> > const&, unsigned long, unsigned long, bool) (/usr/bin/clickhouse+0x15fee3ce)
#4 0x1e352085 in DB::ExpressionAction::prepare(DB::Block&, DB::Settings const&, std::__1::unordered_set<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::hash<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::equal_to<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >&) /build/obj-x86_64-linux-gnu/../dbms/src/Interpreters/ExpressionActions.cpp:219:27
#5 0x1e358bdd in DB::ExpressionActions::addImpl(DB::ExpressionAction, std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >&) /build/obj-x86_64-linux-gnu/../dbms/src/Interpreters/ExpressionActions.cpp:702:12
#6 0x1e3586ac in DB::ExpressionActions::add(DB::ExpressionAction const&, std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >&) /build/obj-x86_64-linux-gnu/../dbms/src/Interpreters/ExpressionActions.cpp:665:5
#7 0x1e337067 in DB::ScopeStack::addAction(DB::ExpressionAction const&) /build/obj-x86_64-linux-gnu/../dbms/src/Interpreters/ActionsVisitor.cpp:258:27
#8 0x1e33b2dd in DB::ActionsMatcher::Data::addAction(DB::ExpressionAction const&) /build/obj-x86_64-linux-gnu/../dbms/src/Interpreters/ActionsVisitor.h:106:27
#9 0x1e33b2dd in DB::ActionsMatcher::visit(DB::ASTFunction const&, std::__1::shared_ptr<DB::IAST> const&, DB::ActionsMatcher::Data&) /build/obj-x86_64-linux-gnu/../dbms/src/Interpreters/ActionsVisitor.cpp:598
#10 0x1e323acd in DB::InDepthNodeVisitor<DB::ActionsMatcher, true, std::__1::shared_ptr<DB::IAST> const>::visit(std::__1::shared_ptr<DB::IAST> const&) /build/obj-x86_64-linux-gnu/../dbms/src/Interpreters/InDepthNodeVisitor.h:32:9
#11 0x1e32f883 in DB::InDepthNodeVisitor<DB::ActionsMatcher, true, std::__1::shared_ptr<DB::IAST> const>::visitChildren(std::__1::shared_ptr<DB::IAST> const&) /build/obj-x86_64-linux-gnu/../dbms/src/Interpreters/InDepthNodeVisitor.h:47:17
#12 0x1e323ad8 in DB::InDepthNodeVisitor<DB::ActionsMatcher, true, std::__1::shared_ptr<DB::IAST> const>::visit(std::__1::shared_ptr<DB::IAST> const&) /build/obj-x86_64-linux-gnu/../dbms/src/Interpreters/InDepthNodeVisitor.h:35:13
#13 0x1e31ae17 in DB::ExpressionAnalyzer::getRootActions(std::__1::shared_ptr<DB::IAST> const&, bool, std::__1::shared_ptr<DB::ExpressionActions>&, bool) /build/obj-x86_64-linux-gnu/../dbms/src/Interpreters/ExpressionAnalyzer.cpp:344:48
#14 0x1e31ed7e in DB::SelectQueryExpressionAnalyzer::appendSelect(DB::ExpressionActionsChain&, bool) /build/obj-x86_64-linux-gnu/../dbms/src/Interpreters/ExpressionAnalyzer.cpp:730:5
#15 0x1e3dd202 in DB::InterpreterSelectQuery::analyzeExpressions(DB::ASTSelectQuery const&, DB::SelectQueryExpressionAnalyzer&, DB::QueryProcessingStage::Enum, DB::QueryProcessingStage::Enum, DB::Context const&, std::__1::shared_ptr<DB::IStorage> const&, bool, std::__1::shared_ptr<DB::FilterInfo> const&, DB::Block const&) /build/obj-x86_64-linux-gnu/../dbms/src/Interpreters/InterpreterSelectQuery.cpp:801:24
#16 0x1e3da165 in DB::InterpreterSelectQuery::getSampleBlockImpl() /build/obj-x86_64-linux-gnu/../dbms/src/Interpreters/InterpreterSelectQuery.cpp:549:23
#17 0x1e3d63b9 in DB::InterpreterSelectQuery::InterpreterSelectQuery(std::__1::shared_ptr<DB::IAST> const&, DB::Context const&, std::__1::shared_ptr<DB::IBlockInputStream> const&, std::__1::optional<DB::Pipe>, std::__1::shared_ptr<DB::IStorage> const&, DB::SelectQueryOptions const&, std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > const&)::$_1::operator()() const /build/obj-x86_64-linux-gnu/../dbms/src/Interpreters/InterpreterSelectQuery.cpp:400:25
#18 0x1e3d0a57 in DB::InterpreterSelectQuery::InterpreterSelectQuery(std::__1::shared_ptr<DB::IAST> const&, DB::Context const&, std::__1::shared_ptr<DB::IBlockInputStream> const&, std::__1::optional<DB::Pipe>, std::__1::shared_ptr<DB::IStorage> const&, DB::SelectQueryOptions const&, std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > const&) /build/obj-x86_64-linux-gnu/../dbms/src/Interpreters/InterpreterSelectQuery.cpp:403:5
#19 0x1e3cf8b7 in DB::InterpreterSelectQuery::InterpreterSelectQuery(std::__1::shared_ptr<DB::IAST> const&, DB::Context const&, DB::SelectQueryOptions const&, std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > const&) /build/obj-x86_64-linux-gnu/../dbms/src/Interpreters/InterpreterSelectQuery.cpp:169:7
#20 0x1e6ff134 in std::__1::__unique_if<DB::InterpreterSelectQuery>::__unique_single std::__1::make_unique<DB::InterpreterSelectQuery, std::__1::shared_ptr<DB::IAST>&, DB::Context&, DB::SelectQueryOptions&, std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > const&>(std::__1::shared_ptr<DB::IAST>&, DB::Context&, DB::SelectQueryOptions&, std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > const&) /build/obj-x86_64-linux-gnu/../contrib/libcxx/include/memory:3028:32
#21 0x1e6fbb24 in DB::InterpreterSelectWithUnionQuery::InterpreterSelectWithUnionQuery(std::__1::shared_ptr<DB::IAST> const&, DB::Context const&, DB::SelectQueryOptions const&, std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > const&) /build/obj-x86_64-linux-gnu/../dbms/src/Interpreters/InterpreterSelectWithUnionQuery.cpp:89:42
#22 0x1e37eb6c in std::__1::__unique_if<DB::InterpreterSelectWithUnionQuery>::__unique_single std::__1::make_unique<DB::InterpreterSelectWithUnionQuery, std::__1::shared_ptr<DB::IAST>&, DB::Context&, DB::SelectQueryOptions>(std::__1::shared_ptr<DB::IAST>&, DB::Context&, DB::SelectQueryOptions&&) /build/obj-x86_64-linux-gnu/../contrib/libcxx/include/memory:3028:32
#23 0x1e37c6e5 in DB::InterpreterFactory::get(std::__1::shared_ptr<DB::IAST>&, DB::Context&, DB::QueryProcessingStage::Enum) /build/obj-x86_64-linux-gnu/../dbms/src/Interpreters/InterpreterFactory.cpp:90:16
#24 0x1eb46155 in DB::executeQueryImpl(char const*, char const*, DB::Context&, bool, DB::QueryProcessingStage::Enum, bool, DB::ReadBuffer*, bool) /build/obj-x86_64-linux-gnu/../dbms/src/Interpreters/executeQuery.cpp:309:28
#25 0x1eb4537f in DB::executeQuery(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, DB::Context&, bool, DB::QueryProcessingStage::Enum, bool, bool) /build/obj-x86_64-linux-gnu/../dbms/src/Interpreters/executeQuery.cpp:574:30
#26 0x15771927 in DB::TCPHandler::runImpl() /build/obj-x86_64-linux-gnu/../dbms/programs/server/TCPHandler.cpp:248:24
#27 0x15786dc9 in DB::TCPHandler::run() /build/obj-x86_64-linux-gnu/../dbms/programs/server/TCPHandler.cpp:1222:9
#28 0x1fb36e79 in Poco::Net::TCPServerConnection::start() /build/obj-x86_64-linux-gnu/../contrib/poco/Net/src/TCPServerConnection.cpp:43:3
#29 0x1fb37d1a in Poco::Net::TCPServerDispatcher::run() /build/obj-x86_64-linux-gnu/../contrib/poco/Net/src/TCPServerDispatcher.cpp:114:20
#30 0x20b97d12 in Poco::PooledThread::run() /build/obj-x86_64-linux-gnu/../contrib/poco/Foundation/src/ThreadPool.cpp:214:14
#31 0x20b927b6 in Poco::ThreadImpl::runnableEntry(void*) /build/obj-x86_64-linux-gnu/../contrib/poco/Foundation/src/Thread_STD.cpp:139:27
#32 0x20b950e1 in decltype(std::__1::forward<void* (*)(void*)>(fp)(std::__1::forward<Poco::ThreadImpl*>(fp0))) std::__1::__invoke<void* (*)(void*), Poco::ThreadImpl*>(void* (*&&)(void*), Poco::ThreadImpl*&&) /build/obj-x86_64-linux-gnu/../contrib/libcxx/include/type_traits:3539:1
#33 0x20b950e1 in void std::__1::__thread_execute<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, void* (*)(void*), Poco::ThreadImpl*, 2ul>(std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, void* (*)(void*), Poco::ThreadImpl*>&, std::__1::__tuple_indices<2ul>) /build/obj-x86_64-linux-gnu/../contrib/libcxx/include/thread:273
#34 0x20b950e1 in 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* (*)(void*), Poco::ThreadImpl*> >(void*) /build/obj-x86_64-linux-gnu/../contrib/libcxx/include/thread:284
#35 0x7f790fef26da in start_thread (/lib/x86_64-linux-gnu/libpthread.so.0+0x76da)
#36 0x7f790f80f88e in clone (/lib/x86_64-linux-gnu/libc.so.6+0x12188e)
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
bugConfirmed user-visible misbehaviour in official releaseConfirmed user-visible misbehaviour in official release