]> git.apps.os.sepia.ceph.com Git - ceph.git/log
ceph.git
10 months agoWarning added for slow operations and stalled read in BlueStore. User can control... 59464/head
sajibreadd [Mon, 27 May 2024 07:30:06 +0000 (13:30 +0600)]
Warning added for slow operations and stalled read in BlueStore. User can control how much time the warning should persist after last occurence and maximum number of operations as a threshold will be considered for the warning.

Fixes: https://tracker.ceph.com/issues/62500
Signed-off-by: Md Mahamudur Rahaman Sajib <mahamudur.sajib@croit.io>
(cherry picked from commit 73b80a9a2c38259346fb646f85fa2ba4dcbb1329)

10 months agoMerge pull request #59410 from adk3798/wip-67681-squid
Adam King [Mon, 26 Aug 2024 15:05:33 +0000 (11:05 -0400)]
Merge pull request #59410 from adk3798/wip-67681-squid

squid: mgr/cephadm: add "original_weight" parameter to OSD class

Reviewed-by: John Mulligan <jmulligan@redhat.com>
10 months agoMerge pull request #59430 from zdover23/wip-doc-2024-08-26-backport-59428-to-squid
Anthony D'Atri [Mon, 26 Aug 2024 13:22:46 +0000 (09:22 -0400)]
Merge pull request #59430 from zdover23/wip-doc-2024-08-26-backport-59428-to-squid

squid: doc/cephadm: how to get exact size_spec from device

10 months agoMerge pull request #59139 from k0ste/wip-67123-squid
afreen23 [Mon, 26 Aug 2024 09:08:25 +0000 (14:38 +0530)]
Merge pull request #59139 from k0ste/wip-67123-squid

squid: mgr/dashboard: add restful api for creating crush rule with type of 'erasure'

Reviewed-by: Afreen Misbah <afreen23.git@gmail.com>
10 months agodoc/cephadm: how to get exact size_spec from device 59430/head
Zac Dover [Sun, 25 Aug 2024 20:03:34 +0000 (06:03 +1000)]
doc/cephadm: how to get exact size_spec from device

Add instructions for retrieving the exact size of block devices.

Fixes: https://tracker.ceph.com/issues/66754
Signed-off-by: Zac Dover <zac.dover@proton.me>
(cherry picked from commit d00d1b52d50b5575d918c3be7b7a8249ef31f0a8)

10 months agoMerge pull request #59106 from aclamk/wip-67454-squid
Pere Diaz Bou [Sun, 25 Aug 2024 09:47:06 +0000 (11:47 +0200)]
Merge pull request #59106 from aclamk/wip-67454-squid

squid: os/bluestore: Multiple bdev labels on main block device

Reviewed-by: Pere Diaz Bou <pdiazbou@redhat.com>
Reviewed-by: Yuri Weinstein <yweins@redhat.com>
10 months agoMerge pull request #59424 from zdover23/wip-doc-2024-08-25-backport-59418-to-squid
Anthony D'Atri [Sun, 25 Aug 2024 03:06:56 +0000 (23:06 -0400)]
Merge pull request #59424 from zdover23/wip-doc-2024-08-25-backport-59418-to-squid

squid: doc/glossary: add "object storage"

10 months agodoc/glossary: add "object storage" 59424/head
Zac Dover [Fri, 23 Aug 2024 12:36:16 +0000 (22:36 +1000)]
doc/glossary: add "object storage"

Add a (very basic) definition of object storage.

Signed-off-by: Zac Dover <zac.dover@proton.me>
(cherry picked from commit 43057b88538e868b817acb04d5e6c4e95b4c716e)

10 months agoos/bluestore: Fix unbalanced new[]/delete[] in read_bdev_label functions 59106/head
Adam Kupczyk [Thu, 25 Jul 2024 12:42:43 +0000 (12:42 +0000)]
os/bluestore: Fix unbalanced new[]/delete[] in read_bdev_label functions

Signed-off-by: Adam Kupczyk <akupczyk@ibm.com>
(cherry picked from commit 64f6b5d1d7ecab9f17d6d32424fdab536b7a5a93)

10 months agoos/bluestore: Modify read_meta()
Adam Kupczyk [Fri, 12 Jul 2024 08:04:41 +0000 (08:04 +0000)]
os/bluestore: Modify read_meta()

When bdev is not opened, do not fallback to file-backed values
immediately.
First try to open temporary open bdev.

Signed-off-by: Adam Kupczyk <akupczyk@ibm.com>
(cherry picked from commit 811f2979f53201d7bf296e11e7ea62e493abe471)

10 months agoos/bluestore: fix fsck fixing multiple bdev label (superblock)
Adam Kupczyk [Mon, 1 Jul 2024 13:44:41 +0000 (13:44 +0000)]
os/bluestore: fix fsck fixing multiple bdev label (superblock)

The problem was that after fixing label location,
location was not marked as "good label".
In result the region was not excluded when saving allocator state.
After reading allocator state, label was treated as corrupted.

Fixed fixing bdev label when freelist is bitmap (HDD).

Signed-off-by: Adam Kupczyk <akupczyk@ibm.com>
(cherry picked from commit 721482adc0de1371cf92cd4e73255ba170a2a5ac)

10 months agoos/bluestore: Review fixes
Adam Kupczyk [Fri, 10 May 2024 07:38:56 +0000 (07:38 +0000)]
os/bluestore: Review fixes

Signed-off-by: Adam Kupczyk <akupczyk@ibm.com>
(cherry picked from commit 4adb942a6489bdd63199b0036cf6a22bf4880906)

10 months agotest/store_test: Add double check for repair
Adam Kupczyk [Fri, 10 May 2024 09:19:43 +0000 (09:19 +0000)]
test/store_test: Add double check for repair

Add fsck after repair to verify.
Also drop some unnecesary calls to mount().

Signed-off-by: Adam Kupczyk <akupczyk@ibm.com>
(cherry picked from commit 3c2574c3aa19453ebf488d2fb4c014d639637384)

10 months agoceph-bluestore-tool: Fix set-label-key and rm-label-key
Adam Kupczyk [Wed, 24 Apr 2024 17:13:22 +0000 (17:13 +0000)]
ceph-bluestore-tool: Fix set-label-key and rm-label-key

Functions were not adapted to multiple superblocks.
Now for superblock labels that handle multiple copies, all are updated.

