Skip to content

Failed verify on applying empty Tiering Rule to OLAP table #8149

@swalrus1

Description

@swalrus1

Applying empty Tiering rule to an OLAP table crashes column shards with failed Verify; then crashed shards can't start up because the same Verify fails on initialization.

How to reproduce:

CREATE OBJECT empty_tiering_rule (TYPE TIERING_RULE)
    WITH (defaultColumn = timestamp, description = `{"rules": []}`);

ALTER TABLE <table> SET TIERING empty_tiering_rule;

Failed Verify:

VERIFY failed (2024-08-21T16:04:33.329606Z): tablet_id=72075186224038437;self_id=[50000:7405624267389167603:123];verification=TTLColumnName;fline=tier_info.h:198;
  ydb/library/actors/core/log.cpp:741
  ~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) @ 0xAAC82DC
1. /-S/util/system/yassert.cpp:55: NPrivate::Panic(NPrivate::TStaticBuf const&, int, char const*, char const*, char const*, ...) @ 0xAAC2006
2. /-S/ydb/library/actors/core/log.cpp:741: NActors::TVerifyFormattedRecordWriter::~TVerifyFormattedRecordWriter() @ 0xB9FC583
3. /-S/ydb/core/tx/columnshard/engines/scheme/tiering/tier_info.h:198: NKikimr::NOlap::TTiering::GetTtlColumn() const @ 0x135287F1
4. /-S/ydb/core/tx/columnshard/engines/storage/actualizer/tiering/tiering.cpp:177: NKikimr::NOlap::NActualizer::TTieringActualizer::Refresh(std::__y1::optional<NKikimr::NOlap::TTiering> const&, NKikimr::NOlap::NActualizer::TAddExternalContext const&) @ 0x13528451
5. /-S/ydb/core/tx/columnshard/engines/storage/actualizer/index/index.cpp:29: NKikimr::NOlap::NActualizer::TGranuleActualizationIndex::RefreshTiering(std::__y1::optional<NKikimr::NOlap::TTiering> const&, NKikimr::NOlap::NActualizer::TAddExternalContext const&) @ 0x1351F2E9
6. /-S/ydb/core/tx/columnshard/engines/storage/granule/granule.h:168: NKikimr::NOlap::TGranuleMeta::RefreshTiering(std::__y1::optional<NKikimr::NOlap::TTiering> const&) @ 0x1354AC95
7. /-S/ydb/core/tx/columnshard/engines/column_engine_logs.cpp:564: NKikimr::NOlap::TColumnEngineForLogs::OnTieringModified(std::__y1::shared_ptr<NKikimr::NColumnShard::TTiersManager> const&, NKikimr::NColumnShard::TTtl const&, std::__y1::optional<unsigned long>) @ 0x1354C807
8. /-S/ydb/core/tx/columnshard/columnshard_impl.cpp:1137: NKikimr::NColumnShard::TColumnShard::OnTieringModified(std::__y1::optional<unsigned long>) @ 0x13763E32
9. /-S/ydb/core/tx/columnshard/columnshard.cpp:100: NKikimr::NColumnShard::TColumnShard::Handle(TAutoPtr<NActors::TEventHandle<NKikimr::NColumnShard::TEvPrivate::TEvTieringModified>, TDelete>&, NActors::TActorContext const&) @ 0x136395F4
10. /-S/ydb/core/tx/columnshard/columnshard_impl.h:371: NKikimr::NColumnShard::TColumnShard::StateWork(TAutoPtr<NActors::IEventHandle, TDelete>&) @ 0x13637456
11. /-S/ydb/library/actors/core/executor_thread.cpp:251: NActors::TGenericExecutorThread::TProcessingResult NActors::TGenericExecutorThread::Execute<NActors::TMailboxTable::TReadAsFilledMailbox>(NActors::TMailboxTable::TReadAsFilledMailbox*, unsigned int, bool) @ 0xB9E0FB6
12. /-S/ydb/library/actors/core/executor_thread.cpp:441: NActors::TGenericExecutorThread::ProcessExecutorPool(NActors::IExecutorPool*)::$_0::operator()(unsigned int, bool) const @ 0xB9D5472
13. /-S/ydb/library/actors/core/executor_thread.cpp:493: NActors::TGenericExecutorThread::ProcessExecutorPool(NActors::IExecutorPool*) @ 0xB9D4E59
14. /-S/ydb/library/actors/core/executor_thread.cpp:524: NActors::TExecutorThread::ThreadProc() @ 0xB9D5CFF
15. /-S/util/system/thread.cpp:244: (anonymous namespace)::TPosixThread::ThreadProxy(void*) @ 0xAACC9EE
16. ??:0: ?? @ 0x7F12C78E2608
17. ??:0: ?? @ 0x7F12C7802352

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