]> git.apps.os.sepia.ceph.com Git - ceph.git/log
ceph.git
5 months agodoc/rados: pool and namespace are independent osdcap restrictions 61523/head
Ilya Dryomov [Sat, 25 Jan 2025 10:11:14 +0000 (11:11 +0100)]
doc/rados: pool and namespace are independent osdcap restrictions

For the "profile {name}" syntax, pool and namespace restrictions are
independent of each other (i.e. specifying namespace doesn't also
require specifying pool like is currently suggested).  A cap can look
like "profile rbd namespace=myns", signifying that the RBD profile is
to be allowed in myns namespace of any pool.

For the "allow {access-spec}" syntax, pool restriction is optional.
A cap can look like "allow r namespace=myns", "allow w object_prefix
myprefix" or "allow rw namespace=myns object_prefix myprefix", for
example.

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

5 months agoMerge pull request #61499 from zdover23/wip-doc-2025-01-24-backport-61493-to-squid
Anthony D'Atri [Fri, 24 Jan 2025 14:04:47 +0000 (09:04 -0500)]
Merge pull request #61499 from zdover23/wip-doc-2025-01-24-backport-61493-to-squid

squid: doc/cephfs: edit disaster-recovery-experts (5 of x)

5 months agodoc/cephfs: edit disaster-recovery-experts (5 of x) 61499/head
Zac Dover [Thu, 23 Jan 2025 09:49:26 +0000 (19:49 +1000)]
doc/cephfs: edit disaster-recovery-experts (5 of x)

Put the procedure in the section called "Using an alternate metadata
pool for recovery" into an ordered list, so that it is in a proper
procedure format.

This commit is meant only to break the procedure into steps. The English
language in each of these steps could be improved, but that improvement
will be done after this formatting has been merged and backported.

Follows https://github.com/ceph/ceph/pull/61462.

https://tracker.ceph.com/issues/69557

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

5 months agoMerge pull request #57189 from batrick/wip-65730-squid
NitzanMordhai [Fri, 24 Jan 2025 07:31:09 +0000 (09:31 +0200)]
Merge pull request #57189 from batrick/wip-65730-squid

squid: pybind/mgr: disable sqlite3/python autocommit

5 months agoMerge pull request #57064 from batrick/wip-65622-squid
Yuri Weinstein [Thu, 23 Jan 2025 21:02:43 +0000 (13:02 -0800)]
Merge pull request #57064 from batrick/wip-65622-squid

squid: mgr: process map before notifying clients

Reviewed-by: Radoslaw Zarzynski <rzarzyns@redhat.com>
5 months agoMerge pull request #57586 from NitzanMordhai/wip-66139-squid
NitzanMordhai [Thu, 23 Jan 2025 20:00:41 +0000 (22:00 +0200)]
Merge pull request #57586 from NitzanMordhai/wip-66139-squid

squid: osd: full-object read CRC mismatch due to 'truncate' modifying oi.size w/o clearing 'data_digest'

5 months agoMerge pull request #61484 from ivancich/wip-69563-squid
J. Eric Ivancich [Wed, 22 Jan 2025 18:51:25 +0000 (13:51 -0500)]
Merge pull request #61484 from ivancich/wip-69563-squid

squid: rgw/lc: make lc worker thread name shorter

Reviewed-by: Casey Bodley <cbodley@redhat.com>
5 months agorgw/lc: make lc worker thread name shorter 61484/head
lightmelodies [Thu, 9 Jan 2025 10:15:50 +0000 (10:15 +0000)]
rgw/lc: make lc worker thread name shorter

Fixes: https://tracker.ceph.com/issues/69459
Signed-off-by: lightmelodies <lightmelodies@outlook.com>
(cherry picked from commit 05e241245744d105e285373bb9aa7861c62dcc18)

5 months agoMerge pull request #61479 from zdover23/wip-doc-2025-01-22-backport-61462-to-squid
Anthony D'Atri [Wed, 22 Jan 2025 15:12:21 +0000 (10:12 -0500)]
Merge pull request #61479 from zdover23/wip-doc-2025-01-22-backport-61462-to-squid

squid: doc/cephfs: edit disaster-recovery-experts (4 of x)

5 months agoMerge pull request #61359 from zdover23/wip-doc-2025-01-14-backport-61352-to-squid
Zac Dover [Wed, 22 Jan 2025 12:01:52 +0000 (22:01 +1000)]
Merge pull request #61359 from zdover23/wip-doc-2025-01-14-backport-61352-to-squid

squid: doc/releases: add actual_eol for quincy

Reviewed-by: Anthony D'Atri <anthony.datri@gmail.com>
5 months agoMerge pull request #61058 from zdover23/wip-doc-2024-12-12-backport-61049-to-squid
Zac Dover [Wed, 22 Jan 2025 12:01:26 +0000 (22:01 +1000)]
Merge pull request #61058 from zdover23/wip-doc-2024-12-12-backport-61049-to-squid

squid: doc/cephfs: edit 2nd 3rd of mount-using-kernel-driver

Reviewed-by: Anthony D'Atri <anthony.datri@gmail.com>
5 months agoMerge pull request #61056 from zdover23/wip-doc-2024-12-12-backport-61048-to-squid
Zac Dover [Wed, 22 Jan 2025 12:01:08 +0000 (22:01 +1000)]
Merge pull request #61056 from zdover23/wip-doc-2024-12-12-backport-61048-to-squid

squid: doc/cephfs: edit first 3rd of mount-using-kernel-driver

Reviewed-by: Anthony D'Atri <anthony.datri@gmail.com>
5 months agoMerge pull request #60199 from zdover23/wip-doc-2024-10-09-backport-60163-to-squid
Zac Dover [Wed, 22 Jan 2025 12:00:54 +0000 (22:00 +1000)]
Merge pull request #60199 from zdover23/wip-doc-2024-10-09-backport-60163-to-squid

squid: doc/man: supplant "wsync" with "nowsync" as the default