Signed-off-by: Adam Kupczyk <akupczyk@ibm.com>
(cherry picked from commit 4927876f7a426d1712e1a3ec8cfd045c582abce1)

10 months agoos/bluestore: multiple bdev label (superblock) fixes
Adam Kupczyk [Wed, 24 Apr 2024 14:29:08 +0000 (14:29 +0000)]
os/bluestore: multiple bdev label (superblock) fixes

- fixed logic of bluestore_debug_permit_any_bdev_label
- minor fixes

Signed-off-by: Adam Kupczyk <akupczyk@ibm.com>
(cherry picked from commit 7bbf2a897a02bfa84b921b0b769bf6527ed5e028)

10 months agoos/bluestore: Adapt unittest for multi bdev label
Adam Kupczyk [Tue, 13 Feb 2024 12:57:26 +0000 (12:57 +0000)]
os/bluestore: Adapt unittest for multi bdev label

Signed-off-by: Adam Kupczyk <akupczyk@ibm.com>
(cherry picked from commit 6acad6d19e99425bf336ecb01a879d789c18acdc)

10 months agoos/bluestore: Small fix to mkfs
Adam Kupczyk [Tue, 13 Feb 2024 12:54:27 +0000 (12:54 +0000)]
os/bluestore: Small fix to mkfs

Signed-off-by: Adam Kupczyk <akupczyk@ibm.com>
(cherry picked from commit eac365cd1a7554f31d0018a3b45f060e22ad7add)

10 months agoos/bluestore: Made read/write_meta bdev aware
Adam Kupczyk [Tue, 13 Feb 2024 12:48:33 +0000 (12:48 +0000)]
os/bluestore: Made read/write_meta bdev aware

When bdev is not set, do not even try to operate on label.

Signed-off-by: Adam Kupczyk <akupczyk@ibm.com>
(cherry picked from commit fe764c4fd8d96571a91418b0e6d84bd28c082404)

10 months agoos/bluestore: Add read/write_bdev_label functions
Adam Kupczyk [Tue, 13 Feb 2024 12:46:38 +0000 (12:46 +0000)]
os/bluestore: Add read/write_bdev_label functions

Made _read/_write_bdev_label private.
Instead created read/write_bdev_label.

Signed-off-by: Adam Kupczyk <akupczyk@ibm.com>
(cherry picked from commit 9b30da39a0dd1afc9c50303c4057f749b15de46a)

10 months agoos/bluestore: Modify bdev-label functions operate on bdev
Adam Kupczyk [Tue, 13 Feb 2024 12:30:53 +0000 (12:30 +0000)]
os/bluestore: Modify bdev-label functions operate on bdev

Now bdev-label related function operate on BlockDevices.
It used to open own file descriptor to operate.
It could no longer be supported because we need bdev->get_size().

Signed-off-by: Adam Kupczyk <akupczyk@ibm.com>
(cherry picked from commit 8a825e133a7c6e1b8ec0e14438b553b2bd9e6ec9)

10 months agoos/bluestore: Bluefs, expand api for getting BlockDevice on BD/WAL
Adam Kupczyk [Tue, 13 Feb 2024 12:50:51 +0000 (12:50 +0000)]
os/bluestore: Bluefs, expand api for getting BlockDevice on BD/WAL

Signed-off-by: Adam Kupczyk <akupczyk@ibm.com>
(cherry picked from commit 0891702f23a7e98f79e58b6a35abd23a8944aa08)

10 months agoos/bluestore: Minor fixes
Adam Kupczyk [Thu, 8 Feb 2024 23:53:25 +0000 (23:53 +0000)]
os/bluestore: Minor fixes

These were noticed during review.

Signed-off-by: Adam Kupczyk <akupczyk@ibm.com>
(cherry picked from commit e1cc40b133bb6025aff2e99a722ad01d20b67fb5)

10 months agoos/bluestore: Update test for resilience of bdev label against bad UUID
Adam Kupczyk [Thu, 8 Feb 2024 14:38:09 +0000 (14:38 +0000)]
os/bluestore: Update test for resilience of bdev label against bad UUID

Signed-off-by: Adam Kupczyk <akupczyk@ibm.com>
(cherry picked from commit b89fb919160165ea1295254f8b6edf43d9cd3632)

10 months agoos/bluestore: Only accept bdev labels with our UUID
Adam Kupczyk [Thu, 8 Feb 2024 14:35:29 +0000 (14:35 +0000)]
os/bluestore: Only accept bdev labels with our UUID

This fixed the problem that some saboteur label of different UUID
with high "epoch" will trick label discovery.

Signed-off-by: Adam Kupczyk <akupczyk@ibm.com>
(cherry picked from commit 82b2ec7c2dd24b012e0ab66654850dc169138d8b)

10 months agoos/bluestore: Split check* and set* _main_bdev_label
Adam Kupczyk [Thu, 8 Feb 2024 23:36:49 +0000 (23:36 +0000)]
os/bluestore: Split check* and set* _main_bdev_label

Splitting makes them clearer.

Signed-off-by: Adam Kupczyk <akupczyk@ibm.com>
(cherry picked from commit a3b044bb9dfb50fcb65ac2c9776488936620fc9f)

10 months agoos/bluestore: Adapt multi bdev label tests for !bdev->supported_bdev_label()
Adam Kupczyk [Wed, 7 Feb 2024 17:26:50 +0000 (17:26 +0000)]
os/bluestore: Adapt multi bdev label tests for !bdev->supported_bdev_label()

Just skip tests.

Signed-off-by: Adam Kupczyk <akupczyk@ibm.com>
(cherry picked from commit 660709154795a299e81054229968ae3169afb3c6)

10 months agoos/bluestore: Make bdev multi label compatible with !bdev->supported_bdev_label()
Adam Kupczyk [Thu, 8 Feb 2024 23:03:36 +0000 (23:03 +0000)]
os/bluestore: Make bdev multi label compatible with !bdev->supported_bdev_label()

Some devices (spdk, nvme) claim that they do not support bdev label.
It does not make sense since it just means ability to write [0-4k] on the device.
Regardless, special care is taken of the devices that do not have label written.

Signed-off-by: Adam Kupczyk <akupczyk@ibm.com>
(cherry picked from commit c8d6ab7edd0ea90cfa14f204561d2130c927319a)

10 months agoos/bluestore: Fix of bdev label fsck
Adam Kupczyk [Thu, 8 Feb 2024 22:51:32 +0000 (22:51 +0000)]
os/bluestore: Fix of bdev label fsck

