Project

General

Profile

Actions

Bug #70935

closed

crimson: ObjectContextLoader::load_and_lock_clone: clone 3:af2b6ce8:::gibba00635337-24:1c not found

Added by Samuel Just 11 months ago. Updated 5 months ago.

Status:
Resolved
Priority:
Normal
Assignee:
Category:
-
Target version:
-
% Done:

0%

Source:
Backport:
Regression:
No
Severity:
3 - minor
Reviewed:
Affected Versions:
ceph-qa-suite:
Pull request ID:
Tags (freeform):
Fixed In:
v20.0.0-1559-g11ce348d9f
Released In:
v20.2.0~533
Upkeep Timestamp:
2025-11-01T01:13:31+00:00

Description

RecoveryBackend::interruptible_future<BackfillInterval>
RecoveryBackend::scan_for_backfill(
  const hobject_t start,
  [[maybe_unused]] const std::int64_t min,
  const std::int64_t max)
{
  LOG_PREFIX(RecoveryBackend::scan_for_backfill);
  DEBUGDPP("starting from {}", pg, start);
  auto version_map = seastar::make_lw_shared<std::map<hobject_t, eversion_t>>();
  auto&& [objects, next] = co_await backend->list_objects(start, max);
  co_await interruptor::parallel_for_each(objects, seastar::coroutine::lambda([FNAME, this, version_map]
    (const hobject_t& object) -> interruptible_future<> {
    DEBUGDPP("querying obj:{}", pg, object);
    auto obc_manager = pg.obc_loader.get_obc_manager(object);
    co_await pg.obc_loader.load_and_lock(
      obc_manager, RWState::RWREAD
    ).handle_error_interruptible(
      crimson::ct_error::assert_all("unexpected error")
    );
...

The call to get_obc_manager needs to specify !resolve_clone. The clone_id of the clone is not necessarily a valid snapshot of the object.

Reproduces on any clone whose id doesn't happen to be a live snapshot.

  pkill -9 crimson-osd
  ../src/stop.sh
  MDS=0 MGR=1 OSD=4 MON=1 ../src/vstart.sh --without-dashboard -X --redirect-output --debug -n --no-restart $@
  ./bin/ceph osd pool create rbd 8 8 replicated replicated_rule 2 2 2
  ./bin/ceph config set osd crimson_osd_scheduler_concurrency 5
  ./bin/ceph config set osd osd_min_pg_log_entries 1
  ./bin/ceph config set osd osd_max_pg_log_entries 2
  ./bin/ceph config set osd osd_pg_log_trim_min 0
  sleep 5
  ./bin/ceph osd out 0
  sleep 5
  ./bin/ceph_test_rados --max-ops 5000 --objects 50 --max-in-flight 10 --size 40000 --min-stride-size 4000 --max-stride-size 8000 --op read 0 --op write 100 --op delete 50 --op snap_create 50 --op snap_remove 50 --pool rbd
  sleep 5
  ./bin/ceph osd in 0

Actions #1

Updated by Samuel Just 11 months ago

  • Description updated (diff)
Actions #2

Updated by Samuel Just 11 months ago

  • Pull request ID set to 62837
Actions #3

Updated by Matan Breizman 11 months ago

  • Status changed from In Progress to Resolved
Actions #4

Updated by Upkeep Bot 8 months ago

  • Merge Commit set to 11ce348d9f062f78c72b82112d3ad758bf835ed7
  • Fixed In set to v20.0.0-1559-g11ce348d9f0
  • Upkeep Timestamp set to 2025-07-09T17:42:05+00:00
Actions #5

Updated by Upkeep Bot 8 months ago

  • Fixed In changed from v20.0.0-1559-g11ce348d9f0 to v20.0.0-1559-g11ce348d9f
  • Upkeep Timestamp changed from 2025-07-09T17:42:05+00:00 to 2025-07-14T17:42:41+00:00
Actions #6

Updated by Upkeep Bot 5 months ago

  • Released In set to v20.2.0~533
  • Upkeep Timestamp changed from 2025-07-14T17:42:41+00:00 to 2025-11-01T01:13:31+00:00
Actions

Also available in: Atom PDF