Reviewed-by: Anthony D'Atri <anthony.datri@gmail.com>
5 months agodoc/cephfs: edit disaster-recovery-experts (4 of x) 61479/head
Zac Dover [Tue, 21 Jan 2025 05:53:19 +0000 (15:53 +1000)]
doc/cephfs: edit disaster-recovery-experts (4 of x)

Edit the seventh and final section of
doc/cephfs/disaster-recovery-experts.rst in preparation for adding
deeper explanations of the contexts in which one should use the various
commands listed on that page.

The section edited in this commit is

 * Using an alternate metadata pool for recovery

A future commit might beneficially put this section into the format of
an ordered list. If so, such a commit should only reformat the
content and should not make any changes to the English. It's enough to
verify content or format. Let's not overload our editorial faculties by
forcing ourselves to walk and chew gum at the same time.

Follows https://github.com/ceph/ceph/pull/61442

https://tracker.ceph.com/issues/69557

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

5 months agoMerge pull request #61459 from zdover23/wip-doc-2025-01-21-backport-61249-to-squid
Anthony D'Atri [Tue, 21 Jan 2025 15:22:34 +0000 (10:22 -0500)]
Merge pull request #61459 from zdover23/wip-doc-2025-01-21-backport-61249-to-squid

squid: doc/cephfs: edit grammar in snapshots.rst

5 months agodoc/cephfs: edit grammar in snapshots.rst 61459/head
Zac Dover [Tue, 7 Jan 2025 06:42:52 +0000 (16:42 +1000)]
doc/cephfs: edit grammar in snapshots.rst

This commit improves the grammar in doc/cephfs/snapshots.rst. The PR
associated with this commit follows from
https://github.com/ceph/ceph/pull/61240, the PR raised by Neeraj Pratap
Singh to introduce information about snapshots into the CephFS
documentation.

See also https://tracker.ceph.com/issues/68974.

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

5 months agoMerge pull request #61308 from zdover23/wip-doc-2025-01-10-backport-61243-to-squid
Zac Dover [Tue, 21 Jan 2025 05:23:34 +0000 (15:23 +1000)]
Merge pull request #61308 from zdover23/wip-doc-2025-01-10-backport-61243-to-squid

squid: doc/radosgw/s3: correct eTag op match tables

Reviewed-by: Anthony D'Atri <anthony.datri@gmail.com>
5 months agoMerge pull request #61246 from zdover23/wip-doc-2025-01-07-backport-61240-to-squid
Zac Dover [Tue, 21 Jan 2025 05:21:39 +0000 (15:21 +1000)]
Merge pull request #61246 from zdover23/wip-doc-2025-01-07-backport-61240-to-squid

squid: doc: add snapshots in docs under Cephfs concepts

Reviewed-by: Anthony D'Atri <anthony.datri@gmail.com>
5 months agoMerge pull request #61333 from zdover23/wip-doc-2025-01-11-backport-61291-to-squid
Zac Dover [Tue, 21 Jan 2025 05:16:43 +0000 (15:16 +1000)]
Merge pull request #61333 from zdover23/wip-doc-2025-01-11-backport-61291-to-squid

squid: doc/rgw: document UserName requirements for account migration

Reviewed-by: Anthony D'Atri <anthony.datri@gmail.com>
6 months agoMerge pull request #61453 from zdover23/wip-doc-2025-01-20-backport-61442-to-squid
Anthony D'Atri [Mon, 20 Jan 2025 16:09:21 +0000 (11:09 -0500)]
Merge pull request #61453 from zdover23/wip-doc-2025-01-20-backport-61442-to-squid

squid: doc/cephfs: edit disaster-recovery-experts (3 of x)

6 months agodoc/cephfs: edit disaster-recovery-experts (3 of x) 61453/head
Zac Dover [Sat, 18 Jan 2025 04:04:14 +0000 (14:04 +1000)]
doc/cephfs: edit disaster-recovery-experts (3 of x)

Edit the fifth and sixth sections of
doc/cephfs/disaster-recovery-experts.rst in preparation for adding
deeper explanations of the contexts in which one should use the various
commands listed on that page.

The sections edited in this commit are

 - MDS Map Reset
 - Recovery From Mission Metadata Objects

Follows https://github.com/ceph/ceph/pull/61427

https://tracker.ceph.com/issues/69557

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

6 months agoMerge pull request #61446 from zdover23/wip-doc-2025-01-20-backport-61445-to-squid
Anthony D'Atri [Mon, 20 Jan 2025 02:57:27 +0000 (21:57 -0500)]
Merge pull request #61446 from zdover23/wip-doc-2025-01-20-backport-61445-to-squid

squid: doc/cephfs: disaster-recovery-experts cleanup

6 months agodoc/cephfs: disaster-recovery-experts cleanup 61446/head
Zac Dover [Sun, 19 Jan 2025 12:49:52 +0000 (22:49 +1000)]
doc/cephfs: disaster-recovery-experts cleanup

Properly wrap a poorly-formatted paragraph that looks just awful in an
80-column viewport and change MDS to "MDS daemons" where the latter
makes the sentence a lot clearer.

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

6 months agoMerge pull request #61443 from zdover23/wip-doc-2025-01-19-backport-61427-to-squid
Anthony D'Atri [Sun, 19 Jan 2025 16:02:24 +0000 (11:02 -0500)]
Merge pull request #61443 from zdover23/wip-doc-2025-01-19-backport-61427-to-squid

squid: doc/cephfs: edit disaster-recovery-experts (2 of x)

6 months agodoc/cephfs: edit disaster-recovery-experts (2 of x) 61443/head
Zac Dover [Fri, 17 Jan 2025 12:33:49 +0000 (22:33 +1000)]
doc/cephfs: edit disaster-recovery-experts (2 of x)

Edit the third and fourth sections of
doc/cephfs/disaster-recovery-experts.rst in preparation for adding
deeper explanations of the contexts in which one should use the various
commands listed on that page.

Follows https://github.com/ceph/ceph/pull/61426

https://tracker.ceph.com/issues/69557

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