Procedure that verifies allocations vs freelist was not aware of bdev labels.
Now it properly omits them in comparisons between free and freelist.

Signed-off-by: Adam Kupczyk <akupczyk@ibm.com>
(cherry picked from commit 12236c37351aad52b7ff4dc9987120ae22049bf5)

10 months agoos/bluestore: Tests for multi bdev label feature
Adam Kupczyk [Fri, 2 Feb 2024 17:09:20 +0000 (17:09 +0000)]
os/bluestore: Tests for multi bdev label feature

Signed-off-by: Adam Kupczyk <akupczyk@ibm.com>
(cherry picked from commit b53a6d04295f4a6770f80b3ad182abdb41d84e92)

10 months agoos/bluestore: Fix of funny constructor misuse
Adam Kupczyk [Fri, 2 Feb 2024 16:05:32 +0000 (16:05 +0000)]
os/bluestore: Fix of funny constructor misuse

Signed-off-by: Adam Kupczyk <akupczyk@ibm.com>
(cherry picked from commit f6f5f898f1584b27b5b442a2cdc22d33226240f2)

10 months agoos/bluestore: Fix problem with marking unavailable bdev label positions
Adam Kupczyk [Fri, 2 Feb 2024 15:41:39 +0000 (15:41 +0000)]
os/bluestore: Fix problem with marking unavailable bdev label positions

It was attempted to mark bdev label locations as taken before adding bluefs allocation on main.
This in turn caused collision when bluefs finally tried to mark regions.

Signed-off-by: Adam Kupczyk <akupczyk@ibm.com>
(cherry picked from commit 9ab22a84ccd7dc9348ea317928878e19ff4921f2)

10 months agoos/bluestore: Fix repair for multi label
Adam Kupczyk [Fri, 2 Feb 2024 12:30:09 +0000 (12:30 +0000)]
os/bluestore: Fix repair for multi label

When there was no bdev labels to repair, assert happened.

Signed-off-by: Adam Kupczyk <akupczyk@ibm.com>
(cherry picked from commit 140dc2e74d72af21c3a84d3ffa29f1806ca4965a)

10 months agoos/bluestore: Add ability to upgrade into multi label
Adam Kupczyk [Fri, 2 Feb 2024 12:27:50 +0000 (12:27 +0000)]
os/bluestore: Add ability to upgrade into multi label

By default original behaviour is preserved.
One can upgrade into multi label by:

Signed-off-by: Adam Kupczyk <akupczyk@ibm.com>
(cherry picked from commit b24a4945a6c5c2c47e5b32b295af826cd090786c)

10 months agoos/bluestore: Hack for fsck with multi label
Adam Kupczyk [Fri, 2 Feb 2024 12:25:16 +0000 (12:25 +0000)]
os/bluestore: Hack for fsck with multi label

Config bluestore_bdev_label_require_all interferes with fsck / repair.
For those functions disable the flag.

Signed-off-by: Adam Kupczyk <akupczyk@ibm.com>
(cherry picked from commit 733a4513e56dcb869204c59abfbbc129b89b05d6)

10 months agoos/bluestore: Fix bdev_label_main_try_reserve
Adam Kupczyk [Fri, 2 Feb 2024 12:22:15 +0000 (12:22 +0000)]
os/bluestore: Fix bdev_label_main_try_reserve

It added valid_locations which it should not been doing.

Signed-off-by: Adam Kupczyk <akupczyk@ibm.com>
(cherry picked from commit c7b4bcbaec6f6c478ae91f5b32c626d98e1e2635)

10 months agoos/bluestore: Fix write_bdev_label
Adam Kupczyk [Fri, 2 Feb 2024 12:19:05 +0000 (12:19 +0000)]
os/bluestore: Fix write_bdev_label

Fix default value of parameter 'location'.
It should consist of one element BDEV_LABEL_POSITION (0),
not just create with size 0.

Signed-off-by: Adam Kupczyk <akupczyk@ibm.com>
(cherry picked from commit 28dbacf1745b8a5a63b22639e6730a9559b354b7)

10 months agoos/bluestore: fix DB_SUPER_RESERVED->SUPER_RESERVED
Adam Kupczyk [Wed, 31 Jan 2024 07:31:46 +0000 (07:31 +0000)]
os/bluestore: fix DB_SUPER_RESERVED->SUPER_RESERVED

Signed-off-by: Adam Kupczyk <akupczyk@ibm.com>
(cherry picked from commit 12e8c32299fc2c08ece62f77700e4e23c99b6862)

10 months agoos/bluestore: Small fix to check_or_set_bdev_label
Adam Kupczyk [Tue, 30 Jan 2024 17:45:14 +0000 (17:45 +0000)]
os/bluestore: Small fix to check_or_set_bdev_label

Signed-off-by: Adam Kupczyk <akupczyk@ibm.com>
(cherry picked from commit 7e1d04345d96fde9cdece2a7339d8705ea0805f1)

10 months agoos/bluestore: Fix write_meta; increase epoch with each write
Adam Kupczyk [Tue, 30 Jan 2024 13:25:31 +0000 (13:25 +0000)]
os/bluestore: Fix write_meta; increase epoch with each write

Signed-off-by: Adam Kupczyk <akupczyk@ibm.com>
(cherry picked from commit d48f2c6f99c529db4d5ed1a2a986d328765dd634)

10 months agoos/bluestore: Fix fsck() for multi label
Adam Kupczyk [Tue, 30 Jan 2024 13:07:38 +0000 (13:07 +0000)]
os/bluestore: Fix fsck() for multi label

Do not operate if bdev label is outside device size.

Signed-off-by: Adam Kupczyk <akupczyk@ibm.com>
(cherry picked from commit 86f3aad2db49721af6ca7782e789e5861918406a)

10 months agoos/bluestore: Fix _check_or_set_main_bdev_label
Adam Kupczyk [Tue, 30 Jan 2024 13:04:03 +0000 (13:04 +0000)]
os/bluestore: Fix _check_or_set_main_bdev_label

Change use of local label to BlueStore's bdev_label.

Signed-off-by: Adam Kupczyk <akupczyk@ibm.com>
(cherry picked from commit b4a0365741d2f92e843cf35dcd0cc7cb75b08789)

