Project

General

Profile

Fix #8107

When updating pools with the api requests fail silently if pool creation is still running.

Added by Christina Meno over 7 years ago. Updated over 7 years ago.

Status:
Resolved
Priority:
Normal
Assignee:
Category:
Backend (REST API)
Target version:
% Done:

0%

Source:
other
Tags:
Backport:
Reviewed:
Affected Versions:
ceph-qa-suite:
Crash signature (v1):
Crash signature (v2):

Description

Steps to reproduce remove the sleeps and run nosetests tests/test_pool_management.py

debug at the monitor level of ceph confirms that it refuses to update the pool:

2014-04-14 13:25:20.169270 7fdc1d026700 10 mon.mira098@2(peon) e1 handle_route mon_command_ack([{"var": "pg_num", "prefix": "osd pool set", "pool": "test1", "val": 128, "format": "json"}]=0 currently creating pgs, wait v23) v1 to unknown.0 :/0

Associated revisions

Revision f62e84bf (diff)
Added by John Spray over 7 years ago

cthulhu: handle issues with ongoing creations

1. PgCreatingRequest checks pg_num in OSD map =============================================

A change to the behaviour of PgCreatingRequest
to handle the case where we send ceph a `osd pool set pg_num`
operation, see apparent success, but in fact the OSD map has not
been updated with the correct pg_num (due to a conflict with
some other ongoing pg creation). Now, we check the osd map at
all stages and error out if we don't see the pg_num we expect.

2. Create PoolCreatingRequest =============================

Previously pool creations completed as soon as the pool as added
to the OSD map. Now, pool creation requests last until all the
PGs in the pool have left 'creating' state. This means that callers
doing a "create, modify" sequence can be sure that the pool will
be ready to handle their modifications as soon as the create operation
completes.

Fixes: #8107

History

#1 Updated by John Spray over 7 years ago

  • Tracker changed from Bug to Fix
  • Assignee set to John Spray
  • Target version changed from v1.2 Backlog to v1.2-dev8
  • translation missing: en.field_story_points set to 3.0

Will need to add some logic for detecting if the pool modification operation didn't really happen, as we can't avoid seeing "false success" from commands here

#2 Updated by John Spray over 7 years ago

  • Status changed from New to Resolved

Also available in: Atom PDF