6 months agoMerge pull request #61437 from zdover23/wip-doc-2025-01-18-backport-61272-to-squid
Zac Dover [Sat, 18 Jan 2025 03:44:14 +0000 (13:44 +1000)]
Merge pull request #61437 from zdover23/wip-doc-2025-01-18-backport-61272-to-squid

squid: doc/radosgw/config-ref: fix lc worker thread tuning

Reviewed-by: Anthony D'Atri <anthony.datri@gmail.com>
6 months agoMerge pull request #61423 from zdover23/wip-doc-2025-01-17-backport-61411-to-squid
Zac Dover [Sat, 18 Jan 2025 03:42:48 +0000 (13:42 +1000)]
Merge pull request #61423 from zdover23/wip-doc-2025-01-17-backport-61411-to-squid

squid: doc/cephfs: edit disaster-recovery-experts

Reviewed-by: Anthony D'Atri <anthony.datri@gmail.com>
6 months agoMerge pull request #61419 from zdover23/wip-doc-2025-01-17-revert-part-of-61331
Zac Dover [Sat, 18 Jan 2025 03:42:39 +0000 (13:42 +1000)]
Merge pull request #61419 from zdover23/wip-doc-2025-01-17-revert-part-of-61331

squid: src/exporter: revert incorrect lines

Reviewed-by: Anthony D'Atri <anthony.datri@gmail.com>
6 months agoMerge pull request #61401 from zdover23/wip-doc-2025-01-16-backport-61373-to-squid
Zac Dover [Sat, 18 Jan 2025 03:42:21 +0000 (13:42 +1000)]
Merge pull request #61401 from zdover23/wip-doc-2025-01-16-backport-61373-to-squid

squid: AsyncMessenger.cc : improve error messages

Reviewed-by: Anthony D'Atri <anthony.datri@gmail.com>
6 months agoMerge pull request #61377 from zdover23/wip-doc-2025-01-15-backport-61072-to-squid
Zac Dover [Fri, 17 Jan 2025 22:18:53 +0000 (08:18 +1000)]
Merge pull request #61377 from zdover23/wip-doc-2025-01-15-backport-61072-to-squid

squid: test/pybind: Clean whitespace. (Doc and test fixes)

Reviewed-by: Anthony D'Atri <anthony.datri@gmail.com>
6 months agodoc/radosgw/config-ref: fix lc worker thread tuning 61437/head
Laimis Juzeliƫnas [Wed, 8 Jan 2025 22:05:34 +0000 (00:05 +0200)]
doc/radosgw/config-ref: fix lc worker thread tuning

This commit updates RGW Config Reference - Lifecycle Settings section. In particular it addresses an incorrect suggestion to decrease parallel threads in the workers pool for a more aggressive/accelerated per-bucket lifecycle processing. A more aggressive lifecycle processing for a bucket containing higher number of objects is achieved by increasing, not decreasing parallel threads.
Current suggestion is miss-leading.

Fixes: https://tracker.ceph.com/issues/63659
Signed-off-by: Laimis Juzeliunas <laimis.juzeliunas@oxylabs.io>
(cherry picked from commit b7ae18a292c7d1d5139dfb74c575f1af0de29a3e)

6 months agoMerge pull request #60240 from aclamk/wip-aclamk-bluefs-truncate-allocations-squid
Adam Kupczyk [Fri, 17 Jan 2025 12:31:25 +0000 (13:31 +0100)]
Merge pull request #60240 from aclamk/wip-aclamk-bluefs-truncate-allocations-squid

squid: os/bluestore: Make truncate() drop unused allocations

6 months agodoc/cephfs: edit disaster-recovery-experts 61423/head
Zac Dover [Thu, 16 Jan 2025 11:51:46 +0000 (21:51 +1000)]
doc/cephfs: edit disaster-recovery-experts

Edit the first two sections of doc/cephfs/disaster-recovery-experts.rst
in preparation for adding deeper explanations of the contexts in which
one should use the various commands listed on that page.

https://tracker.ceph.com/issues/69557

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

6 months agoMerge pull request #59389 from jmundack/wip-67657-squid
SrinivasaBharathKanta [Fri, 17 Jan 2025 00:12:24 +0000 (05:42 +0530)]
Merge pull request #59389 from jmundack/wip-67657-squid

squid: common: Leverage a better CRC32C implementation

6 months agosquid: src/exporter: revert incorrect lines 61419/head
Zac Dover [Thu, 16 Jan 2025 15:49:04 +0000 (01:49 +1000)]
squid: src/exporter: revert incorrect lines

Revert part of 99f4eccb6bef444f86e6d6cbf579dc3ba975af98. The lines
removed here were reported to me by Anthony D'Atri, who says that Juan
Miguel Olmo told him that they should not be in the Squid branch.

See https://github.com/ceph/ceph/pull/61331#issuecomment-2596058701

Signed-off-by: Zac Dover <zac.dover@proton.me>
6 months agoMerge pull request #60543 from aclamk/wip-68680-squid
Adam Kupczyk [Thu, 16 Jan 2025 13:02:00 +0000 (14:02 +0100)]
Merge pull request #60543 from aclamk/wip-68680-squid

squid: os/bluestore/ceph-bluestore-tool: Modify show-label for many devs

6 months agoAsyncMessenger.cc : improve error messages 61401/head
Anthony D'Atri [Wed, 15 Jan 2025 00:17:14 +0000 (19:17 -0500)]
AsyncMessenger.cc : improve error messages

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

6 months agotest/librados/testcase_cxx: set_allow_ec_overwrites wait for overwrite to work 57586/head
Samuel Just [Fri, 31 May 2024 18:42:58 +0000 (11:42 -0700)]
test/librados/testcase_cxx: set_allow_ec_overwrites wait for overwrite to work

The mon command to enable ec overwrites succeeds once the mon commits
the update.  However, actual IOs won't suceed until the map is actually
propagated to OSDs.  Update set_allow_ec_overwrites to try performing
overwrites until it actually succeeds (with a 120s timelimit) before
returning.

Fixes: https://tracker.ceph.com/issues/66226
Signed-off-by: Samuel Just <sjust@redhat.com>
(cherry picked from commit 5d26a6cbc63c1d5f9fdd6941e3fce46302f7864c)