10 months agoos/bluestore: Fix _main_bdev_label_try_reserve
Adam Kupczyk [Tue, 30 Jan 2024 13:01:23 +0000 (13:01 +0000)]
os/bluestore: Fix _main_bdev_label_try_reserve

When location of label is acceptable add it as proper position for use.

Signed-off-by: Adam Kupczyk <akupczyk@ibm.com>
(cherry picked from commit 408ff2378cfda6726e9422ed826d39c39bbaa82b)

10 months agoos/bluestore: minor fix in _check_or_set_main_bdev_label
Adam Kupczyk [Tue, 30 Jan 2024 12:58:40 +0000 (12:58 +0000)]
os/bluestore: minor fix in _check_or_set_main_bdev_label

Signed-off-by: Adam Kupczyk <akupczyk@ibm.com>
(cherry picked from commit 019a88b766c6f95e99297fe794f7be469435bedf)

10 months agoos/bluestore: Fix read_main_bdev_label
Adam Kupczyk [Tue, 30 Jan 2024 12:54:26 +0000 (12:54 +0000)]
os/bluestore: Fix read_main_bdev_label

When valid label with new epoch is found,
all that we have marked as good before are released.

Signed-off-by: Adam Kupczyk <akupczyk@ibm.com>
(cherry picked from commit c4f212ee1fc331c8de8949999c6a56948617d43e)

10 months agoos/bluestore: Fix write_bdev_label
Adam Kupczyk [Tue, 30 Jan 2024 12:52:17 +0000 (12:52 +0000)]
os/bluestore: Fix write_bdev_label

If required location is outside device size, just skip it.

Signed-off-by: Adam Kupczyk <akupczyk@ibm.com>
(cherry picked from commit 7c4a8642f6c995087091e35bde4e921f12086edd)

10 months agoos/bluestore: Fix read_meta and write_meta
Adam Kupczyk [Tue, 30 Jan 2024 12:45:05 +0000 (12:45 +0000)]
os/bluestore: Fix read_meta and write_meta

Remove asserts if optional reading of bdev label fails.
Pass all valid bdev locations when writing bdev labels.

Signed-off-by: Adam Kupczyk <akupczyk@ibm.com>
(cherry picked from commit c0bd6fff41ba0c7e5d7a7fe9c7bfc5fa7b90beb4)

10 months agoos/bluestore: Add fsck procedure for bdev multi labels
Adam Kupczyk [Thu, 8 Feb 2024 22:28:22 +0000 (22:28 +0000)]
os/bluestore: Add fsck procedure for bdev multi labels

Now fsck can properly detect collision between labels and object data / bluefs files.
Additional labels have lower precedence, they never overwrite other data.
If collision label - object data happens, the object is moved somewhere else.
If collision label - bluefs file happens, it is left unsolved.

Signed-off-by: Adam Kupczyk <akupczyk@ibm.com>
(cherry picked from commit 7ecaede175a13f600f50fd9c877132a4f130c321)

10 months agoos/bluestore: Adapt read_meta / write_meta
Adam Kupczyk [Tue, 30 Jan 2024 07:06:52 +0000 (07:06 +0000)]
os/bluestore: Adapt read_meta / write_meta

Modified to align with multi label properly.
Now functions still cache, but use read_main_bdev_label.

Signed-off-by: Adam Kupczyk <akupczyk@ibm.com>
(cherry picked from commit f955c66290bd2a2510c2c9daafedf43f755ddae4)

10 months agoos/bluestore: Give label multiple positions to replicate to
Adam Kupczyk [Tue, 30 Jan 2024 07:01:34 +0000 (07:01 +0000)]
os/bluestore: Give label multiple positions to replicate to

Bdev label for main device can now be present in multiple locations.
The locations of valid labels are memorized and only those locations are used.
This is to preserve from overwriting data, should collision label - object or bluefs occur.

Signed-off-by: Adam Kupczyk <akupczyk@ibm.com>
(cherry picked from commit aed1e686b3e058cc4bd767468f764a272ba601e1)

10 months agoos/bluestore: Create read_bdev_main_label function
Adam Kupczyk [Tue, 30 Jan 2024 06:54:38 +0000 (06:54 +0000)]
os/bluestore: Create read_bdev_main_label function

Duplicate read_bdev_label into dedicated read_bdev_main_label.
New function reads multiple labels.
Also created check_or_set_main_bdev_label in similiar way.

Signed-off-by: Adam Kupczyk <akupczyk@ibm.com>
(cherry picked from commit 75b1a22b95963a8f722ecff80756718cbaf01fce)

10 months agoos/bluestore: Modify read/write_bdev_label functions
Adam Kupczyk [Mon, 29 Jan 2024 15:34:18 +0000 (15:34 +0000)]
os/bluestore: Modify read/write_bdev_label functions

Modify read_bdev_label and write_bdev_label functions to operate on any disk location.
Default falls back to original position 0, which is now named BDEV_LABEL_POSITION.

Signed-off-by: Adam Kupczyk <akupczyk@ibm.com>
(cherry picked from commit 8e7b9deb65347b80b5c1ab895654bce6681741ab)

10 months agoos/bluestore: Remove bluestore_debug_prefill
Adam Kupczyk [Wed, 24 Jan 2024 16:31:32 +0000 (16:31 +0000)]
os/bluestore: Remove bluestore_debug_prefill

Remove outdated and useless debug setting.

Signed-off-by: Adam Kupczyk <akupczyk@ibm.com>
(cherry picked from commit 3b904283f33ebb9ed83b82eeb6f97846781401ac)

10 months agoos/bluestore: Make read_meta / write_meta cached
Adam Kupczyk [Tue, 23 Jan 2024 12:31:53 +0000 (12:31 +0000)]
os/bluestore: Make read_meta / write_meta cached

Modified read_meta and write_meta to keep current bdev_label cached,
instead of reading it all over again.

Signed-off-by: Adam Kupczyk <akupczyk@ibm.com>
(cherry picked from commit 22c3eb548bf6270e28ee07891c4cecfa3514d4e1)

10 months agoMerge pull request #59364 from ceph/squid-release
Yuri Weinstein [Thu, 22 Aug 2024 22:29:11 +0000 (15:29 -0700)]
Merge pull request #59364 from ceph/squid-release

v19.1.1

