]> git.apps.os.sepia.ceph.com Git - ceph.git/commit
mon/OSDMonitor: always create pgs in the epoch in which the pool was created 55979/head
authorSamuel Just <sjust@redhat.com>
Wed, 28 Feb 2024 01:56:52 +0000 (17:56 -0800)
committerSamuel Just <sjust@redhat.com>
Wed, 6 Mar 2024 20:55:28 +0000 (12:55 -0800)
commit7ef7a13a9b4a020e42e7d73ab20089bceb083ac7
tree2444bd53b0d6c35ccac84cf46a07c040a62054c2
parent2af36160b01ee1b6ceead47096ea7cc97c4e9501
mon/OSDMonitor: always create pgs in the epoch in which the pool was created

The logic here didn't actually work.  If update_pending_pgs doesn't get
to a particular PG (because of mon_osd_max_creating_pgs limitation) in
the epoch in which the pool was created, the pg will end up with a
same_interval_since at that epoch rather than the pool creation epoch.
This can cause an IO submitted by a client based on the epoch in which
the pool was created to be rejected by the OSD without an interval
change actually occuring and therefore without the client resending the
op.

In order to make this limit actually function, once we actually process
a pending pg, we'd have to go back to the OSDMap at which the pool was
created and work forward to get the correct interval bound.  That seems
even more expensive, so instead this patch simply removes the limit.

Fixes: https://tracker.ceph.com/issues/64546
Signed-off-by: Samuel Just <sjust@redhat.com>
src/common/options/mon.yaml.in
src/mon/OSDMonitor.cc