{"record":{"id":"f8c2977cb08e8768","repo":"microsoft/FASTER","slug":"hot-store-checkpoint-failed","errorCode":null,"errorMessage":"Hot store checkpoint failed!","messagePattern":"Hot store checkpoint failed!","errorType":"error_code","errorClass":null,"httpStatus":null,"severity":"error","filePath":"cc/src/core/f2.h","lineNumber":885,"sourceCode":"    cold_log_compaction_config.check_interval\n  );\n  bool wait;\n  auto should_checkpoint_cold_store = [&cold_store_status = checkpoint_.cold_store_status]() {\n    return (cold_store_status == StoreCheckpointStatus::REQUESTED);\n  };\n  uint64_t until_address;\n\n  do {\n    compaction_scheduled_.store(true);\n\n    // Hot log checkpoint\n    if (checkpoint_.hot_store_status == StoreCheckpointStatus::REQUESTED) {\n      checkpoint_.SetNumActiveThreads(hot_store.NumActiveSessions()); // cannot be set previously due to other background ops\n      log_debug(\"Issuing hot store checkpoint... (active sessions: %u)\", hot_store.NumActiveSessions());\n      bool success = hot_store.InternalCheckpoint(nullptr, F2Kv<K, V, D>::HotStoreCheckpointedCallback,\n                                                  checkpoint_.token, static_cast<void*>(&checkpoint_));\n      if (!success) {\n        log_error(\"Hot store checkpoint failed!\");\n      }\n\n      auto desired = success ? StoreCheckpointStatus::ACTIVE : StoreCheckpointStatus::FAILED;\n      checkpoint_.hot_store_status.store(desired);\n      log_debug(\"Hot store checkpoint issued! (status: %s)\",\n                STORE_CHECKPOINT_STATUS_STR[static_cast<int>(checkpoint_.hot_store_status)]);\n    }\n\n    // Cold log checkpoint (high-priority)\n    if (should_checkpoint_cold_store() && checkpoint_.IsLazyCheckpointExpired()) {\n      auto callback = [](void* ctxt, Status result, uint64_t persistent_serial_num) {\n        auto checkpoint = static_cast<HotColdCheckpointState*>(ctxt);\n        assert(checkpoint->phase.load() == CheckpointPhase::COLD_STORE_CHECKPOINT);\n        assert(checkpoint->cold_store_status.load() == StoreCheckpointStatus::ACTIVE);\n\n        StoreCheckpointStatus status;\n        if ((status = checkpoint->cold_store_status.load()) != StoreCheckpointStatus::ACTIVE) {\n          log_error(\"Unexpected checkpoint status for COLD store [expected: %s, actual: %s]\",","sourceCodeStart":867,"sourceCodeEnd":903,"githubUrl":"https://github.com/microsoft/FASTER/blob/321d872eabda6a0345c8bd76419f89723ed864ae/cc/src/core/f2.h#L867-L903","documentation":"The driver attempted to issue the hot-store internal checkpoint (InternalCheckpoint) but it returned false, meaning the hot store could not start checkpointing (e.g., no active sessions, callback registration issue, or store-level failure). Status is then marked FAILED but the message indicates the hot checkpoint did not start.","triggerScenarios":"Calling Checkpoint() when hot_store has zero active sessions or the underlying hot store refuses to start a checkpoint (internal state busy/closed); InternalCheckpoint returning false for any store-level reason.","commonSituations":"Checkpoint triggered with no active client sessions attached; checkpoint issued after the store began closing; resource exhaustion preventing the checkpoint thread from starting.","solutions":["Ensure at least one active session exists before calling Checkpoint() (attach a session first)","Check the hot store is fully initialized and not being closed when the checkpoint is issued","Inspect hot_store status/logs for the underlying InternalCheckpoint failure reason","Retry the checkpoint after conditions are corrected; the status is recorded as FAILED so the next round can proceed"],"exampleFix":"// before\nf2->Checkpoint(); // no active sessions\n// after\nif (f2->NumActiveSessions() == 0) { session = f2->NewSession(); /* attach */ }\nf2->Checkpoint();","handlingStrategy":"retry","validationCode":"if (f2_active_sessions == 0) { attach_session(); }\nif (store_closing.load()) { return; }","typeGuard":null,"tryCatchPattern":"bool ok = issue_checkpoint();\nif (!ok) { log_error(\"checkpoint not started; retrying later\"); schedule_retry(); }","preventionTips":["Ensure active sessions exist before Checkpoint()","Do not checkpoint during shutdown","Treat a false InternalCheckpoint return as retryable, not fatal"],"tags":["checkpoint","hot-store","persistence"],"backgroundTag":"invalid-state-transition","analyzedSha":"321d872eabda6a0345c8bd76419f89723ed864ae","analyzedAt":"2026-09-15T22:18:00.693Z","contentChangedAt":"2026-09-15T22:18:00.693Z","schemaVersion":2},"datasetVersion":"2026-09-16T04:17:20.429Z"}