6 months agotest/librados/io_cxx: append buf to bl in CrcZeroWrite
Samuel Just [Fri, 31 May 2024 18:38:17 +0000 (11:38 -0700)]
test/librados/io_cxx: append buf to bl in CrcZeroWrite

This seems to be what was intended.

Signed-off-by: Samuel Just <sjust@redhat.com>
(cherry picked from commit 30fea3df332982a2c3317d561d09d927b11dc78f)

6 months agotest/librados/io_cxx: fix ec overwrites cleanup in CrcZeroWrite
Samuel Just [Fri, 31 May 2024 17:19:51 +0000 (17:19 +0000)]
test/librados/io_cxx: fix ec overwrites cleanup in CrcZeroWrite

We can't rely on recreating the pool at the end of the test case because
failing an assert in CrcZeroWrite would skip it.  Instead, recreate the
pool in TearDown with other cleanup.

Signed-off-by: Samuel Just <sjust@redhat.com>
(cherry picked from commit ce2378108f8630ec6ea195d66ff89cb71497b767)

6 months agoceph_test_rados_io_pp: Add cxx test for append zero test
NitzanMordhai [Tue, 26 Dec 2023 10:22:19 +0000 (10:22 +0000)]
ceph_test_rados_io_pp: Add cxx test for append zero test

1. adding allow_ec_overwrite option for cxx test
2. adding new test for crc failuer check with append zero length

Fixes: https://tracker.ceph.com/issues/53240
Signed-off-by: Nitzan Mordechai <nmordech@redhat.com>
(cherry picked from commit 06e4c6f205fe6e4a9cd6410bc62d3dc0d1310f06)

6 months agotest/pybind: check crc fail after append zero
NitzanMordhai [Tue, 26 Dec 2023 09:02:22 +0000 (09:02 +0000)]
test/pybind: check crc fail after append zero

Add test for zero crc check failed.

Fixes: https://tracker.ceph.com/issues/53240
Signed-off-by: Nitzan Mordechai <nmordech@redhat.com>
(cherry picked from commit 6662e6bc215c2d0bee16bc3674b07be1e239b4c0)

test/pybind/test_rados.py: fix test_list_objects

Commit 6662e6bc215c2d0bee16bc3674b07be1e239b4c0 accidentally removed a line from this test.

```
2024-05-21T14:06:10.463 INFO:tasks.workunit.client.0.smithi031.stdout:=================================== FAILURES ===================================
2024-05-21T14:06:10.463 INFO:tasks.workunit.client.0.smithi031.stdout:_________________________ TestIoctx.test_list_objects __________________________
2024-05-21T14:06:10.463 INFO:tasks.workunit.client.0.smithi031.stdout:
2024-05-21T14:06:10.463 INFO:tasks.workunit.client.0.smithi031.stdout:self = <test_rados.TestIoctx object at 0x7fddcc6924c0>
2024-05-21T14:06:10.463 INFO:tasks.workunit.client.0.smithi031.stdout:
2024-05-21T14:06:10.463 INFO:tasks.workunit.client.0.smithi031.stdout:    def test_list_objects(self):
2024-05-21T14:06:10.463 INFO:tasks.workunit.client.0.smithi031.stdout:        self.ioctx.write('b', b'foo')
2024-05-21T14:06:10.463 INFO:tasks.workunit.client.0.smithi031.stdout:        self.ioctx.write_full('c', b'bar')
2024-05-21T14:06:10.463 INFO:tasks.workunit.client.0.smithi031.stdout:        self.ioctx.append('d', b'jazz')
2024-05-21T14:06:10.464 INFO:tasks.workunit.client.0.smithi031.stdout:        object_names = [obj.key for obj in self.ioctx.list_objects()]
2024-05-21T14:06:10.464 INFO:tasks.workunit.client.0.smithi031.stdout:>       eq(sorted(object_names), ['a', 'b', 'c', 'd'])
```

Signed-off-by: Matan Breizman <mbreizma@redhat.com>
(cherry picked from commit 8b7694ad799c0cec6be6865c41b1c535d7eb4ea2)

6 months agoosd: Adjust code style
jiawd [Wed, 17 Nov 2021 09:28:59 +0000 (09:28 +0000)]
osd: Adjust code style

Fixes: https://tracker.ceph.com/issues/53240
Signed-off-by: jiawd <jiawendong@xtaotech.com>
(cherry picked from commit afd42666ea8bd3866e8655b7247985aee071abb4)

6 months agoosd: Remove the duplicate oi.clear_data_digest
jiawd [Fri, 12 Nov 2021 04:03:15 +0000 (04:03 +0000)]
osd: Remove the duplicate oi.clear_data_digest

Fixes: https://tracker.ceph.com/issues/53240
Signed-off-by: jiawd <jiawendong@xtaotech.com>
(cherry picked from commit 83d3523bb0868f1dfdc88b80a37396a3b1629087)

6 months agoosd: full-object read crc is mismatch, because truncate modify oi.size and forget...
jiawd [Fri, 12 Nov 2021 03:48:56 +0000 (03:48 +0000)]
osd: full-object read crc is mismatch, because truncate modify oi.size and forget to clear data_digest

when write before truncate, need trim length, if truncate is to 0,
write is [0~128k], write change to [0~0], do nothing, oi.size is 0, x1 = set_data_digest(crc32(-1)).
write is [128k~128k], write change to [128k~0], truncate oi.size to offset 128k, x2 = set_data_digest(crc32(x1)).
write is [256k~128k], write change to [256k~0], truncate oi.size to offset 256k, x3 = set_data_digest(crc32(x2)).
...
write is [4063232~128k], write change to [4063232~0], truncate oi.size to offset 4063232, xn = set_data_digest(crs32(xn-1))
Now, we can see oi.size is 4063232, and data_digest is 0xffffffff, because thelength of in_data of crc is 0 every time.
when read verify crc will reply EIO. (EC pool).

so, when truncate in write, need clear data_digest and DIGEST flag,
when write before truncate, need to trim length, when offset over than oi.size, don't truncate oi.size to offset.

Fixes: https://tracker.ceph.com/issues/53240
Signed-off-by: jiawd <jiawendong@xtaotech.com>
(cherry picked from commit aeafd2e9a452d6a10b742c885dc44927b256c3bf)

6 months agotest/pybind: Clean whitespace. (Doc and test fixes) 61377/head
Paulo E. Castro [Thu, 12 Dec 2024 22:33:10 +0000 (22:33 +0000)]
test/pybind: Clean whitespace. (Doc and test fixes)

Signed-off-by: Paulo E. Castro <pecastro@wormholenet.com>
(cherry picked from commit aec8ca8b2688be5b460c822cab7ae6ba47bf4c80)

test/pybind: Test method has been renamed in unittest 3.2

Signed-off-by: Paulo E. Castro <pecastro@wormholenet.com>
(cherry picked from commit 560d66e34edacef0bed3c44ff8a02be6f79b5fbe)

doc: Fix typo.

Signed-off-by: Paulo E. Castro <pecastro@wormholenet.com>
(cherry picked from commit 5a886ee6ce9e55e9f66da6cff45945fba354bd69)

tools/cephfs: fix flake8 f-string formatting for py3.12

Signed-off-by: Paulo E. Castro <pecastro@wormholenet.com>
(cherry picked from commit 2b2ce7871579252074eff7b6072890196b1e4f2c)

6 months agoos/bluestore: Fix BlueFS::truncate() 60240/head
Adam Kupczyk [Fri, 10 Jan 2025 08:26:54 +0000 (08:26 +0000)]
os/bluestore: Fix BlueFS::truncate()

In `struct bluefs_fnode_t` there is a vector `extents` and
the vector `extents_index` that is a log2 seek cache.

Until modifications to truncate() we never removed extents from files.
Modified truncate() did not update extents_index.

For example 10 extents long files when truncated to 0 will have:
0 extents, 10 extents_index.
After writing some data to file:
1 extents, 11 extents_index.

Now, `bluefs_fnode_t::seek` will binary search extents_index,
lets say it located seek at item #3.
It will then jump up from #0 extent (that exists) to #3 extent which
does not exist at.
The worst part is that code is now broken, as #3 != extent.end().

There are 3 parts of the fix:
1) assert in `bluefs_fnode_t::seek` to protect against
   jumping outside extents
2) code in BlueFS::truncate to sync up `extents_index` with `extents`
3) dampening down assert in _replay to give a way out of cases
   where incorrect "offset 12345" (12345 is file size) instead of
   "offset 20000" (allocations occupied) was written to log.

Fixes: https://tracker.ceph.com/issues/69481
Signed-off-by: Adam Kupczyk <akupczyk@ibm.com>
(cherry picked from commit 7f3601089d41bfc23f530c7bf3fb7efad2d055ec)

6 months agoos/bluestore: bluefs unittest for truncate bug
Adam Kupczyk [Fri, 10 Jan 2025 10:07:18 +0000 (10:07 +0000)]
os/bluestore: bluefs unittest for truncate bug

Unittest showing 2 different flavours of problems:
1) bluefs log corruption
2) bluefs sigsegv

Signed-off-by: Adam Kupczyk <akupczyk@ibm.com>
(cherry picked from commit f2b5e2fa0a9274c1667fccafa597fff9be7a74b1)
+fixup for bad usage of std::string's fill constructor

6 months agodoc/releases: add actual_eol for quincy 61359/head
Zac Dover [Mon, 13 Jan 2025 19:00:00 +0000 (05:00 +1000)]
doc/releases: add actual_eol for quincy

Add the actual EOL date for the Quincy release (it's 2025-01-13).

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

6 months agoMerge pull request #61069 from shraddhaag/wip-68690-squid
SrinivasaBharathKanta [Tue, 14 Jan 2025 00:53:10 +0000 (06:23 +0530)]
Merge pull request #61069 from shraddhaag/wip-68690-squid

squid: mon/LogMonitor: Use generic cluster log level config

6 months agoMerge pull request #61342 from zdover23/wip-doc-2025-01-13-backport-61313-to-squid
Anthony D'Atri [Mon, 13 Jan 2025 15:09:24 +0000 (10:09 -0500)]
Merge pull request #61342 from zdover23/wip-doc-2025-01-13-backport-61313-to-squid

squid: doc: improve tests-integration-testing-teuthology-workflow.rst

6 months agodoc: improve tests-integration-testing-teuthology-workflow.rst 61342/head
Vallari Agrawal [Thu, 9 Jan 2025 12:27:42 +0000 (17:57 +0530)]
doc: improve tests-integration-testing-teuthology-workflow.rst

This commit adds:
1. workflow summary in the first section along with an image.
2. sub-section "Pushing to ceph-ci repository" to second section.
3. file doc/dev/developer_guide/testing_integration_tests/workflow.png

Signed-off-by: Vallari Agrawal <vallari.agrawal@ibm.com>
(cherry picked from commit dc539b3ea8031d2b02da9d5a5b1f856d96d70362)

6 months agoMerge pull request #60629 from kamoltat/wip-68840-squid
SrinivasaBharathKanta [Mon, 13 Jan 2025 06:59:48 +0000 (12:29 +0530)]
Merge pull request #60629 from kamoltat/wip-68840-squid

squid: mon [stretch mode]: support disable_stretch_mode

6 months agoMerge pull request #59625 from NitzanMordhai/wip-67914-squid
SrinivasaBharathKanta [Mon, 13 Jan 2025 06:57:43 +0000 (12:27 +0530)]
Merge pull request #59625 from NitzanMordhai/wip-67914-squid

squid: test: test_rados_tools compare output without trimming newline

6 months agoMerge pull request #61088 from ronen-fr/wip-rf-59437-squid
Ronen Friedman [Sun, 12 Jan 2025 13:42:17 +0000 (15:42 +0200)]
Merge pull request #61088 from ronen-fr/wip-rf-59437-squid

squid: test/scrub: only instruct clean PGs to scrub
Reviewed-by: Radoslaw Zarzynski <rzarzyns@redhat.com>
6 months agoMerge pull request #60618 from badone/wip-68825-squid
Ilya Dryomov [Sat, 11 Jan 2025 17:24:55 +0000 (18:24 +0100)]
Merge pull request #60618 from badone/wip-68825-squid

squid: qa: Add ignorelist entries for reef-x tests

Reviewed-by: Laura Flores <lflores@ibm.com>
Reviewed-by: Ilya Dryomov <idryomov@gmail.com>
6 months agoMerge pull request #59245 from ljflores/wip-67577-squid
Ilya Dryomov [Sat, 11 Jan 2025 16:32:23 +0000 (17:32 +0100)]
Merge pull request #59245 from ljflores/wip-67577-squid

squid: qa/suites/upgrade: ignore PG_AVAILABILITY and MON_DOWN for quincy-x and reef-x upgrade suites

Reviewed-by: Radoslaw Zarzynski <rzarzyns@redhat.com>
Reviewed-by: Ilya Dryomov <idryomov@gmail.com>
6 months agoqa/suites/upgrade: ignore MON_DOWN and PG_AVAILABILITY warnings in upgrade tests 59245/head
Laura Flores [Tue, 13 Aug 2024 22:58:17 +0000 (17:58 -0500)]
qa/suites/upgrade: ignore MON_DOWN and PG_AVAILABILITY warnings in upgrade tests

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

6 months agoMerge pull request #61331 from zdover23/wip-doc-2025-01-11-backport-60081-to-squid
Anthony D'Atri [Sat, 11 Jan 2025 01:32:17 +0000 (20:32 -0500)]
Merge pull request #61331 from zdover23/wip-doc-2025-01-11-backport-60081-to-squid

squid: src/exporter: improve usage message

6 months agodoc/rgw: document UserName requirements for account migration 61333/head
Casey Bodley [Thu, 9 Jan 2025 17:52:03 +0000 (12:52 -0500)]
doc/rgw: document UserName requirements for account migration

clarify the following error when migrating a user into an account:

> could not modify user: unable to modify user, UserName contains invalid characters

Fixes: https://tracker.ceph.com/issues/69470
Signed-off-by: Casey Bodley <cbodley@redhat.com>
(cherry picked from commit afa2b83687de96bfe9ae90c73744f71217dabcbe)

6 months agosrc/exporter: improve usage message 61331/head
Anthony D'Atri [Tue, 1 Oct 2024 16:21:56 +0000 (12:21 -0400)]
src/exporter: improve usage message

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

6 months agoMerge pull request #61306 from adamemerson/wip-69303-squid
Adam Emerson [Fri, 10 Jan 2025 06:32:36 +0000 (01:32 -0500)]
Merge pull request #61306 from adamemerson/wip-69303-squid

squid: rgw: Don't crash on exceptions from pool listing

Reviewed-by: Casey Bodley <cbodley@redhat.com>
6 months agodoc/radosgw/s3: correct eTag op match tables 61308/head
Anthony D'Atri [Mon, 6 Jan 2025 17:48:04 +0000 (12:48 -0500)]
doc/radosgw/s3: correct eTag op match tables

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

6 months agorgw: Don't crash on exceptions from pool listing 61306/head
Adam Emerson [Thu, 9 Jan 2025 16:46:32 +0000 (11:46 -0500)]
rgw: Don't crash on exceptions from pool listing

Fixes: https://tracker.ceph.com/issues/69303
Signed-off-by: Adam Emerson <aemerson@redhat.com>
(cherry picked from commit 4318b188740634ead65a986680f9186541c9d1b0)

Fixes: https://tracker.ceph.com/issues/69476
Signed-off-by: Adam Emerson <aemerson@redhat.com>
6 months agoMerge pull request #61260 from guits/wip-69437-squid
Guillaume Abrioux [Wed, 8 Jan 2025 15:16:00 +0000 (16:16 +0100)]
Merge pull request #61260 from guits/wip-69437-squid

ceph-volume: fix Zap.ensure_associated_raw()

6 months agoceph-volume: fix Zap.ensure_associated_raw() 61260/head
Guillaume Abrioux [Mon, 6 Jan 2025 16:12:22 +0000 (16:12 +0000)]
ceph-volume: fix Zap.ensure_associated_raw()

When an OSD creation fails, ceph-volume can zaps unrelated
existing raw based OSD as part of the 'rollback step'.

Fixes: https://tracker.ceph.com/issues/69430
Signed-off-by: Guillaume Abrioux <gabrioux@ibm.com>
(cherry picked from commit 95bdcbfd813d41aa07069cc95a5da7c321936afd)

6 months agoMerge pull request #60487 from guits/wip-68720-squid
Guillaume Abrioux [Wed, 8 Jan 2025 07:59:59 +0000 (08:59 +0100)]
Merge pull request #60487 from guits/wip-68720-squid

squid: ceph-volume: support zapping by osd-id for RAW OSDs

6 months agoMerge pull request #61023 from cbodley/wip-69181-squid
Adam Emerson [Tue, 7 Jan 2025 16:55:49 +0000 (11:55 -0500)]
Merge pull request #61023 from cbodley/wip-69181-squid

squid: qa/rgw: bump keystone/barbican from 2023.1 to 2024.1

Reviewed-by: Adam Emerson <aemerson@redhat.com>
6 months agoMerge pull request #61185 from ronen-fr/wip-rf-61184-squid
Ronen Friedman [Tue, 7 Jan 2025 12:53:22 +0000 (14:53 +0200)]
Merge pull request #61185 from ronen-fr/wip-rf-61184-squid

squid: osd/scrub: register for 'osd_max_scrubs' config changes
Reviewed-by: Samuel Just <sjust@redhat.com>
6 months agoMerge pull request #61118 from ronen-fr/wip-rf-61115-squid
Ronen Friedman [Tue, 7 Jan 2025 11:18:52 +0000 (13:18 +0200)]
Merge pull request #61118 from ronen-fr/wip-rf-61115-squid

squid: qa/standalone/scrub: fix TEST_periodic_scrub_replicated
Reviewed-by: Laura Flores <lflores@redhat.com>
6 months agodoc: add snapshots in docs under Cephfs concepts 61246/head
neeraj pratap singh [Mon, 6 Jan 2025 11:00:32 +0000 (16:30 +0530)]
doc: add snapshots in docs under Cephfs concepts

Fixes: https://tracker.ceph.com/issues/68974
Signed-off-by: Neeraj Pratap Singh <neesingh@redhat.com>
(cherry picked from commit 885b1bf88ee28b05cc9ed91e8ea5146511b6cf34)

6 months agoMerge pull request #60752 from chrisphoffman/wip-68942-squid
Milind Changire [Fri, 3 Jan 2025 09:50:51 +0000 (15:20 +0530)]
Merge pull request #60752 from chrisphoffman/wip-68942-squid

squid: mds: Implement remove for ceph vxattrs

6 months agoMerge pull request #59919 from mchangir/wip-67826-squid
Milind Changire [Fri, 3 Jan 2025 04:28:53 +0000 (09:58 +0530)]
Merge pull request #59919 from mchangir/wip-67826-squid

squid: qa: failfast mount for better performance and unblock `fs volume ls`

6 months agoMerge pull request #59395 from lxbsz/wip-67587
Milind Changire [Thu, 2 Jan 2025 10:18:03 +0000 (15:48 +0530)]
Merge pull request #59395 from lxbsz/wip-67587

squid: client: flush the caps release in filesystem sync

6 months agoMerge pull request #59518 from batrick/wip-67751-squid
Milind Changire [Thu, 2 Jan 2025 10:17:08 +0000 (15:47 +0530)]
Merge pull request #59518 from batrick/wip-67751-squid

squid: mds: cephx path restriction incorrectly rejects snapshots of deleted directory

6 months agoMerge pull request #59704 from vshankar/wip-67374-squid
Milind Changire [Thu, 2 Jan 2025 10:16:00 +0000 (15:46 +0530)]
Merge pull request #59704 from vshankar/wip-67374-squid

squid: mon: fix `fs set down` to adjust max_mds only when cluster is not down

6 months agoMerge pull request #60059 from vshankar/wip-68321-squid
Milind Changire [Thu, 2 Jan 2025 10:12:01 +0000 (15:42 +0530)]
Merge pull request #60059 from vshankar/wip-68321-squid

squid: mds: invalid id for client eviction is to be treated as success

6 months agoMerge pull request #60687 from vshankar/wip-67532-squid
Milind Changire [Thu, 2 Jan 2025 10:11:21 +0000 (15:41 +0530)]
Merge pull request #60687 from vshankar/wip-67532-squid

squid: tools/rados: Fix extra NL in getxattr

6 months agoMerge pull request #60688 from vshankar/wip-68112-squid
Milind Changire [Thu, 2 Jan 2025 09:56:39 +0000 (15:26 +0530)]
Merge pull request #60688 from vshankar/wip-68112-squid

squid: mds: batch backtrace updates by pool-id when expiring a log segment

6 months agoMerge pull request #60691 from vshankar/wip-67693-squid
Milind Changire [Thu, 2 Jan 2025 09:55:56 +0000 (15:25 +0530)]
Merge pull request #60691 from vshankar/wip-67693-squid

squid: mds: getattr just waits the xlock to be released by the previous client

6 months agoMerge pull request #60694 from vshankar/wip-68694-squid
Milind Changire [Thu, 2 Jan 2025 09:55:10 +0000 (15:25 +0530)]
Merge pull request #60694 from vshankar/wip-68694-squid

squid: client: fixed a bug that read operation hung

6 months agoMerge pull request #59685 from vshankar/wip-67744-squid
Milind Changire [Thu, 2 Jan 2025 09:49:57 +0000 (15:19 +0530)]
Merge pull request #59685 from vshankar/wip-67744-squid

squid: qa: wait for file creation before changing mode

6 months agoMerge pull request #59866 from dparmar18/wip-66620-squid
Milind Changire [Thu, 2 Jan 2025 09:48:51 +0000 (15:18 +0530)]
Merge pull request #59866 from dparmar18/wip-66620-squid

squid: mds: drop client metrics during recovery

6 months agoMerge pull request #59899 from joscollin/wip-68168-squid
Milind Changire [Thu, 2 Jan 2025 09:44:03 +0000 (15:14 +0530)]
Merge pull request #59899 from joscollin/wip-68168-squid

squid: cephfs-top: fix exceptions on small/large sized windows

6 months agoMerge pull request #60181 from joscollin/wip-68408-squid
Milind Changire [Thu, 2 Jan 2025 09:43:27 +0000 (15:13 +0530)]
Merge pull request #60181 from joscollin/wip-68408-squid

squid: qa: fix test failure test_cephfs_mirror_cancel_mirroring_and_readd

6 months agoMerge pull request #60218 from dparmar18/wip-67674-squid
Milind Changire [Thu, 2 Jan 2025 09:42:30 +0000 (15:12 +0530)]
Merge pull request #60218 from dparmar18/wip-67674-squid

squid: client: contiguous read fails for non-contiguous write (in async I/O api)

6 months agoMerge pull request #61181 from rhcs-dashboard/squid-configuration-not-updatable
Pedro Gonzalez Gomez [Thu, 2 Jan 2025 09:27:50 +0000 (10:27 +0100)]
Merge pull request #61181 from rhcs-dashboard/squid-configuration-not-updatable

Squid: mgr/dashboard: Administration > Configuration > Some of the config options are not updatable at runtime

Reviewed-by: Nizamudeen A <nia@redhat.com>
Reviewed-by: Pedro Gonzalez Gomez <pegonzal@redhat.com>
6 months agoMerge pull request #61193 from zdover23/wip-doc-2024-12-30-backport-60794-to-squid
Anthony D'Atri [Mon, 30 Dec 2024 15:11:26 +0000 (10:11 -0500)]
Merge pull request #61193 from zdover23/wip-doc-2024-12-30-backport-60794-to-squid

squid: doc/cephfs: document purge queue and its perf counters

6 months agodoc/cephfs: document purge queue and its perf counters 61193/head
Dhairya Parmar [Thu, 21 Nov 2024 22:10:33 +0000 (03:40 +0530)]
doc/cephfs: document purge queue and its perf counters

Fixes: https://tracker.ceph.com/issues/68571
Signed-off-by: Dhairya Parmar <dparmar@redhat.com>
(cherry picked from commit ae9277398840bf8576ea5a8c4a2ba4e23f8b9613)

6 months agoMerge pull request #61189 from rhcs-dashboard/squid-multisite-e2e-fixes
Pedro Gonzalez Gomez [Fri, 27 Dec 2024 12:30:44 +0000 (13:30 +0100)]
Merge pull request #61189 from rhcs-dashboard/squid-multisite-e2e-fixes

Squid: mgr/dashboard: fix multisite e2e failures

Reviewed-by: Pedro Gonzaez Gomez <pegonzal@redhat.com>
6 months agomgr/dashboard: Administration > Configuration > Some of the config options are not... 61181/head
Naman Munet [Fri, 22 Nov 2024 09:57:44 +0000 (15:27 +0530)]
mgr/dashboard: Administration > Configuration > Some of the config options are not updatable at runtime

Fixes: https://tracker.ceph.com/issues/68976
Fixes Includes:
1) by-passing 'can_update_at_runtime' flag for 'rgw' related configurations as the same can be updated at runtime via CLI.
Also implemented a warning popup for user to make force edit to rgw related configurations.
2) when navigated to Administration >> Configuration, modified configuration will be seen as we see in cli "ceph config dump",
instead of configuration with filter level:basic

Signed-off-by: Naman Munet <naman.munet@ibm.com>
(cherry picked from commit 3181acc223dafd04e3fc56d418389ad50c5868e4)

6 months agomgr/dashboard: fix multisite e2e failures 61189/head
Naman Munet [Wed, 27 Nov 2024 17:27:39 +0000 (22:57 +0530)]
mgr/dashboard: fix multisite e2e failures

Fixes: https://tracker.ceph.com/issues/69072
Signed-off-by: Naman Munet <namanmunet@li-ff83bccc-26af-11b2-a85c-a4b04bfb1003.ibm.com>
(cherry picked from commit 3ae0e6d05375e41e002c262fec526e40120500ec)

6 months agoosd/scrub: register for 'osd_max_scrubs' config changes 61185/head
Ronen Friedman [Thu, 26 Dec 2024 13:06:10 +0000 (07:06 -0600)]
osd/scrub: register for 'osd_max_scrubs' config changes

Since https://github.com/ceph/ceph/pull/55340, the
osd_max_scrubs (also) affects the parameters of the
async scrub reserver used by the replicas. Thus,
the code must notice and acknowledge changes to this config.

Fixes: https://tracker.ceph.com/issues/69362
Signed-off-by: Ronen Friedman <rfriedma@redhat.com>
(cherry picked from commit 31e6bacfbf60e3e9222cae354d8527fa92282dbc)

6 months agoMerge pull request #61178 from zdover23/wip-doc-2024-12-26-backport-61177-to-squid
Anthony D'Atri [Thu, 26 Dec 2024 00:27:26 +0000 (19:27 -0500)]
Merge pull request #61178 from zdover23/wip-doc-2024-12-26-backport-61177-to-squid

doc: Fixes a typo in controllers section of hardware recommendations

6 months agodoc: Fixes a typo in controllers section of hardware recommendations 61178/head
Skalador [Wed, 25 Dec 2024 22:57:00 +0000 (23:57 +0100)]
doc: Fixes a typo in controllers section of hardware recommendations

Signed-off-by: Kevin Niederwanger <k.niederwanger@gmail.com>
(cherry picked from commit 089636224910e1cd6231cadd2c422a78c3d08fea)

6 months agoMerge pull request #61172 from idryomov/wip-69324-squid
Ilya Dryomov [Mon, 23 Dec 2024 22:05:46 +0000 (23:05 +0100)]
Merge pull request #61172 from idryomov/wip-69324-squid

squid: rbd: handle --{group,image}-namespace in "rbd group image {add,rm}"

Reviewed-by: Ramana Raja <rraja@redhat.com>
6 months agoMerge pull request #61168 from idryomov/wip-68998-squid
Ilya Dryomov [Mon, 23 Dec 2024 22:04:58 +0000 (23:04 +0100)]
Merge pull request #61168 from idryomov/wip-68998-squid

squid: librbd: avoid data corruption on flatten when object map is inconsistent

Reviewed-by: Ramana Raja <rraja@redhat.com>
6 months agorbd: drop --pool option from "rbd group image {add,rm}" 61172/head
Ilya Dryomov [Fri, 20 Dec 2024 10:16:58 +0000 (11:16 +0100)]
rbd: drop --pool option from "rbd group image {add,rm}"

It stopped working with removal of get_special_pool_group_names() in
commit 3e8624f157a1 ("rbd: add support for namespaces") over six years
ago.  Given how much time has passed, stop accepting this option.

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

6 months agorbd: handle --{group,image}-namespace in "rbd group image {add,rm}"
Ilya Dryomov [Tue, 17 Dec 2024 15:06:17 +0000 (16:06 +0100)]
rbd: handle --{group,image}-namespace in "rbd group image {add,rm}"

Currently only passing the namespace as part of the group or image spec
works.  If --group-namespace or --image-namespace options are used, the
namespace isn't picked up.

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

Conflicts:
src/tools/rbd/action/Group.cc [ "rbd group info" and "rbd group
  snap info" commands not in squid ]

6 months agotest/librbd: add TestInternal.FlattenInconsistentObjectMap 61168/head
Ilya Dryomov [Tue, 17 Dec 2024 08:57:44 +0000 (09:57 +0100)]
test/librbd: add TestInternal.FlattenInconsistentObjectMap

Inject an object map with all possible inconsistencies before
flattening to ensure that something similar to commit 40af4f87b64f
("librbd: flatten operation should use object map") doesn't reappear
in a different form.

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