Reviewed-by: Laura Flores <lflores@redhat.com>
Reviewed-by: Yuri Weinstein <yweinste@redhat.com>
10 months agomgr/cephadm: add "original_weight" parameter to OSD class 59410/head
Adam King [Mon, 19 Aug 2024 16:30:24 +0000 (12:30 -0400)]
mgr/cephadm: add "original_weight" parameter to OSD class

Fixes: https://tracker.ceph.com/issues/67329
Signed-off-by: Adam King <adking@redhat.com>
(cherry picked from commit 04330f5df92994882efcd4879d5c37279138e97b)

10 months agoMerge pull request #59294 from zdover23/wip-doc-2024-08-19-backport-59256-to-squid
Zac Dover [Wed, 21 Aug 2024 14:12:01 +0000 (00:12 +1000)]
Merge pull request #59294 from zdover23/wip-doc-2024-08-19-backport-59256-to-squid

squid: doc/cephfs: s/mountpoint/mount point/

Reviewed-by: Anthony D'Atri <anthony.datri@gmail.com>
10 months agoMerge pull request #59010 from AliMasarweh/wip-67308-squid
Yuri Weinstein [Tue, 20 Aug 2024 17:55:10 +0000 (10:55 -0700)]
Merge pull request #59010 from AliMasarweh/wip-67308-squid

squid: RGW|BN: fix lifecycle test issue

Reviewed-by: Casey Bodley <cbodley@redhat.com>
11 months ago19.1.1 59364/head v19.1.1
Ceph Release Team [Tue, 20 Aug 2024 16:51:15 +0000 (12:51 -0400)]
19.1.1

Signed-off-by: Ceph Release Team <ceph-maintainers@ceph.io>
11 months agoMerge pull request #59055 from yuvalif/wip-67364-squid
Yuri Weinstein [Tue, 20 Aug 2024 14:59:38 +0000 (07:59 -0700)]
Merge pull request #59055 from yuvalif/wip-67364-squid

squid: common/dout: fix FTBFS on GCC 14

Reviewed-by: Radoslaw Zarzynski <rzarzyns@redhat.com>
11 months agoMerge pull request #59041 from NitzanMordhai/wip-67349-squid
Yuri Weinstein [Tue, 20 Aug 2024 14:59:01 +0000 (07:59 -0700)]
Merge pull request #59041 from NitzanMordhai/wip-67349-squid

squid: Test: osd-recovery-space.sh extends the wait time for "recovery toofull"

Reviewed-by: Samuel Just <sjust@redhat.com>
Reviewed-by: Radoslaw Zarzynski <rzarzyns@redhat.com>
11 months agoMerge pull request #58816 from Svelar/wip-67134-squid
Yuri Weinstein [Tue, 20 Aug 2024 14:56:07 +0000 (07:56 -0700)]
Merge pull request #58816 from Svelar/wip-67134-squid

squid: bluestore/bluestore_types: avoid heap-buffer-overflow in another way to keep code uniformity

Reviewed-by: Igor Fedotov <ifedotov@suse.com>
11 months agoMerge pull request #59298 from Matan-B/wip-57782-squid-v2
Matan Breizman [Tue, 20 Aug 2024 11:22:29 +0000 (14:22 +0300)]
Merge pull request #59298 from Matan-B/wip-57782-squid-v2

squid: crimson/os/seastore: add checksum offload to RBM

Reviewed-by: Aishwarya Mathuria <amathuri@redhat.com>
11 months agocrimson/os/seastore/cbj: skip crc calculation for cbj header if device supports the... 59298/head
myoungwon oh [Thu, 18 Jul 2024 07:41:05 +0000 (07:41 +0000)]
crimson/os/seastore/cbj: skip crc calculation for cbj header if device supports the checksum offload

Signed-off-by: Myoungwon Oh <myoungwon.oh@samsung.com>
(cherry picked from commit 07d066346fce744dbe95a4325c394f5f01f4f031)

11 months agocrimson/os/seastore: disable crc calculation if end to end data protection is enabled
Myoungwon Oh [Thu, 4 Jul 2024 09:04:38 +0000 (18:04 +0900)]
crimson/os/seastore: disable crc calculation if end to end data protection is enabled

Signed-off-by: Myoungwon Oh <myoungwon.oh@samsung.com>
(cherry picked from commit e92273a4f15987d08b9e342b18e67dc310329887)

11 months agocrimson/os/seastore/rbm: add handle_exception() to pass_through_io()
myoungwon oh [Fri, 12 Jul 2024 04:13:13 +0000 (04:13 +0000)]
crimson/os/seastore/rbm: add handle_exception() to pass_through_io()

Signed-off-by: Myoungwon Oh <myoungwon.oh@samsung.com>
(cherry picked from commit 169a81ee51bd62f120dff5d4618f1a9eeec12fd9)

11 months agocrimson/os/seastore: remove multistream related codes
myoungwon oh [Thu, 13 Jun 2024 06:07:56 +0000 (06:07 +0000)]
crimson/os/seastore: remove multistream related codes

Current codes allow the device to allocate multiple namespace without specific policy
if the nvme device report that it is capable of mutistream functionality.
So, this commit removes the multistream related code, leaving it as a TODO.

Signed-off-by: Myoungwon Oh <myoungwon.oh@samsung.com>
(cherry picked from commit cc5b4a25155dea919b5a939063370b4f13a992ec)

11 months agocrimson/os/seastore: add nvme_read and nvme_write to be used when end to end data...
myoungwon oh [Tue, 28 May 2024 10:35:45 +0000 (10:35 +0000)]
crimson/os/seastore: add nvme_read and nvme_write to be used when end to end data protection is enabled

Signed-off-by: Myoungwon Oh <myoungwon.oh@samsung.com>
(cherry picked from commit 5f86c84118e6b60f9e5d23d4e5dea8efab6b858a)

11 months agocrimson/os/seastore/rbm: turn on end-to-end-data-protection during mkfs if possible
myoungwon oh [Mon, 27 May 2024 09:32:56 +0000 (09:32 +0000)]
crimson/os/seastore/rbm: turn on end-to-end-data-protection during mkfs if possible

Signed-off-by: Myoungwon Oh <myoungwon.oh@samsung.com>
(cherry picked from commit 71398e2d4fe4fe38bee1ff16db08c8977127273a)

11 months agocrimson/os/seastore: replace rbm_metadata_header_t with rbm_superblock_t
myoungwon oh [Thu, 20 Jun 2024 05:32:15 +0000 (05:32 +0000)]
crimson/os/seastore: replace rbm_metadata_header_t with rbm_superblock_t

