Skip to content

SIGABRT: ABORT THROWN BY INTERNAL EXCEPTION: Information loss on integer cast: value -60 outside of target range [0, 18446744073709551615] #4346

@fuzzerofducks

Description

@fuzzerofducks

Issue found by parquet_multi_param_fuzzer on git commit hash c20a8 using seed 0.

To Reproduce

.sh wget https://github.com/duckdb/duckdb-fuzzer/raw/refs/heads/main/reproduction_inputs/parquet/20260306_8243cd.parquet
from read_parquet('20260306_8243cd.parquet', filename=1);

Error Message

SIGABRT: ABORT THROWN BY INTERNAL EXCEPTION: Information loss on integer cast: value -60 outside of target range [0, 18446744073709551615]

Stack Trace


/home/runner/work/duckdb-fuzzer-ci/duckdb-fuzzer-ci/duckdb/build/debduckdb::StackTrace::GetStackTrace[abi:cxx11](unsigned long) 
/home/runner/work/duckdb-fuzzer-ci/duckdb-fuzzer-ci/duckdb/build/debduckdb::InternalException::InternalException(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) 
/home/runner/work/duckdb-fuzzer-ci/duckdb-fuzzer-ci/duckdb/build/debduckdb::InternalException::InternalException<int&, unsigned long&, unsigned long&>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, int&, unsigned long&, unsigned long&) 
/home/runner/work/duckdb-fuzzer-ci/duckdb-fuzzer-ci/duckdb/build/deb 
/home/runner/work/duckdb-fuzzer-ci/duckdb-fuzzer-ci/duckdb/build/debduckdb::NumericCastImpl<unsigned long, int, false>::Convert(int) 
/home/runner/work/duckdb-fuzzer-ci/duckdb-fuzzer-ci/duckdb/build/debunsigned long duckdb::NumericCast<unsigned long, int, void>(int) 
/home/runner/work/duckdb-fuzzer-ci/duckdb-fuzzer-ci/duckdb/build/debduckdb::ParquetReader::ParseSchemaRecursive(unsigned long, unsigned long, unsigned long, unsigned long&, unsigned long&, duckdb::ClientContext&) 
/home/runner/work/duckdb-fuzzer-ci/duckdb-fuzzer-ci/duckdb/build/debduckdb::ParquetReader::ParseSchema(duckdb::ClientContext&) 
/home/runner/work/duckdb-fuzzer-ci/duckdb-fuzzer-ci/duckdb/build/debduckdb::ParquetReader::InitializeSchema(duckdb::ClientContext&) 
/home/runner/work/duckdb-fuzzer-ci/duckdb-fuzzer-ci/duckdb/build/debduckdb::ParquetReader::ParquetReader(duckdb::ClientContext&, duckdb::OpenFileInfo, duckdb::ParquetOptions, duckdb::shared_ptr<duckdb::ParquetFileMetadataCache, true>) 
/home/runner/work/duckdb-fuzzer-ci/duckdb-fuzzer-ci/duckdb/build/debvoid std::_Construct<duckdb::ParquetReader, duckdb::ClientContext&, duckdb::OpenFileInfo const&, duckdb::ParquetOptions&>(duckdb::ParquetReader*, duckdb::ClientContext&, duckdb::OpenFileInfo const&, duckdb::ParquetOptions&) 
/home/runner/work/duckdb-fuzzer-ci/duckdb-fuzzer-ci/duckdb/build/debstd::_Sp_counted_ptr_inplace<duckdb::ParquetReader, std::allocator<void>, (__gnu_cxx::_Lock_policy)2>::_Sp_counted_ptr_inplace<duckdb::ClientContext&, duckdb::OpenFileInfo const&, duckdb::ParquetOptions&>(std::allocator<void>, duckdb::ClientContext&, duckdb::OpenFileInfo const&, duckdb::ParquetOptions&) 
/home/runner/work/duckdb-fuzzer-ci/duckdb-fuzzer-ci/duckdb/build/debstd::__shared_count<(__gnu_cxx::_Lock_policy)2>::__shared_count<duckdb::ParquetReader, std::allocator<void>, duckdb::ClientContext&, duckdb::OpenFileInfo const&, duckdb::ParquetOptions&>(duckdb::ParquetReader*&, std::_Sp_alloc_shared_tag<std::allocator<void> >, duckdb::ClientContext&, duckdb::OpenFileInfo const&, duckdb::ParquetOptions&) 
/home/runner/work/duckdb-fuzzer-ci/duckdb-fuzzer-ci/duckdb/build/debstd::__shared_ptr<duckdb::ParquetReader, (__gnu_cxx::_Lock_policy)2>::__shared_ptr<std::allocator<void>, duckdb::ClientContext&, duckdb::OpenFileInfo const&, duckdb::ParquetOptions&>(std::_Sp_alloc_shared_tag<std::allocator<void> >, duckdb::ClientContext&, duckdb::OpenFileInfo const&, duckdb::ParquetOptions&) 
/home/runner/work/duckdb-fuzzer-ci/duckdb-fuzzer-ci/duckdb/build/debstd::shared_ptr<duckdb::ParquetReader>::shared_ptr<std::allocator<void>, duckdb::ClientContext&, duckdb::OpenFileInfo const&, duckdb::ParquetOptions&>(std::_Sp_alloc_shared_tag<std::allocator<void> >, duckdb::ClientContext&, duckdb::OpenFileInfo const&, duckdb::ParquetOptions&) 
/home/runner/work/duckdb-fuzzer-ci/duckdb-fuzzer-ci/duckdb/build/debstd::shared_ptr<std::enable_if<!std::is_array<duckdb::ParquetReader>::value, duckdb::ParquetReader>::type> std::make_shared<duckdb::ParquetReader, duckdb::ClientContext&, duckdb::OpenFileInfo const&, duckdb::ParquetOptions&>(duckdb::ClientContext&, duckdb::OpenFileInfo const&, duckdb::ParquetOptions&) 
/home/runner/work/duckdb-fuzzer-ci/duckdb-fuzzer-ci/duckdb/build/debduckdb::shared_ptr<duckdb::ParquetReader, true> duckdb::make_shared_ptr<duckdb::ParquetReader, duckdb::ClientContext&, duckdb::OpenFileInfo const&, duckdb::ParquetOptions&>(duckdb::ClientContext&, duckdb::OpenFileInfo const&, duckdb::ParquetOptions&) 
/home/runner/work/duckdb-fuzzer-ci/duckdb-fuzzer-ci/duckdb/build/debduckdb::ParquetMultiFileInfo::CreateReader(duckdb::ClientContext&, duckdb::OpenFileInfo const&, duckdb::BaseFileReaderOptions&, duckdb::MultiFileOptions const&) 
/home/runner/work/duckdb-fuzzer-ci/duckdb-fuzzer-ci/duckdb/build/debduckdb::MultiFileReader::CreateReader(duckdb::ClientContext&, duckdb::OpenFileInfo const&, duckdb::BaseFileReaderOptions&, duckdb::MultiFileOptions const&, duckdb::MultiFileReaderInterface&) 
/home/runner/work/duckdb-fuzzer-ci/duckdb-fuzzer-ci/duckdb/build/debduckdb::MultiFileReader::BindReader(duckdb::ClientContext&, duckdb::vector<duckdb::LogicalType, true, std::allocator<duckdb::LogicalType> >&, duckdb::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, true, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >&, duckdb::MultiFileList&, duckdb::MultiFileBindData&, duckdb::BaseFileReaderOptions&, duckdb::MultiFileOptions&) 
/home/runner/work/duckdb-fuzzer-ci/duckdb-fuzzer-ci/duckdb/build/debduckdb::ParquetMultiFileInfo::BindReader(duckdb::ClientContext&, duckdb::vector<duckdb::LogicalType, true, std::allocator<duckdb::LogicalType> >&, duckdb::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, true, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >&, duckdb::MultiFileBindData&) 
/home/runner/work/duckdb-fuzzer-ci/duckdb-fuzzer-ci/duckdb/build/debduckdb::MultiFileFunction<duckdb::ParquetMultiFileInfo>::MultiFileBindInternal(duckdb::ClientContext&, duckdb::unique_ptr<duckdb::MultiFileReader, std::default_delete<duckdb::MultiFileReader>, true>, duckdb::shared_ptr<duckdb::MultiFileList, true>, duckdb::vector<duckdb::LogicalType, true, std::allocator<duckdb::LogicalType> >&, duckdb::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, true, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >&, duckdb::MultiFileOptions, duckdb::unique_ptr<duckdb::BaseFileReaderOptions, std::default_delete<duckdb::BaseFileReaderOptions>, true>, duckdb::unique_ptr<duckdb::MultiFileReaderInterface, std::default_delete<duckdb::MultiFileReaderInterface>, true>) 
/home/runner/work/duckdb-fuzzer-ci/duckdb-fuzzer-ci/duckdb/build/debduckdb::MultiFileFunction<duckdb::ParquetMultiFileInfo>::MultiFileBind(duckdb::ClientContext&, duckdb::TableFunctionBindInput&, duckdb::vector<duckdb::LogicalType, true, std::allocator<duckdb::LogicalType> >&, duckdb::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, true, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >&) 
/home/runner/work/duckdb-fuzzer-ci/duckdb-fuzzer-ci/duckdb/build/debduckdb::Binder::BindTableFunctionInternal(duckdb::TableFunction&, duckdb::TableFunctionRef const&, duckdb::vector<duckdb::Value, true, std::allocator<duckdb::Value> >, std::unordered_map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, duckdb::Value, duckdb::CaseInsensitiveStringHashFunction, duckdb::CaseInsensitiveStringEquality, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, duckdb::Value> > >, duckdb::vector<duckdb::LogicalType, true, std::allocator<duckdb::LogicalType> >, duckdb::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, true, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >) 
/home/runner/work/duckdb-fuzzer-ci/duckdb-fuzzer-ci/duckdb/build/debduckdb::Binder::Bind(duckdb::TableFunctionRef&) 
/home/runner/work/duckdb-fuzzer-ci/duckdb-fuzzer-ci/duckdb/build/debduckdb::Binder::Bind(duckdb::TableRef&) 
/home/runner/work/duckdb-fuzzer-ci/duckdb-fuzzer-ci/duckdb/build/debduckdb::Binder::BindNode(duckdb::SelectNode&) 
/home/runner/work/duckdb-fuzzer-ci/duckdb-fuzzer-ci/duckdb/build/debduckdb::Binder::BindNode(duckdb::QueryNode&) 
/home/runner/work/duckdb-fuzzer-ci/duckdb-fuzzer-ci/duckdb/build/debduckdb::Binder::Bind(duckdb::QueryNode&) 
/home/runner/work/duckdb-fuzzer-ci/duckdb-fuzzer-ci/duckdb/build/debduckdb::Binder::Bind(duckdb::SelectStatement&) 
/home/runner/work/duckdb-fuzzer-ci/duckdb-fuzzer-ci/duckdb/build/debduckdb::Binder::Bind(duckdb::SQLStatement&) 
/home/runner/work/duckdb-fuzzer-ci/duckdb-fuzzer-ci/duckdb/build/debduckdb::Planner::CreatePlan(duckdb::SQLStatement&) 
/home/runner/work/duckdb-fuzzer-ci/duckdb-fuzzer-ci/duckdb/build/debduckdb::Planner::CreatePlan(duckdb::unique_ptr<duckdb::SQLStatement, std::default_delete<duckdb::SQLStatement>, true>) 
/home/runner/work/duckdb-fuzzer-ci/duckdb-fuzzer-ci/duckdb/build/debduckdb::ClientContext::CreatePreparedStatementInternal(duckdb::ClientContextLock&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, duckdb::unique_ptr<duckdb::SQLStatement, std::default_delete<duckdb::SQLStatement>, true>, duckdb::PendingQueryParameters) 
/home/runner/work/duckdb-fuzzer-ci/duckdb-fuzzer-ci/duckdb/build/debduckdb::ClientContext::CreatePreparedStatement(duckdb::ClientContextLock&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, duckdb::unique_ptr<duckdb::SQLStatement, std::default_delete<duckdb::SQLStatement>, true>, duckdb::PendingQueryParameters, duckdb::PreparedStatementMode) 
/home/runner/work/duckdb-fuzzer-ci/duckdb-fuzzer-ci/duckdb/build/debduckdb::ClientContext::PendingStatementInternal(duckdb::ClientContextLock&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, duckdb::unique_ptr<duckdb::SQLStatement, std::default_delete<duckdb::SQLStatement>, true>, duckdb::PendingQueryParameters const&) 
/home/runner/work/duckdb-fuzzer-ci/duckdb-fuzzer-ci/duckdb/build/debduckdb::ClientContext::PendingStatementOrPreparedStatement(duckdb::ClientContextLock&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, duckdb::unique_ptr<duckdb::SQLStatement, std::default_delete<duckdb::SQLStatement>, true>, duckdb::shared_ptr<duckdb::PreparedStatementData, true>&, duckdb::PendingQueryParameters const&) 
/home/runner/work/duckdb-fuzzer-ci/duckdb-fuzzer-ci/duckdb/build/debduckdb::ClientContext::PendingStatementOrPreparedStatementInternal(duckdb::ClientContextLock&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, duckdb::unique_ptr<duckdb::SQLStatement, std::default_delete<duckdb::SQLStatement>, true>, duckdb::shared_ptr<duckdb::PreparedStatementData, true>&, duckdb::PendingQueryParameters const&) 
/home/runner/work/duckdb-fuzzer-ci/duckdb-fuzzer-ci/duckdb/build/debduckdb::ClientContext::PendingQueryInternal(duckdb::ClientContextLock&, duckdb::unique_ptr<duckdb::SQLStatement, std::default_delete<duckdb::SQLStatement>, true>, duckdb::PendingQueryParameters const&, bool) 
/home/runner/work/duckdb-fuzzer-ci/duckdb-fuzzer-ci/duckdb/build/debduckdb::ClientContext::PendingQuery(duckdb::unique_ptr<duckdb::SQLStatement, std::default_delete<duckdb::SQLStatement>, true>, std::unordered_map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, duckdb::BoundParameterData, duckdb::CaseInsensitiveStringHashFunction, duckdb::CaseInsensitiveStringEquality, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, duckdb::BoundParameterData> > >&, duckdb::QueryParameters) 
/home/runner/work/duckdb-fuzzer-ci/duckdb-fuzzer-ci/duckdb/build/debduckdb::ClientContext::PendingQuery(duckdb::unique_ptr<duckdb::SQLStatement, std::default_delete<duckdb::SQLStatement>, true>, duckdb::QueryParameters) 
/home/runner/work/duckdb-fuzzer-ci/duckdb-fuzzer-ci/duckdb/build/debduckdb::ClientContext::Query(duckdb::unique_ptr<duckdb::SQLStatement, std::default_delete<duckdb::SQLStatement>, true>, duckdb::QueryParameters) 
/home/runner/work/duckdb-fuzzer-ci/duckdb-fuzzer-ci/duckdb/build/debduckdb::Connection::SendQuery(duckdb::unique_ptr<duckdb::SQLStatement, std::default_delete<duckdb::SQLStatement>, true>, duckdb::QueryParameters) 
/home/runner/work/duckdb-fuzzer-ci/duckdb-fuzzer-ci/duckdb/build/debduckdb_shell::ShellState::ExecuteStatement(duckdb::unique_ptr<duckdb::SQLStatement, std::default_delete<duckdb::SQLStatement>, true>) 
/home/runner/work/duckdb-fuzzer-ci/duckdb-fuzzer-ci/duckdb/build/debduckdb_shell::ShellState::ExecuteSQL(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) 
/home/runner/work/duckdb-fuzzer-ci/duckdb-fuzzer-ci/duckdb/build/debduckdb_shell::ShellState::RunOneSqlLine(duckdb_shell::InputMode, char*) 
/home/runner/work/duckdb-fuzzer-ci/duckdb-fuzzer-ci/duckdb/build/debduckdb_shell::ShellState::ProcessInput(duckdb_shell::InputMode) 
/home/runner/work/duckdb-fuzzer-ci/duckdb-fuzzer-ci/duckdb/build/debmain 
/home/runner/work/duckdb-fuzzer-ci/duckdb-fuzzer-ci/duckdb/build/deb_start

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions