Open
Description
Падение с VERIFY failed при запуске параллельных INSERT и UPDATE поверх olap таблицы, стек VERIFY:
VERIFY failed (2025-06-01T19:03:13.850461+0300): tx_id=281474976710673;scan_id=2;gen=1;table=/Root/olap_table;snapshot={1748793793880:max};tablet=72075186224037894;timeout=0.000000s;cpu_limits=Disabled;;verification=Schema->Equals(*item.Schema);fline=view.cpp:37;
ydb/library/actors/core/log.cpp:800
~TVerifyFormattedRecordWriter(): requirement false failed
0. /-S/util/system/yassert.cpp:83: NPrivate::InternalPanicImpl(int, char const*, char const*, int, int, int, TBasicStringBuf<char, std::__y1::char_traits<char>>, char const*, unsigned long) @ 0x15AAB715
1. /-S/util/system/yassert.cpp:55: NPrivate::Panic(NPrivate::TStaticBuf const&, int, char const*, char const*, char const*, ...) @ 0x15AA2C1C
2. /-S/ydb/library/actors/core/log.cpp:800: NActors::TVerifyFormattedRecordWriter::~TVerifyFormattedRecordWriter() @ 0x1A4BFF33
3. /-S/ydb/core/formats/arrow/rows/view.cpp:37: NKikimr::NArrow::TSimpleRow::CompareNotNull(NKikimr::NArrow::TSimpleRow const&) const @ 0x1C0E0A5B
4. /-S/ydb/core/tx/columnshard/transactions/locks/interaction.h:260: NKikimr::NOlap::NTxInteractions::TIntervalPoint::operator==(NKikimr::NOlap::NTxInteractions::TIntervalPoint const&) const @ 0x1579A306
5. /-S/ydb/core/tx/columnshard/transactions/locks/interaction.h:341: NKikimr::NOlap::NTxInteractions::TReadIntervals::InsertPoint(NKikimr::NOlap::NTxInteractions::TIntervalPoint const&) @ 0x1579A306
6. /-S/ydb/core/tx/columnshard/transactions/locks/interaction.h:427: NKikimr::NOlap::NTxInteractions::TInteractionsContext::AddInterval(unsigned long, NKikimr::NColumnShard::TInternalPathId, NKikimr::NOlap::NTxInteractions::TIntervalPoint const&, NKikimr::NOlap::NTxInteractions::TIntervalPoint const&) @ 0x15798E8D
7. /-S/ydb/core/tx/columnshard/transactions/locks/read_start.cpp:37: NKikimr::NOlap::NTxInteractions::TEvReadStart::DoAddToInteraction(unsigned long, NKikimr::NOlap::NTxInteractions::TInteractionsContext&) const @ 0x15798C94
8. /-S/ydb/core/tx/columnshard/transactions/locks/abstract.h:45: NKikimr::NOlap::NTxInteractions::ITxEvent::AddToInteraction(unsigned long, NKikimr::NOlap::NTxInteractions::TInteractionsContext&) const @ 0x20D015B7
9. /-S/ydb/core/tx/columnshard/transactions/locks/abstract.h:60: NKikimr::NOlap::NTxInteractions::TTxEventContainer::AddToInteraction(NKikimr::NOlap::NTxInteractions::TInteractionsContext&) const @ 0x20D015B7
10. /-S/ydb/core/tx/columnshard/operations/manager.cpp:291: NKikimr::NColumnShard::TOperationsManager::AddEventForLock(NKikimr::NColumnShard::TColumnShard&, unsigned long, std::__y1::shared_ptr<NKikimr::NOlap::NTxInteractions::ITxEventWriter> const&) @ 0x20D015B7
11. /-S/ydb/core/tx/columnshard/engines/reader/common_reader/constructor/read_metadata.cpp:102: NKikimr::NOlap::NReader::NCommon::TReadMetadata::DoOnBeforeStartReading(NKikimr::NColumnShard::TColumnShard&) const @ 0x20BA6E79
12. /-S/ydb/core/tx/columnshard/engines/reader/abstract/read_metadata.h:120: NKikimr::NOlap::NReader::TReadMetadataBase::OnBeforeStartReading(NKikimr::NColumnShard::TColumnShard&) const @ 0x21ABFD82
13. /-S/ydb/core/tx/columnshard/engines/reader/transaction/tx_scan.cpp:144: NKikimr::NOlap::NReader::TTxScan::Complete(NActors::TActorContext const&) @ 0x21ABFD82
14. /home/grigoriypisar/ydbwork/ydb/ydb/core/tablet_flat/flat_exec_seat.cpp:18: NKikimr::NTabletFlatExecutor::TSeat::Complete(NActors::TActorContext const&, bool) @ 0x1B9527AD
15. /home/grigoriypisar/ydbwork/ydb/ydb/core/tablet_flat/flat_executor_txloglogic.cpp:69: NKikimr::NTabletFlatExecutor::CompleteRoTransaction(std::__y1::unique_ptr<NKikimr::NTabletFlatExecutor::TSeat, std::__y1::default_delete<NKikimr::NTabletFlatExecutor::TSeat>>, NActors::TActorContext const&, NKikimr::NTabletFlatExecutor::TExecutorCounters*, NKikimr::TTabletCountersWithTxTypes*) @ 0x1B8DE543
16. /home/grigoriypisar/ydbwork/ydb/ydb/core/tablet_flat/flat_executor_txloglogic.cpp:298: NKikimr::NTabletFlatExecutor::TLogicRedo::Confirm(unsigned int, NActors::TActorContext const&, NActors::TActorId const&) @ 0x1B8E19FD
17. /home/grigoriypisar/ydbwork/ydb/ydb/core/tablet_flat/flat_executor.cpp:3174: NKikimr::NTabletFlatExecutor::TExecutor::Handle(TAutoPtr<NActors::TEventHandle<NKikimr::TEvTablet::TEvCommitResult>, TDelete>&, NActors::TActorContext const&) @ 0x1B839B5C
18. /home/grigoriypisar/ydbwork/ydb/ydb/core/tablet_flat/flat_executor.cpp:4215: NKikimr::NTabletFlatExecutor::TExecutor::StateWork(TAutoPtr<NActors::IEventHandle, TDelete>&) @ 0x1B81677F
19. /-S/ydb/library/actors/core/actor.cpp:280: NActors::IActor::Receive(TAutoPtr<NActors::IEventHandle, TDelete>&) @ 0x1A4736C4
20. /-S/ydb/library/actors/core/executor_thread.cpp:269: NActors::TExecutorThread::Execute(NActors::TMailbox*, bool) @ 0x1A4B0C30
21. /-S/ydb/library/actors/core/executor_thread.cpp:460: NActors::TExecutorThread::ProcessExecutorPool()::$_0::operator()(NActors::TMailbox*, bool) const @ 0x1A4B47A1
22. /-S/ydb/library/actors/core/executor_thread.cpp:512: NActors::TExecutorThread::ProcessExecutorPool() @ 0x1A4B43F0
23. /-S/ydb/library/actors/core/executor_thread.cpp:538: NActors::TExecutorThread::ThreadProc() @ 0x1A4B4F9A
24. /-S/util/system/thread.cpp:245: (anonymous namespace)::TPosixThread::ThreadProxy(void*) @ 0x15AAC3DC
25. ??:0: ?? @ 0x7F6DFDFEF608
26. ??:0: ?? @ 0x7F6DFDF14352
Aborted
Воспроизводится стабильно на main github в kqprun, файлы для запуска:
- scheme.yql:
CREATE TABLE olap_table (
Key Uint64 NOT NULL,
Value String,
PRIMARY KEY (Key)
) WITH (STORE = COLUMN);
- query.yql:
INSERT INTO olap_table
(Key, Value)
VALUES (${QUERY_ID}, "some_data")
- update.yql:
UPDATE olap_table SET Value = "dd"
WHERE Key = (${QUERY_ID} - 3) - RandomNumber(1) % (${QUERY_ID} - 3)
Команда запуска kqprun:
./kqprun -s scheme.yql -p query.yql -p update.yql -C async --templates --loop-count 0 --inflight-limit 10 --loop-delay 10