Signed-off-by: Myoungwon Oh <myoungwon.oh@samsung.com>
(cherry picked from commit 364fb38669fdada3cf78d74efeacdd311c53c20d)

11 months agoMerge pull request #58957 from Matan-B/wip-58367-squid
Matan Breizman [Mon, 19 Aug 2024 09:41:42 +0000 (12:41 +0300)]
Merge pull request #58957 from Matan-B/wip-58367-squid

squid: crimson/os/seastore/cached_extent: add the "refresh" ability to lba mappings

Reviewed-by: Aishwarya Mathuria <amathuri@redhat.com>
11 months agoMerge pull request #57494 from lxbsz/wip-66052
Rishabh Dave [Mon, 19 Aug 2024 07:59:06 +0000 (13:29 +0530)]
Merge pull request #57494 from lxbsz/wip-66052

squid: mds: find a new head for the batch ops when the head is dead

Reviewed-by: Rishabh Dave <ridave@redhat.com>
Reviewed-by: Leonid Usov <leonid.usov@ibm.com>
11 months agodoc/cephfs: s/mountpoint/mount point/ 59294/head
Zac Dover [Sat, 17 Aug 2024 03:37:58 +0000 (13:37 +1000)]
doc/cephfs: s/mountpoint/mount point/

Change the string "mountpoint" to "mount point" in English-language
strings (as opposed to in commands, where the string "mountpoint"
sometimes appears and is correct).

cf. https://github.com/ceph/ceph/pull/58908#discussion_r1697715486
in which page 345 of The IBM Style Guide is referenced to back up this
change.

Signed-off-by: Zac Dover <zac.dover@proton.me>
(cherry picked from commit 57ed73eaa6945c69059d299ea5310eaac57e2299)

11 months agoMerge pull request #58788 from batrick/wip-67120-squid
Rishabh Dave [Mon, 19 Aug 2024 07:00:09 +0000 (12:30 +0530)]
Merge pull request #58788 from batrick/wip-67120-squid

squid: qa/cephfs: ignore variant of MDS_UP_LESS_THAN_MAX

Reviewed-by: Rishabh Dave <ridave@redhat.com>
11 months agoMerge pull request #58790 from batrick/wip-67153-squid
Rishabh Dave [Mon, 19 Aug 2024 06:57:13 +0000 (12:27 +0530)]
Merge pull request #58790 from batrick/wip-67153-squid

squid: qa: suppress __trans_list_add valgrind warning

Reviewed-by: Rishabh Dave <ridave@redhat.com>
11 months agoMerge pull request #58808 from lxbsz/wip-67117
Rishabh Dave [Mon, 19 Aug 2024 06:54:38 +0000 (12:24 +0530)]
Merge pull request #58808 from lxbsz/wip-67117

squid: qa: ignore container checkpoint/restore related selinux denials for c…

Reviewed-by: Rishabh Dave <ridave@redhat.com>
11 months agoMerge pull request #59291 from zdover23/wip-doc-2024-08-19-backport-59290-to-squid
Anthony D'Atri [Sun, 18 Aug 2024 15:59:40 +0000 (08:59 -0700)]
Merge pull request #59291 from zdover23/wip-doc-2024-08-19-backport-59290-to-squid

squid: doc: Harmonize 'mountpoint'

11 months agodoc: Harmonize 'mountpoint' 59291/head
Anthony D'Atri [Sun, 18 Aug 2024 15:23:39 +0000 (11:23 -0400)]
doc: Harmonize 'mountpoint'

Signed-off-by: Anthony D'Atri <anthonyeleven@users.noreply.github.com>
(cherry picked from commit fda2db5ac7baedc9460cd1d313413c9445518163)

11 months agoMerge pull request #59179 from zdover23/wip-doc-2024-08-13-backport-59177-to-squid
Anthony D'Atri [Sun, 18 Aug 2024 15:17:04 +0000 (08:17 -0700)]
Merge pull request #59179 from zdover23/wip-doc-2024-08-13-backport-59177-to-squid

squid: doc/radosgw: improve qat-accel.rst

11 months agoMerge pull request #59289 from zdover23/wip-doc-2024-08-18-backport-59257-to-squid
Anthony D'Atri [Sun, 18 Aug 2024 13:53:57 +0000 (06:53 -0700)]
Merge pull request #59289 from zdover23/wip-doc-2024-08-18-backport-59257-to-squid

squid: doc/cephfs: s/mountpoint/mount point/

11 months agodoc/cephfs: s/mountpoint/mount point/ 59289/head
Zac Dover [Sat, 17 Aug 2024 03:44:30 +0000 (13:44 +1000)]
doc/cephfs: s/mountpoint/mount point/

Change the string "mountpoint" to "mount point" in English-language
strings (as opposed to in commands, where the string "mountpoint"
sometimes appears and is correct).

cf. https://github.com/ceph/ceph/pull/58908#discussion_r1697715486 in
which page 345 of The IBM Style Guide is referenced to back up this
change.

This commit alters only English-language text and example commands in
which the string "{mount point}" is meant to be replaced. No commands
meant for cutting-and-pasting have been altered in this commit.

Signed-off-by: Zac Dover <zac.dover@proton.me>
(cherry picked from commit a0f81cfb5094164630f55a717efbbcdce45bce58)

11 months agoMerge pull request #59250 from zdover23/wip-doc-2024-08-16-backport-59167-to-squid
Anthony D'Atri [Fri, 16 Aug 2024 22:54:04 +0000 (15:54 -0700)]
Merge pull request #59250 from zdover23/wip-doc-2024-08-16-backport-59167-to-squid

squid: doc/cephfs: improve "layout fields" text

11 months agodoc/cephfs: improve "layout fields" text 59250/head
Zac Dover [Mon, 12 Aug 2024 12:38:14 +0000 (22:38 +1000)]
doc/cephfs: improve "layout fields" text

Improve "layout fields" text in doc/cephfs/file-layouts.rst, as suggesed
by Anthony D'Atri in these comments:

https://github.com/ceph/ceph/pull/59021#discussion_r1704108581
https://github.com/ceph/ceph/pull/59021#discussion_r1704112320

Co-authored-by: Anthony D'Atri <anthony.datri@gmail.com>
Signed-off-by: Zac Dover <zac.dover@proton.me>
(cherry picked from commit 0949b410433837f0509fb73169fa7f22c8f6c256)

