Skip to content

TransactionContextError when running INSERT in debug mode #320

@Tmonster

Description

@Tmonster

This happens only in the CLI and not in the unittester.

Running on latest ducklake main. Commit hash d2392c36f33151cf5cdd7d006375b0b669bd44ac

D ATTACH 'ducklake:ducklake_deletes.db' AS ducklake (DATA_PATH 'ducklake_delete_files/tmp');
D CREATE TABLE ducklake.test AS SELECT i id FROM range(1000) t(i);
D INSERT INTO ducklake.test SELECT i id FROM range(15000, 16000) t(i);
TransactionContext Error:
Failed to commit: Failed: database has been invalidated because of a previous fatal error. The database must be restarted prior to being used again.
Original error: "Assertion triggered in file "/Users/tomebergen/git/ducklake/duckdb/src/storage/compression/validity_uncompressed.cpp" on line 231: result_mask.RowIsValid(result_offset + i)"

Stack Trace:

0        duckdb::Exception::ToJSON(duckdb::ExceptionType, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&) + 444
1        duckdb::Exception::Exception(duckdb::ExceptionType, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&) + 516
2        duckdb::FatalException::FatalException(duckdb::ExceptionType, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&) + 280
3        duckdb::FatalException::FatalException(duckdb::ExceptionType, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&) + 108
4        duckdb::FatalException::FatalException(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&) + 172
5        duckdb::ErrorManager::InvalidatedDatabase(duckdb::ClientContext&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&) + 616
6        duckdb::ClientContext::BeginQueryInternal(duckdb::ClientContextLock&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&) + 1276
7        duckdb::ClientContext::PendingStatementOrPreparedStatement(duckdb::ClientContextLock&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&, duckdb::unique_ptr<duckdb::SQLStatement, std::__1::default_delete<duckdb::SQLStatement>, true>, duckdb::shared_ptr<duckdb::PreparedStatementData, true>&, duckdb::PendingQueryParameters const&) + 920
8        duckdb::ClientContext::PendingStatementOrPreparedStatementInternal(duckdb::ClientContextLock&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&, duckdb::unique_ptr<duckdb::SQLStatement, std::__1::default_delete<duckdb::SQLStatement>, true>, duckdb::shared_ptr<duckdb::PreparedStatementData, true>&, duckdb::PendingQueryParameters const&) + 5184
9        duckdb::ClientContext::PendingQueryInternal(duckdb::ClientContextLock&, duckdb::unique_ptr<duckdb::SQLStatement, std::__1::default_delete<duckdb::SQLStatement>, true>, duckdb::PendingQueryParameters const&, bool) + 1224
10       duckdb::ClientContext::Query(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&, bool) + 3276
11       duckdb::Connection::Query(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&) + 672
12       duckdb::Connection::Rollback() + 532
13       duckdb::DuckLakeTransaction::FlushChanges() + 6352
14       duckdb::DuckLakeTransaction::Commit() + 360
15       duckdb::DuckLakeTransactionManager::CommitTransaction(duckdb::ClientContext&, duckdb::Transaction&) + 976
16       duckdb::MetaTransaction::Commit() + 3896
17       duckdb::TransactionContext::Commit() + 1340
18       duckdb::ClientContext::EndQueryInternal(duckdb::ClientContextLock&, bool, bool, duckdb::optional_ptr<duckdb::ErrorData, true>) + 2544
19       duckdb::ClientContext::CleanupInternal(duckdb::ClientContextLock&, duckdb::BaseQueryResult*, bool) + 2724
20       duckdb::ClientContext::FetchResultInternal(duckdb::ClientContextLock&, duckdb::PendingQueryResult&) + 2580
21       duckdb::PendingQueryResult::ExecuteInternal(duckdb::ClientContextLock&) + 3012
22       duckdb::PendingQueryResult::Execute() + 744
23       duckdb_shell_sqlite3_print_duckbox + 3136
24       duckdb_shell::ShellState::ExecutePreparedStatement(sqlite3_stmt*) + 1900
25       duckdb_shell::ShellState::ExecuteSQL(char const*, char**) + 3376
26       duckdb_shell::ShellState::RunOneSqlLine(duckdb_shell::InputMode, char*) + 836
27       duckdb_shell::ShellState::ProcessInput(duckdb_shell::InputMode) + 5160
28       main + 17976
29       start + 2360

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