* refs/pull/70212/head:
qa/cephfs-mirror: Fix tests for ISO sync_time_stamp
doc/cephfs-mirroring: document ISO-8601 sync timestamps
cephfs_mirror: format sync timestamps as ISO-8601 local time
tools/cephfs-mirror: report epoch time in last snap sync time
crimson/os/seastore/transaction_manager: allow non-existing lba regions
when demoting them
It is possible that, when we do demote_region, the target region has
already been removed from the lba tree, for example, a temp recovering
object might have already been renamed to the real one, which means all
lba mappings within its original region have been moved away.
Xuehan Xu [Mon, 18 May 2026 09:55:35 +0000 (17:55 +0800)]
crimson/os/seastore: demote/promote background processes are also
rewrite transactions
So we need to merge the extents promoted/demoted with their counterparts
in client transactions, just like trim/cleaner transaction do.
The difference between demote/promote transactions and trim/cleaner
transactions is that the former also involves remapping extents while the
latter only involves rewriting and mutating extents.
With the logical bucket cache in place, all rewrite transactions need to
handle shadow extents carafully, too.
Xuehan Xu [Sat, 9 May 2026 02:15:24 +0000 (10:15 +0800)]
test/crimson/seastore/test_transaction_manager: the scatter_allocation case shouldn't submit the trans
In scatter_allocation, an extent is split into several
small ones, and the last allocation is supposed to fail,
in which case, the small extents that belong to the same
allocation wouldn't be attached to the parent lba leaf
node. Sumitting the transaction would trigger assertions,
and is not consistent with the behavior of nornal crimson
OSDs.
Zhang Song [Wed, 3 Sep 2025 07:58:59 +0000 (15:58 +0800)]
crimson/os/seastore: rename extent_2q_state_t to extent_pin_state_t
This is because, even for LRU caches, extents still have pin states,
although it's only Fresh. What's more, in the logical bucket cache
world, extents in both LRU and 2Q caches may be in the
Fresh/PendingPromote/Promoting state.
Signed-off-by: Zhang Song <zhangsong02@qianxin.com> Signed-off-by: Xuehan Xu <xuxuehan@qianxin.com>
Patrick Donnelly [Thu, 30 Jul 2026 00:18:57 +0000 (20:18 -0400)]
.github/workflows: switch to pull_request_target trigger
Switch the trigger from `pull_request` to `pull_request_target` so that
the workflow definition on `main` is evaluated for PRs targeting active
release branches (main, umbrella, tentacle, squid). This allows the check
to run cleanly across release branches without requiring workflow file
backports to each branch.
Additionally:
- Update `src/script/verify-qa` to accept an optional target directory argument ($1).
- Run the trusted `verify-qa` script from `main` against the checked-out PR directory (`./pull_request`).
The concern of exfiltrating secrets is important but not relevant here:
we're not using the secrets in the definition and we explicitly
downgrade the github token to `read` permission.
Signed-off-by: Patrick Donnelly <pdonnell@ibm.com>
Patrick Donnelly [Thu, 30 Jul 2026 00:43:02 +0000 (20:43 -0400)]
.github/workflows: switch to pull_request_target trigger
Switch the trigger from `pull_request` to `pull_request_target` so that
the workflow definition on `main` is evaluated for PRs targeting active
release branches (main, umbrella, tentacle, squid). This allows the check
to run cleanly across release branches without requiring workflow file
backports to each branch.
While this workflow passes `github.token`, the token permissions are
strictly restricted to read-only (`contents: read` and `pull-requests: read`).
Because no PR code is checked out or executed, using `pull_request_target`
presents zero security risk here.
Signed-off-by: Patrick Donnelly <pdonnell@ibm.com>
John Mulligan [Wed, 29 Jul 2026 19:19:55 +0000 (15:19 -0400)]
python-common/smb: work around socket path length limits for grpc lib
The grpc library (at least the version on centos/rocky 10) has a limit
of 107 characters. Even a fairly short host name is going to be close
to this limit due to the UUID and service name in the path.
Because the tool doesn't do much else and it is safe, the workaround is
to chdir to into the parent dir of the socket and only pass the relative
path name of socket.
Fixes: https://tracker.ceph.com/issues/78857 Signed-off-by: John Mulligan <jmulligan@redhat.com>
script/ptl-tool: add 'crimson', 'build/ops', 'common', 'tests' to SUPPORTED_QA_TAGS
PRs carrying these GitHub labels were silently dropped from both the
QA tracker's PR "Labels" column and the Redmine ticket's tag_list,
since SUPPORTED_QA_TAGS is a fixed whitelist and these were never
added to it despite being real, actively-used component/category
labels (e.g. ceph/ceph#70661, #70658 for crimson).
librbd: propagate ENOENT for non-existent groups and images
Calling `list_images()` on a non-existent group falsely succeeded and
returned an empty iterator.This happened because `Group<I>::image_list`
ignored the negative error code returned by `group_image_list`, allowing
execution to proceed blindly. Furthermore, the C API `rbd_group_image_list`
intercepted `-ENOENT` and forced a success (0) return value.
Similarly other public C APIs `rbd_snap_list` and `rbd_group_snap_list`
also intercepts -ENOENT and forces a success (0) return value which
is incorrect.
Fix these behavior by:
- Propagating errors properly inside `Group<I>::image_list`.
- Removing the incorrect `-ENOENT` masking in `rbd_group_image_list`,
`rbd_snap_list`, rbd_group_snap_list`
Now `list_images()` consistently raise an `ObjectNotFound` error when
invoked on a non-existent group and public C APIs propagate ENOENT
without masking it into 0.
Also Extended the `TestGroups` test fixture with `self.dne_group` to
validate the expected error paths across all relevant APIs.
Ville Ojamo [Wed, 29 Jul 2026 10:24:56 +0000 (17:24 +0700)]
doc/install: use ref for intra-docs links
Use ref instead of external link definitions for intra-docs links.
Add labels if necessary in files within the install/ directory. Use
existing labels for links outside the install/ directory but do not add
new labels outside of the install/ directory.
Signed-off-by: Ville Ojamo <git2233+ceph@ojamo.eu>
Ville Ojamo [Wed, 29 Jul 2026 09:40:54 +0000 (16:40 +0700)]
doc/cephadm: enable substitutions on CLI command example
Substitutions were not enabled on a prompt directive that tried to use
the stable-release substitution so the substitution string was rendered
verbatim.
Signed-off-by: Ville Ojamo <git2233+ceph@ojamo.eu>
When editing services such as oauth2-proxy, backend fields like scope
arrive as a single string. Spreading that string into the list turned
each character into its own row. Normalize string values to one item.
Fixes: https://tracker.ceph.com/issues/78808 Signed-off-by: Pedro Gonzalez Gomez <pegonzal@ibm.com>