11 months agoMerge pull request #59021 from zdover23/wip-doc-2024-08-05-backport-58891-to-squid
Zac Dover [Fri, 16 Aug 2024 09:26:32 +0000 (19:26 +1000)]
Merge pull request #59021 from zdover23/wip-doc-2024-08-05-backport-58891-to-squid

squid: doc/cephfs: edit "Layout Fields" text

Reviewed-by: Anthony D'Atri <anthony.datri@gmail.com>
11 months agoMerge pull request #59232 from idryomov/wip-67353-squid
Ilya Dryomov [Fri, 16 Aug 2024 07:08:38 +0000 (09:08 +0200)]
Merge pull request #59232 from idryomov/wip-67353-squid

squid: qa: adjust expected io_opt in krbd_discard_granularity.t

Reviewed-by: Ramana Raja <rraja@redhat.com>
11 months agoMerge pull request #59233 from zdover23/wip-doc-2024-08-15-backport-59219-to-squid
Anthony D'Atri [Thu, 15 Aug 2024 23:27:29 +0000 (16:27 -0700)]
Merge pull request #59233 from zdover23/wip-doc-2024-08-15-backport-59219-to-squid

squid: doc/rgw/notification: persistent notification queue full behavior

11 months agoMerge pull request #58820 from Matan-B/wip-57818-squid
Matan Breizman [Thu, 15 Aug 2024 12:38:30 +0000 (15:38 +0300)]
Merge pull request #58820 from Matan-B/wip-57818-squid

squid: crimson/os/seastore/lba_manager: do batch mapping allocs when remapping multiple mappings

Reviewed-by: Samuel Just <sjust@redhat.com>
11 months agodoc/rgw/notification: persistent notification queue full behavior 59233/head
Yuval Lifshitz [Wed, 14 Aug 2024 11:02:09 +0000 (11:02 +0000)]
doc/rgw/notification: persistent notification queue full behavior

Fixes: https://tracker.ceph.com/issues/50610
Signed-off-by: Yuval Lifshitz <ylifshit@ibm.com>
(cherry picked from commit d12ba11741dc749bcce315bf467078595fa95b24)

11 months agoqa: cover a custom object size in krbd_discard_granularity.t 59232/head
Ilya Dryomov [Thu, 8 Aug 2024 20:01:47 +0000 (22:01 +0200)]
qa: cover a custom object size in krbd_discard_granularity.t

Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
(cherry picked from commit e8126bf2f6411069da5074ac3a5a2ea16c0bba0c)

11 months agoqa: adjust expected io_opt in krbd_discard_granularity.t
Ilya Dryomov [Thu, 8 Aug 2024 19:50:40 +0000 (21:50 +0200)]
qa: adjust expected io_opt in krbd_discard_granularity.t

With linux.git commit a00d4bfce7c6 ("rbd: increase io_opt again"),
io_opt is set to object set size.

Fixes: https://tracker.ceph.com/issues/67353
Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
(cherry picked from commit 144270eb737850159614abd63c261baaa83a8afc)

11 months agoqa/suites/rados/thrash-old-clients: test with N-2 releases on centos 9
Laura Flores [Mon, 15 Jul 2024 22:04:41 +0000 (17:04 -0500)]
qa/suites/rados/thrash-old-clients: test with N-2 releases on centos 9

It was recently decided to stop building and releasing ubuntu focal
packages for squid. This decision extended to the Shaman builds.

When we stopped building focal for squid in Shaman, this failure
started happening, because the test was looking for nonexistent
squid focal packages:
```
no results found at https://shaman.ceph.com/api/search/?project=ceph&distros=ubuntu%2F20.04%2Fx86_64&flavor=default&sha1=81127b728ce57cc8b876f0f2dd3e436633549a67
```

After a discussion in Slack, we agreed the best option going forward
would be to test on centos 9 and drop pacific from the mix, since pacific
does not have centos 9 packages. To later incorprate pacific, we will work
on a contanierized solution.

-----
Slack thread (may be expired):
https://ceph-storage.slack.com/archives/C1HFJ4VTN/p1721078395083699

Laura Flores
  4:19 PM
@Dan Mick
 I see we stopped building focal for squid on Shaman via Jenkins. I
know this is intended since we no longer plan to release squid focal
packages, but now the thrash-old-clients tests are failing on squid:
https://pulpito.ceph.com/teuthology-2024-07-14_21:00:02-rados-squid-distro-default-smithi/7801302/
These tests use an older client, i.e. reef, in a squid cluster. These
older clients go as far back as N-3 (so we test pacific, reef, and
quincy clients against a squid cluster). We need a distro that is shared
between all these releases in order to do that, which up until recently
was focal. Can we reintroduce focal shaman builds? We can put a note in
https://docs.ceph.com/en/latest/start/os-recommendations/#platforms to
explain that these packages are not released for squid, but are used to
test old clients.

Laura Flores
  4:21 PM
In the above scenario, we could consider switching to centos 9 since squid,
reef and quincy share these. But we also test against pacific clients, and
pacific of course does not build c9.

Casey Bodley
  41 minutes ago
it would be nice if those tests could eventually use containers for the upgraded
servers

Josh Durgin
  4:46 PM
centos 9 is the easiest path for now, for quincy and reef
4:46
agree with casey containerized servers would be better going forward anyway

Signed-off-by: Laura Flores <lflores@ibm.com>
(cherry picked from commit 2164873a6410e884f308209c39869137efe28878)

11 months agoMerge pull request #58607 from ljflores/wip-fix-squid-thrash-old-clients
Laura Flores [Wed, 14 Aug 2024 21:40:41 +0000 (16:40 -0500)]
Merge pull request #58607 from ljflores/wip-fix-squid-thrash-old-clients

squid: qa/suites/rados/thrash-old-clients: test with N-2 releases on centos 9

11 months agoMerge pull request #59196 from guits/cv-backport-tpm2
Adam King [Wed, 14 Aug 2024 17:18:18 +0000 (13:18 -0400)]
Merge pull request #59196 from guits/cv-backport-tpm2

squid: ceph-volume: add TPM2 token enrollment support for encrypted OSDs

Reviewed-by: Adam King <adking@redhat.com>
11 months agoMerge pull request #59214 from zdover23/wip-doc-2024-08-14-backport-59168-to-squid
Anthony D'Atri [Wed, 14 Aug 2024 13:19:02 +0000 (06:19 -0700)]
Merge pull request #59214 from zdover23/wip-doc-2024-08-14-backport-59168-to-squid

squid: doc/cephfs: improve cache-configuration.rst

11 months agoMerge pull request #58905 from Matan-B/wip-57977-squid
Matan Breizman [Wed, 14 Aug 2024 10:45:29 +0000 (13:45 +0300)]
Merge pull request #58905 from Matan-B/wip-57977-squid

squid: crimson: simplify obc loading by locking excl for load and demoting to needed lock

Reviewed-by: Samuel Just <sjust@redhat.com>
11 months agodoc/cephfs: improve cache-configuration.rst 59214/head
Zac Dover [Mon, 12 Aug 2024 12:47:08 +0000 (22:47 +1000)]
doc/cephfs: improve cache-configuration.rst

Improve the text in the section about dealing with cache-pressure alerts
that was added in https://github.com/ceph/ceph/pull/59077. The changes
in this commit were suggested by Anthony D'Atri.

Co-authored-by: Patrick Donnelly <pdonnelly@redhat.com>
Co-authored-by: Anthony D'Atri <anthony.datri@gmail.com>
Signed-off-by: Zac Dover <zac.dover@proton.me>
(cherry picked from commit aa3bdae2314fef2fca8fc12dca006af657235e17)

11 months agoceph-volume: refactor device path handling for LVM lookups 59196/head
Guillaume Abrioux [Tue, 6 Aug 2024 13:37:30 +0000 (13:37 +0000)]
ceph-volume: refactor device path handling for LVM lookups

This consolidates the conditional checks for device paths to
reduce redundancy and improve readability and adds logic to
handle both '/dev/mapper' and '/dev/dm-' paths uniformly by
introducing a utility function `get_lvm_mapper_path_from_dm()`.

Signed-off-by: Guillaume Abrioux <gabrioux@ibm.com>
(cherry picked from commit fec896b301f0e72b7085e3b164bab48c4140603a)

11 months agoceph-volume: add TPM2 token enrollment support for encrypted OSDs
Guillaume Abrioux [Thu, 16 May 2024 15:47:19 +0000 (11:47 -0400)]
ceph-volume: add TPM2 token enrollment support for encrypted OSDs

This adds the required changes to ceph-volume and cephadm in order to support
deploying tpm2 token enrolled encrypted OSDs.

Adding `--with-tpm` when deploying with `--dmcrypt` will enroll a tpm2
token to the corresponding LUKS2 devices.

Example of a osd service spec:

```
service_type: osd
service_id: tpm2_osds
placement:
  host_pattern: '*'
spec:
  data_devices:
    paths:
      - /dev/sdb
  encrypted: true
  tpm2: true
```

Signed-off-by: Guillaume Abrioux <gabrioux@ibm.com>
(cherry picked from commit 88836135fd03d28131c58a7440f51de244076166)

11 months agocrimson/common/tri_mutex: avoid hobject_t formatting 58905/head
Matan Breizman [Sun, 28 Jul 2024 14:49:27 +0000 (17:49 +0300)]
crimson/common/tri_mutex: avoid hobject_t formatting

```
/home/jenkins-build/build/workspace/ceph-pull-requests/src/fmt/include/fmt/core.h:1756:3: error: static_assert failed due to requirement 'formattable' "Cannot format an argument. To make type T formattable provide a formatter<T> specialization: https://fmt.dev/latest/api.html#udt"
  static_assert(
  ^
/home/jenkins-build/build/workspace/ceph-pull-requests/src/fmt/include/fmt/core.h:1777:10: note: in instantiation of function template specialization 'fmt::detail::make_value<fmt::basic_format_context<fmt::appender, char>, const hobject_t &>' requested here
  return make_value<Context>(val);
         ^
/home/jenkins-build/build/workspace/ceph-pull-requests/src/fmt/include/fmt/core.h:1899:23: note: in instantiation of function template specialization 'fmt::detail::make_arg<true, fmt::basic_format_context<fmt::appender, char>, fmt::detail::type::custom_type, const hobject_t &, 0>' requested here
        data_{detail::make_arg<

                   ^
/home/jenkins-build/build/workspace/ceph-pull-requests/src/fmt/include/fmt/core.h:1918:10: note: in instantiation of function template specialization 'fmt::format_arg_store<fmt::basic_format_context<fmt::appender, char>, hobject_t, unsigned int, unsigned int, bool, unsigned long>::format_arg_store<const hobject_t &, unsigned int &, unsigned int &, const bool &, unsigned long &>' requested here
  return {FMT_FORWARD(args)...};
         ^
/home/jenkins-build/build/workspace/ceph-pull-requests/src/fmt/include/fmt/core.h:3206:28: note: in instantiation of function template specialization 'fmt::make_format_args<fmt::basic_format_context<fmt::appender, char>, const hobject_t &, unsigned int &, unsigned int &, const bool &, unsigned long &>' requested here
  return vformat(fmt, fmt::make_format_args(args...));
                           ^
/home/jenkins-build/build/workspace/ceph-pull-requests/src/crimson/common/tri_mutex.h:136:14: note: in instantiation of function template specialization 'fmt::format<const hobject_t &, unsigned int, unsigned int, const bool &, unsigned long>' requested here
  os << fmt::format("tri_mutex {} writers {} readers {}"
             ^
```

Signed-off-by: Matan Breizman <mbreizma@redhat.com>
(cherry picked from commit 1251345231fc96150bdab73059eb060de7c8f615)
Signed-off-by: Matan Breizman <mbreizma@redhat.com>
11 months agodoc/radosgw: improve qat-accel.rst 59179/head
Anthony D'Atri [Tue, 13 Aug 2024 01:38:52 +0000 (21:38 -0400)]
doc/radosgw: improve qat-accel.rst

Signed-off-by: Anthony D'Atri <anthonyeleven@users.noreply.github.com>
(cherry picked from commit a6f311a5f3b33fbe31ce898dc746199d233069f0)

11 months agoMerge pull request #58830 from Matan-B/wip-58356-squid
Matan Breizman [Mon, 12 Aug 2024 08:17:34 +0000 (11:17 +0300)]
Merge pull request #58830 from Matan-B/wip-58356-squid

squid: crimson/os/seastore/onode: add hobject_t into Onode

Reviewed-by: Samuel Just <sjust@redhat.com>