]> git.apps.os.sepia.ceph.com Git - ceph.git/log
ceph.git
5 years agoMerge pull request #34816 from vumrao/wip-vumrao-45317
Yuri Weinstein [Thu, 7 May 2020 14:41:52 +0000 (07:41 -0700)]
Merge pull request #34816 from vumrao/wip-vumrao-45317

octopus: radosgw-admin: add support for --bucket-id in bucket stats command

5 years agoMerge pull request #34800 from smithfarm/wip-45049-octopus
Ramana Raja [Thu, 7 May 2020 14:41:18 +0000 (20:11 +0530)]
Merge pull request #34800 from smithfarm/wip-45049-octopus

octopus: mgr: force purge normal ceph entities from service map

Reviewed-by: Ramana Raja <rraja@redhat.com>
5 years agoMerge pull request #34799 from smithfarm/wip-44844-octopus
Ramana Raja [Thu, 7 May 2020 14:35:37 +0000 (20:05 +0530)]
Merge pull request #34799 from smithfarm/wip-44844-octopus

octopus: qa/test_config_session_timeout: fix options conflicting

Reviewed-by: Ramana Raja <rraja@redhat.com>
5 years agoMerge pull request #34798 from smithfarm/wip-44843-octopus
Ramana Raja [Thu, 7 May 2020 14:24:30 +0000 (19:54 +0530)]
Merge pull request #34798 from smithfarm/wip-44843-octopus

octopus: test/libcephfs: retry and wait for caps when setting the RD deleg

Reviewed-by: Jeff Layton <jlayton@redhat.com>
Reviewed-by: Ramana Raja <rraja@redhat.com>
5 years agoMerge pull request #34804 from smithfarm/wip-45222-octopus
Ramana Raja [Thu, 7 May 2020 11:23:57 +0000 (16:53 +0530)]
Merge pull request #34804 from smithfarm/wip-45222-octopus

octopus: cephfs-journal-tool: correctly parse --dry_run argument

Reviewed-by: Ramana Raja <rraja@redhat.com>
5 years agoMerge pull request #34805 from smithfarm/wip-45227-octopus
Ramana Raja [Thu, 7 May 2020 11:17:32 +0000 (16:47 +0530)]
Merge pull request #34805 from smithfarm/wip-45227-octopus

octopus: test_cephfs_shell: fix UnicodeDecodeError

Reviewed-by: Ramana Raja <rraja@redhat.com>
5 years agoMerge pull request #34681 from kotreshhr/octopus-subvolume-info
Ramana Raja [Thu, 7 May 2020 11:11:21 +0000 (16:41 +0530)]
Merge pull request #34681 from kotreshhr/octopus-subvolume-info

octopus: mgr/volumes: Add interface to get subvolume metadata

Reviewed-by: Ramana Raja <rraja@redhat.com>
5 years agoMerge pull request #34477 from jan--f/wip-44999-octopus
Jan Fajerski [Thu, 7 May 2020 10:20:45 +0000 (12:20 +0200)]
Merge pull request #34477 from jan--f/wip-44999-octopus

octopus: ceph-volume/batch: return success when all devices are filtered

5 years agoMerge pull request #34480 from jan--f/wip-45003-octopus
Jan Fajerski [Thu, 7 May 2020 10:20:18 +0000 (12:20 +0200)]
Merge pull request #34480 from jan--f/wip-45003-octopus

octopus: ceph-volume/batch: check lvs list before access

5 years agoMerge pull request #34886 from jan--f/wip-34341-no-tracker-octopus
Jan Fajerski [Thu, 7 May 2020 10:19:57 +0000 (12:19 +0200)]
Merge pull request #34886 from jan--f/wip-34341-no-tracker-octopus

octopus: ceph-volume: update functional testing deploy.yml playbook

5 years agoMerge pull request #34446 from jan--f/wip-44975-octopus
Jan Fajerski [Wed, 6 May 2020 16:27:24 +0000 (18:27 +0200)]
Merge pull request #34446 from jan--f/wip-44975-octopus

octopus: devices/simple/scan: Fix string in log statement

5 years agoceph-volume: update functional testing deploy.yml playbook 34886/head
Guillaume Abrioux [Wed, 1 Apr 2020 09:32:40 +0000 (11:32 +0200)]
ceph-volume: update functional testing deploy.yml playbook

This commit adds a call to `ceph-facts` role in the first play of this
playbook. This is needed so `ceph-validate` won't fail because of
following error:

```
fatal: [osd0]: FAILED! => {}

MSG:

'osd_pool_default_size' is undefined
```

`osd_pool_default_size` is set in ceph-facts.

Signed-off-by: Guillaume Abrioux <gabrioux@redhat.com>
(cherry picked from commit 5bf7cc87ec91e128bd106e101b43328cacef1c7b)

5 years agoMerge pull request #34797 from smithfarm/wip-45207-octopus
Josh Durgin [Mon, 4 May 2020 20:55:31 +0000 (13:55 -0700)]
Merge pull request #34797 from smithfarm/wip-45207-octopus

octopus: ceph-object-corpus: update to octopus

Reviewed-by: Josh Durgin <jdurgin@redhat.com>
5 years agoMerge pull request #34790 from smithfarm/wip-drop-is_opensuse-octopus
Yuri Weinstein [Mon, 4 May 2020 20:34:38 +0000 (13:34 -0700)]
Merge pull request #34790 from smithfarm/wip-drop-is_opensuse-octopus

octopus: rpm: drop "is_opensuse" conditional in SUSE-specific bcond block

Reviewed-by: Tim Serong <tserong@suse.com>
5 years agoMerge pull request #34610 from ifed01/wip-ifed-better-bluefs-expand-octopus
Yuri Weinstein [Mon, 4 May 2020 20:32:11 +0000 (13:32 -0700)]
Merge pull request #34610 from ifed01/wip-ifed-better-bluefs-expand-octopus

octopus: os/bluestore: open DB in read-only when expanding DB/WAL

Reviewed-by: Adam Kupczyk <akupczyk@redhat.com>
5 years agoMerge pull request #34830 from smithfarm/wip-45314-octopus
Yuri Weinstein [Mon, 4 May 2020 20:13:27 +0000 (13:13 -0700)]
Merge pull request #34830 from smithfarm/wip-45314-octopus

octopus: qa/standalone/scrub/osd-scrub-repair.sh: fix race in TEST_auto_repair_bluestore_failed

Reviewed-by: Neha Ojha <nojha@redhat.com>
5 years agoMerge pull request #34809 from smithfarm/wip-45041-octopus
Yuri Weinstein [Mon, 4 May 2020 20:12:56 +0000 (13:12 -0700)]
Merge pull request #34809 from smithfarm/wip-45041-octopus

octopus: osd/PrimaryLogPG: fix SPARSE_READ stat

Reviewed-by: xie xingguo <xie.xingguo@zte.com.cn>
Reviewed-by: Neha Ojha <nojha@redhat.com>
5 years agoMerge pull request #34807 from smithfarm/wip-44842-octopus
Yuri Weinstein [Mon, 4 May 2020 20:11:51 +0000 (13:11 -0700)]
Merge pull request #34807 from smithfarm/wip-44842-octopus

octopus: osd/PeeringState: do not trim pg log past last_update_ondisk

Reviewed-by: Samuel Just <sjust@redhat.com>
Reviewed-by: xie xingguo <xie.xingguo@zte.com.cn>
5 years agoMerge pull request #34806 from smithfarm/wip-44685-octopus
Yuri Weinstein [Mon, 4 May 2020 20:10:51 +0000 (13:10 -0700)]
Merge pull request #34806 from smithfarm/wip-44685-octopus

octopus: qa/standalone/osd/osd-backfill-stats.sh: get_latest_osdmap to propagate map change

Reviewed-by: xie xingguo <xie.xingguo@zte.com.cn>
Reviewed-by: Neha Ojha <nojha@redhat.com>
5 years agoMerge pull request #34353 from neha-ojha/wip-44757-octopus
Yuri Weinstein [Mon, 4 May 2020 20:09:57 +0000 (13:09 -0700)]
Merge pull request #34353 from neha-ojha/wip-44757-octopus

octopus: common/options: Disable bluefs_buffered_io by default again.

Reviewed-by: Vikhyat Umrao <vikhyat@redhat.com>
5 years agoMerge pull request #34795 from smithfarm/wip-45044-octopus
Yuri Weinstein [Mon, 4 May 2020 19:34:37 +0000 (12:34 -0700)]
Merge pull request #34795 from smithfarm/wip-45044-octopus

octopus: os/bluestore: Don't pollute old journal when add new device

Reviewed-by: Igor Fedotov <ifedotov@suse.com>
5 years agoMerge pull request #34739 from votdev/wip-45262-octopus
Yuri Weinstein [Mon, 4 May 2020 15:49:32 +0000 (08:49 -0700)]
Merge pull request #34739 from votdev/wip-45262-octopus

octopus: mgr/dashboard: RGW auto refresh is not working

Reviewed-by: Avan Thakkar <athakkar@redhat.com>
Reviewed-by: Laura Paduano <lpaduano@suse.com>
5 years agoMerge pull request #34742 from sebastian-philipp/octopus-backport-34691-34600-34620...
Abhishek L [Mon, 4 May 2020 15:35:59 +0000 (17:35 +0200)]
Merge pull request #34742 from sebastian-philipp/octopus-backport-34691-34600-34620-34674-34678-34673-34675-34693-34619

octopus: cephadm: Batch backport April (3)

Reviewed-By: Michael Fritch <mfritch@suse.com>
5 years agorgw/rgw_bucket: clear tenant string for non tenanted buckets 34816/head
Vikhyat Umrao [Fri, 1 May 2020 15:28:55 +0000 (08:28 -0700)]
rgw/rgw_bucket: clear tenant string for non tenanted buckets
in rgw_bucket_parse_bucket_key function.

Fixes: https://tracker.ceph.com/issues/45355
Signed-off-by: Vikhyat Umrao <vikhyat@redhat.com>
(cherry picked from commit 6c4594a6aa6db0aee05287a82eaa937f715dc8b0)

5 years agoradosgw-admin: add support for --bucket-id in bucket stats command
Vikhyat Umrao [Fri, 30 Aug 2019 07:16:46 +0000 (00:16 -0700)]
radosgw-admin: add support for --bucket-id in bucket stats command
Fixes: https://tracker.ceph.com/issues/41061
Signed-off-by: Vikhyat Umrao <vikhyat@redhat.com>
(cherry picked from commit 4cd16e13ca0c8709091737ad2cb2b37a3b19840d)

5 years agoMerge pull request #34793 from smithfarm/wip-45063-octopus
Yuri Weinstein [Thu, 30 Apr 2020 23:13:08 +0000 (16:13 -0700)]
Merge pull request #34793 from smithfarm/wip-45063-octopus

octopus: os/bluestore: fix 'unused' calculation

Reviewed-by: Igor Fedotov <ifedotov@suse.com>
5 years agoMerge pull request #34734 from smithfarm/wip-45259-octopus
Yuri Weinstein [Thu, 30 Apr 2020 20:56:04 +0000 (13:56 -0700)]
Merge pull request #34734 from smithfarm/wip-45259-octopus

octopus: rgw: reshard: skip stale bucket id entries from reshard queue

Reviewed-by: Casey Bodley <cbodley@redhat.com>
5 years agoMerge pull request #34825 from smithfarm/wip-44895-octopus
Yuri Weinstein [Thu, 30 Apr 2020 19:19:29 +0000 (12:19 -0700)]
Merge pull request #34825 from smithfarm/wip-44895-octopus

octopus: rgw: pubsub sync module ignores ERR_USER_EXIST

Reviewed-by: Casey Bodley <cbodley@redhat.com>
5 years agoMerge pull request #34826 from smithfarm/wip-45052-octopus
Yuri Weinstein [Thu, 30 Apr 2020 19:18:39 +0000 (12:18 -0700)]
Merge pull request #34826 from smithfarm/wip-45052-octopus

octopus: rgw: Disable prefetch of entire head object when GET request with range header

Reviewed-by: Casey Bodley <cbodley@redhat.com>
5 years agoMerge pull request #34819 from idryomov/wip-krbd-unmap-spacing-octopus
Yuri Weinstein [Thu, 30 Apr 2020 15:21:57 +0000 (08:21 -0700)]
Merge pull request #34819 from idryomov/wip-krbd-unmap-spacing-octopus

octopus: tests: update unmap.t for table spacing changes

Reviewed-by: Jason Dillaman <dillaman@redhat.com>
5 years agoMerge pull request #34810 from smithfarm/wip-45047-octopus
Yuri Weinstein [Thu, 30 Apr 2020 15:20:36 +0000 (08:20 -0700)]
Merge pull request #34810 from smithfarm/wip-45047-octopus

octopus: rbd-mirror: improved replication statistics

Reviewed-by: Mykola Golub <mgolub@mirantis.com>
Reviewed-by: Jason Dillaman <dillaman@redhat.com>
5 years agoMerge pull request #34425 from smithfarm/wip-44839-octopus
Yuri Weinstein [Thu, 30 Apr 2020 15:19:43 +0000 (08:19 -0700)]
Merge pull request #34425 from smithfarm/wip-44839-octopus

octopus: pybind/rbd: ensure image is open before permitting operations

Reviewed-by: Jason Dillaman <dillaman@redhat.com>
Reviewed-by: Mykola Golub <mgolub@mirantis.com>
5 years agoos/bluestore: invoke _prepare_ondisk_format_super as the last op 34610/head
Igor Fedotov [Fri, 17 Apr 2020 16:26:29 +0000 (19:26 +0300)]
os/bluestore: invoke _prepare_ondisk_format_super as the last op

Fixes: https://tracker.ceph.com/issues/45133
Signed-off-by: Igor Fedotov <ifedotov@suse.com>
(cherry picked from commit e792e19331d7cde91b0e8601fd33c41765a10232)

5 years agoMerge pull request #34626 from shyukri/wip-45042-octopus
Yuri Weinstein [Wed, 29 Apr 2020 16:34:17 +0000 (09:34 -0700)]
Merge pull request #34626 from shyukri/wip-45042-octopus

octopus: mgr/PyModule: fix missing tracebacks in handle_pyerror()

Reviewed-by: Josh Durgin <jdurgin@redhat.com>
5 years agoMerge pull request #34629 from shyukri/wip-45069-octopus
Yuri Weinstein [Wed, 29 Apr 2020 16:26:04 +0000 (09:26 -0700)]
Merge pull request #34629 from shyukri/wip-45069-octopus

octopus: mgr/telegraf: catch FileNotFoundError exception

Reviewed-by: Neha Ojha <nojha@redhat.com>
5 years agoMerge pull request #34731 from smithfarm/wip-45215-octopus
Yuri Weinstein [Wed, 29 Apr 2020 15:32:33 +0000 (08:32 -0700)]
Merge pull request #34731 from smithfarm/wip-45215-octopus

octopus: rgw: use DEFER_DROP_PRIVILEGES flag unconditionally

Reviewed-by: Casey Bodley <cbodley@redhat.com>
5 years agoMerge pull request #34758 from callithea/wip-45272-octopus
Lenz Grimmer [Wed, 29 Apr 2020 14:56:46 +0000 (16:56 +0200)]
Merge pull request #34758 from callithea/wip-45272-octopus

Reviewed-by: Kiefer Chang <kiefer.chang@suse.com>
Reviewed-by: Tatjana Dehler <tdehler@suse.com>
5 years agoMerge pull request #34759 from callithea/wip-45280-octopus
Lenz Grimmer [Wed, 29 Apr 2020 14:55:23 +0000 (16:55 +0200)]
Merge pull request #34759 from callithea/wip-45280-octopus

Reviewed-by: Kefu Chai <kchai@redhat.com>
Reviewed-by: Volker Theile <vtheile@suse.com>
5 years agoqa/*/osd-scrub-repair.sh: don't fail if PG is in active+clean+wait 34830/head
Neha Ojha [Thu, 23 Apr 2020 20:24:28 +0000 (20:24 +0000)]
qa/*/osd-scrub-repair.sh: don't fail if PG is in active+clean+wait

a0b453ad335671bd92f165115d6ee984d2412448 added the wait state, which can
make PGs stay in active+clean+wait for a while instead of going into
active+clean directly. As far as TEST_auto_repair_bluestore_failed is
concerned, we only care about the repair state being cleared.

Fixes: https://tracker.ceph.com/issues/45075
Signed-off-by: Neha Ojha <nojha@redhat.com>
(cherry picked from commit 7c8b627eaa478a97b5694704170336ed4fc40666)

Conflicts:
qa/standalone/scrub/osd-scrub-repair.sh

5 years agoqa/standalone/scrub/osd-scrub-repair.sh: fix race in TEST_auto_repair_bluestore_failed
Neha Ojha [Thu, 16 Apr 2020 23:00:23 +0000 (23:00 +0000)]
qa/standalone/scrub/osd-scrub-repair.sh: fix race in TEST_auto_repair_bluestore_failed

We need to flush_pg_stats before checking for active+clean.

Fixed: https://tracker.ceph.com/issues/45075
Signed-off-by: Neha Ojha <nojha@redhat.com>
(cherry picked from commit 4f82ebf41b0150a77083c665e7cac8678a31fb09)

Conflicts:
        qa/standalone/scrub/osd-scrub-repair.sh

5 years agorbd-mirror: skip snapshot image sync if mirror snapshot is marked clean 34810/head
Jason Dillaman [Wed, 22 Apr 2020 17:51:58 +0000 (13:51 -0400)]
rbd-mirror: skip snapshot image sync if mirror snapshot is marked clean

This is currently only utilized for the case where a newly created image
has mirroring enabled at time of creation, but it could be expanded in the
future if we track writes.

Fixes: https://tracker.ceph.com/issues/44596
Signed-off-by: Jason Dillaman <dillaman@redhat.com>
(cherry picked from commit fbede28d1a7713248765cf91136bb19b3b3fdac2)

5 years agolibrbd: EnableRequest now accepts a boolean to indicate a clean image
Jason Dillaman [Wed, 22 Apr 2020 15:57:45 +0000 (11:57 -0400)]
librbd: EnableRequest now accepts a boolean to indicate a clean image

If the image is clean, it's treated as if it was newly created and
therefore clean since snapshot id 0. The CreateRequest and
CloneRequest state machines pass true for this bool if mirroring
is being enabled during creation.

Signed-off-by: Jason Dillaman <dillaman@redhat.com>
(cherry picked from commit ea64ba5a6f2a73e3440244c0b358b948647670c5)

5 years agolibrbd: pass clean_since_snap_id to CreatePrimaryRequest
Jason Dillaman [Wed, 22 Apr 2020 15:42:17 +0000 (11:42 -0400)]
librbd: pass clean_since_snap_id to CreatePrimaryRequest

This will be stored in the primary MirrorSnapshotNamespace for use by
the rbd-mirror snapshot replayer.

Signed-off-by: Jason Dillaman <dillaman@redhat.com>
(cherry picked from commit 959d5e60d8a7eec96c71875cf69d1d4a7d80816d)

5 years agocls/rbd: added clean_since_snap_id to MirrorSnapshotNamespace
Jason Dillaman [Tue, 21 Apr 2020 15:07:30 +0000 (11:07 -0400)]
cls/rbd: added clean_since_snap_id to MirrorSnapshotNamespace

It is only valid for primary snapshots so we can re-use the space
previously used by the primary_snap_id without the need to bump the
version id.

Signed-off-by: Jason Dillaman <dillaman@redhat.com>
(cherry picked from commit 50702eece0b1d7535d387bdf923b88cd4bbfee37)

5 years agorbd: add '--mirror-image-mode' optional to image creation actions
Jason Dillaman [Tue, 21 Apr 2020 00:37:56 +0000 (20:37 -0400)]
rbd: add '--mirror-image-mode' optional to image creation actions

This allows the user to enable mirroring while creating, cloning,
copying, importing, or migrating an image.

Signed-off-by: Jason Dillaman <dillaman@redhat.com>
(cherry picked from commit 6da56d798248369f15191d8d5ec3b093f8dca831)

5 years agolibrbd: save requested mirror image mode during migration prepare
Jason Dillaman [Mon, 20 Apr 2020 23:34:57 +0000 (19:34 -0400)]
librbd: save requested mirror image mode during migration prepare

Once the migration is committed, the requested mode will be applied.

Signed-off-by: Jason Dillaman <dillaman@redhat.com>
(cherry picked from commit 25c034f0a0a627b54a1e4b948292890385cb7b6d)

5 years agolibrbd: permit mirroring to be enabled upon image cloning
Jason Dillaman [Mon, 20 Apr 2020 22:50:43 +0000 (18:50 -0400)]
librbd: permit mirroring to be enabled upon image cloning

The librbd clone API's ImageOptions parameter now supports passing
the mirror image mode.

Signed-off-by: Jason Dillaman <dillaman@redhat.com>
(cherry picked from commit 407f2e5c172cf5bef49a28b3156099487e7c2bf6)

5 years agolibrbd: add non-primary global image id to mirror enable
Jason Dillaman [Mon, 20 Apr 2020 22:33:32 +0000 (18:33 -0400)]
librbd: add non-primary global image id to mirror enable

The constructor that took an ImageCtx did not support passing the
non-primary global image id and instead defaulted to an empty string.

Signed-off-by: Jason Dillaman <dillaman@redhat.com>
(cherry picked from commit a90042b2546bdaa056610bd10d7dae0f5e5da18e)

5 years agolibrbd: permit mirroring to be enabled upon image creation
Jason Dillaman [Mon, 20 Apr 2020 21:04:02 +0000 (17:04 -0400)]
librbd: permit mirroring to be enabled upon image creation

The librbd create API's ImageOptions parameter now supports passing
the mirror image mode.

Signed-off-by: Jason Dillaman <dillaman@redhat.com>
(cherry picked from commit 37f6fa8fe95729af845100e28df8b8e0668c2270)

5 years agolibrbd: mirror enable state machine might need to open image
Jason Dillaman [Mon, 20 Apr 2020 22:16:40 +0000 (18:16 -0400)]
librbd: mirror enable state machine might need to open image

If attempting to create a snapshot-based mirroring primary snapshot,
the image needs to first be opened. If we weren't supplied an image,
open the image, create the snapshot, and close the image again.

Signed-off-by: Jason Dillaman <dillaman@redhat.com>
(cherry picked from commit 931c9f0fd9332136466a8d81c9708b86f597f4be)

5 years agolibrbd: pass bit-flags to image::CreateRequest
Jason Dillaman [Mon, 20 Apr 2020 19:23:53 +0000 (15:23 -0400)]
librbd: pass bit-flags to image::CreateRequest

The current boolean for skip enable mirror will be able to be changed to
a tri-state to force enable mirror (in addition to the current auto-enable
if in pool-mode).

Signed-off-by: Jason Dillaman <dillaman@redhat.com>
(cherry picked from commit b0c3ca63c2dff11c823d0d4456a2a07f1594fb9f)

5 years agorgw: Disable prefetch of entire head object when GET request with range header 34826/head
Or Friedmann [Sun, 8 Mar 2020 13:34:48 +0000 (15:34 +0200)]
rgw: Disable prefetch of entire head object when GET request with range header

Disable prefetch of entire head object when GET request with range header.
The current behavior for the RGW is getting the whole object although the client asked only for a small bytes offset.
For example: If the client asked for bytes=0-1, The RGW will anyway fetch 0-4194304

Fixes: https://tracker.ceph.com/issues/44508
Signed-off-by: Or Friedmann <ofriedma@redhat.com>
(cherry picked from commit 2be5af0006169cb54547034aa98b7eacb8751d59)

5 years agorgw: pubsub sync module ignores ERR_USER_EXIST 34825/head
Casey Bodley [Tue, 31 Mar 2020 14:46:33 +0000 (10:46 -0400)]
rgw: pubsub sync module ignores ERR_USER_EXIST

otherwise, this error gets returned by RGWPSDataSyncModule::start_sync()
and data sync fails to start

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

5 years agoqa/workunits/rbd: fix peer_add helper
Mykola Golub [Tue, 28 Apr 2020 16:04:43 +0000 (17:04 +0100)]
qa/workunits/rbd: fix peer_add helper

We need to temporary disable "exit on error" mode so it does not
abort when `rbd mirror pool peer add` returns "already exists"
error code.

Signed-off-by: Mykola Golub <mgolub@suse.com>
(cherry picked from commit 1ad816ae0c2d4f0db3d26e0ae993947154bab6c8)

5 years agoqa/workunits/rbd: retry the addition of a mirror pool peer
Mykola Golub [Sat, 25 Apr 2020 07:36:25 +0000 (08:36 +0100)]
qa/workunits/rbd: retry the addition of a mirror pool peer

fb4311f5 has fixed this for setup, but "remove mirroring pool"
test needs fixing too.

Fixes: https://tracker.ceph.com/issues/44938
Signed-off-by: Mykola Golub <mgolub@suse.com>
(cherry picked from commit 7eced158a9a3c47cc408b35219b4428e97e018fb)

5 years agotests: update unmap.t for table spacing changes 34819/head
Ilya Dryomov [Thu, 9 Apr 2020 10:41:34 +0000 (12:41 +0200)]
tests: update unmap.t for table spacing changes

Introduced in 4d42b4c5a0ed ("common/TextTable: default to 2 spaces
separating columns") and 41f003518a07 ("common/TextTable: only pad
between columns").

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

5 years agorbd-mirror: track in-flight start/stop/restart in instance replayer
Jason Dillaman [Fri, 17 Apr 2020 15:17:05 +0000 (11:17 -0400)]
rbd-mirror: track in-flight start/stop/restart in instance replayer

The shut down waits for in-flight ops to complete but the
start/stop/restart operations were previously not tracked. This
could cause a potential race and crash between an image replayer
operation and the instance replayer shutting down.

Fixes: https://tracker.ceph.com/issues/45072
Signed-off-by: Jason Dillaman <dillaman@redhat.com>
(cherry picked from commit 31140a940ea1909c4b5d68ef4593cb582a527354)

5 years agorbd-mirror: switch to common C_TrackedOp context class
Jason Dillaman [Fri, 17 Apr 2020 14:20:44 +0000 (10:20 -0400)]
rbd-mirror: switch to common C_TrackedOp context class

Signed-off-by: Jason Dillaman <dillaman@redhat.com>
(cherry picked from commit 64f8d9c30c53077f48107e83ba836897aa99e609)

5 years agocommon: add helper C_TrackerOp context class
Jason Dillaman [Fri, 17 Apr 2020 14:02:10 +0000 (10:02 -0400)]
common: add helper C_TrackerOp context class

This wraps the functionality of starting and finishing a tracked op
into the standard context interface.

Signed-off-by: Jason Dillaman <dillaman@redhat.com>
(cherry picked from commit 4bd9d1501f3832206ef12155cec3f008e3160822)

5 years agorbd-mirror: utilize structured binding in 'for' loop
Jason Dillaman [Tue, 14 Apr 2020 22:05:59 +0000 (18:05 -0400)]
rbd-mirror: utilize structured binding in 'for' loop

Signed-off-by: Jason Dillaman <dillaman@redhat.com>
(cherry picked from commit 847f178c4bfb50ab1c1b21222fcb47759119aa43)

5 years agorbd-mirror: unlink from remote snapshot if required
Jason Dillaman [Wed, 8 Apr 2020 02:12:19 +0000 (22:12 -0400)]
rbd-mirror: unlink from remote snapshot if required

If a previous remote snapshot was synced but the unlink failed,
ensure we retry the unlink so that the remote can cleanup the unused
snapshot.

Signed-off-by: Jason Dillaman <dillaman@redhat.com>
(cherry picked from commit cb7b91dc02b64cb15f8d21e830a698bd4173b35a)

5 years agorbd-mirror: prune unnecessary non-primary mirror snapshots
Jason Dillaman [Mon, 6 Apr 2020 20:46:52 +0000 (16:46 -0400)]
rbd-mirror: prune unnecessary non-primary mirror snapshots

Once a non-primary snapshot is no longer required for syncing, delete it
from the image.

Fixes: https://tracker.ceph.com/issues/44105
Signed-off-by: Jason Dillaman <dillaman@redhat.com>
(cherry picked from commit 281af0de86b17244a2c64af80db0bf84de6d9819)

5 years agorbd-mirror: propagate full snap-seq mapping in non-primary snapshots
Jason Dillaman [Mon, 6 Apr 2020 20:21:35 +0000 (16:21 -0400)]
rbd-mirror: propagate full snap-seq mapping in non-primary snapshots

Previously only newly created user snapshots were included in the
non-primary snapshot snap-seq mapping table. However, we need to
retain a full history of the mapping table if we want to be able to
prune non-primary snapshots.

Failovers are a special case since we won't have a valid snap seq mapping
so it will need to be rebuilt. Luckily, both sides should be read-only
in the previous state so we can use the snapshot names to find matches.

Signed-off-by: Jason Dillaman <dillaman@redhat.com>
(cherry picked from commit cb8187c0dd22ed9098ab51e47777aee5aec471a7)

5 years agorbd-mirror: ignore non-primary read-only state for remote images
Jason Dillaman [Tue, 7 Apr 2020 23:12:03 +0000 (19:12 -0400)]
rbd-mirror: ignore non-primary read-only state for remote images

snapshot-based mirroring needs to be able to potentially delete a
demotion snapshot during the unlink process. Previously, these
snapshots have been left while the read-only error was ignored.

Signed-off-by: Jason Dillaman <dillaman@redhat.com>
(cherry picked from commit 6bf2132cf041f6ab16c86e46b5acd4cf2ce12060)

5 years agorbd: fix missing space when listing non-primary mirror snapshots
Jason Dillaman [Tue, 7 Apr 2020 23:11:42 +0000 (19:11 -0400)]
rbd: fix missing space when listing non-primary mirror snapshots

Signed-off-by: Jason Dillaman <dillaman@redhat.com>
(cherry picked from commit 0ca7817eceafd7756eee967e7d740afeedd517e7)

5 years agolibrbd: fixed race condition on demotion of snapshot-based mirrored image
Jason Dillaman [Thu, 9 Apr 2020 03:06:05 +0000 (23:06 -0400)]
librbd: fixed race condition on demotion of snapshot-based mirrored image

A pending refresh could occur after setting the non-primary feature flag but
before the creation of the demotion snapshot. This would prevent the snapshot
from being created and would leave the image in a half-primary state.

Signed-off-by: Jason Dillaman <dillaman@redhat.com>
(cherry picked from commit a3acdbd069b5c5bd62e528cbf2fbc33fe6f23d92)

5 years agolibrbd: store mirror peer uuids in non-primary demoted snapshots
Jason Dillaman [Wed, 8 Apr 2020 23:41:23 +0000 (19:41 -0400)]
librbd: store mirror peer uuids in non-primary demoted snapshots

This will allow a remote rbd-mirror process to have a snapshot to use for
delta sync operations during failover.

Signed-off-by: Jason Dillaman <dillaman@redhat.com>
(cherry picked from commit 0102ce88701dd52208520b8c0ab2e505548ed3e1)

5 years agolibrbd: additional debug logs for mirror snapshot unlink peer
Jason Dillaman [Wed, 8 Apr 2020 21:50:59 +0000 (17:50 -0400)]
librbd: additional debug logs for mirror snapshot unlink peer

Signed-off-by: Jason Dillaman <dillaman@redhat.com>
(cherry picked from commit eed00eb17969791107ddb8df0e909790c17bd573)

5 years agotest/rbd-mirror: fix gmock warnings during snapshot-based replayer tests
Jason Dillaman [Mon, 6 Apr 2020 18:37:04 +0000 (14:37 -0400)]
test/rbd-mirror: fix gmock warnings during snapshot-based replayer tests

Signed-off-by: Jason Dillaman <dillaman@redhat.com>
(cherry picked from commit 6a342bb5e01fea205088592128f62b55261408bf)

5 years agorbd-mirror: fixed race condition with snapshot sync and shutdown
Jason Dillaman [Tue, 7 Apr 2020 16:13:46 +0000 (12:13 -0400)]
rbd-mirror: fixed race condition with snapshot sync and shutdown

Signed-off-by: Jason Dillaman <dillaman@redhat.com>
(cherry picked from commit 8a18a7fc71944c55e7a5fa47e55572546b4088db)

5 years agorbd-mirror: add snapshot-based replay performance metrics
Jason Dillaman [Fri, 3 Apr 2020 17:11:27 +0000 (13:11 -0400)]
rbd-mirror: add snapshot-based replay performance metrics

The mirror image status for replaying snapshot-based images now includes
bytes per second and per snapshot, in addition to an estimated number of
seconds until the image is fully synced.

Signed-off-by: Jason Dillaman <dillaman@redhat.com>
(cherry picked from commit 03aa081435abf12429fbe98b7ff1095a4b37d830)

5 years agorbd-mirror: switch to json_spirit formatter for snapshot image status
Jason Dillaman [Thu, 2 Apr 2020 17:43:09 +0000 (13:43 -0400)]
rbd-mirror: switch to json_spirit formatter for snapshot image status

This will make it cleaner and easier to add additional data fields
to the existing JSON replaying status.

Signed-off-by: Jason Dillaman <dillaman@redhat.com>
(cherry picked from commit de445810e97b345f647ffc5f5792dfc2ad589f06)

5 years agorbd-mirror: add journal-based replay performance metrics
Jason Dillaman [Wed, 1 Apr 2020 23:24:15 +0000 (19:24 -0400)]
rbd-mirror: add journal-based replay performance metrics

The mirror image status for replaying journal-based images now includes
bytes and entries per second in addition to an estimated number of seconds
until the image is fully synced.

Signed-off-by: Jason Dillaman <dillaman@redhat.com>
(cherry picked from commit c0dc96bf137dac6942e14800e173bfb9bda233eb)

5 years agorbd-mirror: switch to json_spirit formatter for journal image status
Jason Dillaman [Wed, 1 Apr 2020 19:26:39 +0000 (15:26 -0400)]
rbd-mirror: switch to json_spirit formatter for journal image status

The free-form journal replay status description is now JSON-encoded. The
"master"/"mirror" designators have been changed to "primary"/"non_primary"
to better align with RBD terminology.

Signed-off-by: Jason Dillaman <dillaman@redhat.com>
(cherry picked from commit e04422f2c60a9ce891da496b71a568264e39233e)

5 years agorbd-mirror: periodically poll image replayer status
Jason Dillaman [Thu, 2 Apr 2020 18:50:37 +0000 (14:50 -0400)]
rbd-mirror: periodically poll image replayer status

When metrics are incorporated, there might not be a forced status update
if no new data is available to replicate. However, we will want the metrics
to decrease over time.

Signed-off-by: Jason Dillaman <dillaman@redhat.com>
(cherry picked from commit 133cce8af50653d147d7147fc4bc7269ad10b5e1)

5 years agolibrbd: pass bytes-read statistics from deep-copy through handler
Jason Dillaman [Fri, 3 Apr 2020 19:24:14 +0000 (15:24 -0400)]
librbd: pass bytes-read statistics from deep-copy through handler

These simple stats will be utilized by rbd-mirror to compute throughput
metrics for snapshot-based mirroring.

Signed-off-by: Jason Dillaman <dillaman@redhat.com>
(cherry picked from commit 0b6cbdeb9deec8184a43f1b7533c8316b22b9f5d)

5 years agolibrbd: pass specialized handler interface to deep-copy
Jason Dillaman [Fri, 3 Apr 2020 15:12:48 +0000 (11:12 -0400)]
librbd: pass specialized handler interface to deep-copy

The initial version mimics the existing ProgressContext callback
interface. Later commits will add additional deep-copy unique methods.

Signed-off-by: Jason Dillaman <dillaman@redhat.com>
(cherry picked from commit c7d6e762d19284a05b88daba6c27cbbdbdb210e9)

5 years agoosd/PrimaryLogPG: fix SPARSE_READ stat 34809/head
Yan Jun [Fri, 27 Mar 2020 01:49:05 +0000 (09:49 +0800)]
osd/PrimaryLogPG: fix SPARSE_READ stat

22960192 use readv to reimplement SPARSE_READ, however it is
still using total_read to accumulate total bytes it reads from
bluestore, which is always zero in code.

Fix by dropping the redundant local total_read counter.
By definition objects_readv_sync should return the correct bytes
it has read. Use that instead.

Signed-off-by: Yan Jun <yan.jun8@zte.com.cn>
(cherry picked from commit 528fb95326e76518e93fe43274f7a8e86049851d)

5 years agosuites/rados/thrash: add rados-high-concurrency 34807/head
Samuel Just [Fri, 13 Mar 2020 22:58:44 +0000 (15:58 -0700)]
suites/rados/thrash: add rados-high-concurrency

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

5 years agoPrimaryLogPG: add assert that we aren't trimming past last_update_ondisk
Samuel Just [Fri, 13 Mar 2020 22:43:58 +0000 (15:43 -0700)]
PrimaryLogPG: add assert that we aren't trimming past last_update_ondisk

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

5 years agoqa/osd-recovery: pass osd_pg_log_trim_min = 0 to exercise short pg logs
xie xingguo [Fri, 13 Mar 2020 00:45:52 +0000 (08:45 +0800)]
qa/osd-recovery: pass osd_pg_log_trim_min = 0 to exercise short pg logs

we have osd_min_pg_log_entries to 2 (good) but not osd_pg_log_trim_min
which defaults to 100. Thus, even on those tests we're only rarely vulnerable.
Reset osd_min_pg_log_entries to 0 to make sure we really
would keep a minimal pg log in hand.

Signed-off-by: xie xingguo <xie.xingguo@zte.com.cn>
(cherry picked from commit a9412ba25cb65816e85f8e414b399ff5e4db905c)

5 years agoqa/short_pg_log: pass osd_pg_log_trim_min = 0 to exercise short pg logs
xie xingguo [Thu, 12 Mar 2020 23:59:07 +0000 (07:59 +0800)]
qa/short_pg_log: pass osd_pg_log_trim_min = 0 to exercise short pg logs

we have osd_min_pg_log_entries to 2 (good) but not osd_pg_log_trim_min
which defaults to 100. Thus, even on those tests we're only rarely vulnerable.
Reset osd_min_pg_log_entries to 0 to make sure we really
keep a minimal pg log in hand.

Signed-off-by: xie xingguo <xie.xingguo@zte.com.cn>
(cherry picked from commit b73b93c6f0a9317fbed4a311931d159c9a0af9d7)

5 years agoosd/PeeringState: do not trim pg log past last_update_ondisk
xie xingguo [Thu, 12 Mar 2020 10:01:45 +0000 (18:01 +0800)]
osd/PeeringState: do not trim pg log past last_update_ondisk

Trimming past last_update_ondisk would be really bad, e.g.,
a new interval change would cancel&redo a previous op, and if
we trim past last_update_ondisk, there could be potential
object inconsistencies as log merging won't necessarily be able
to find all divergent entries later (we lost track of the unfinished
op that should really be reverted).

Fixes: https://tracker.ceph.com/issues/44532
Signed-off-by: xie xingguo <xie.xingguo@zte.com.cn>
(cherry picked from commit eef1928e0153f09dc2522bb885b0ad9f5c65f4bd)

5 years agoqa/standalone/osd/osd-backfill-stats.sh: get_latest_osdmap to propagate map change 34806/head
Neha [Wed, 18 Mar 2020 22:57:41 +0000 (22:57 +0000)]
qa/standalone/osd/osd-backfill-stats.sh: get_latest_osdmap to propagate map change

Fixes: https://tracker.ceph.com/issues/44518
Signed-off-by: Neha Ojha <nojha@redhat.com>
(cherry picked from commit 6edd1cb68654702aa0698b50708514105ac01632)

5 years agoqa/vstart_runner: filter out non-ASCII chars 34805/head
Rishabh Dave [Tue, 14 Jan 2020 15:13:31 +0000 (20:43 +0530)]
qa/vstart_runner: filter out non-ASCII chars

...from stdout and stderr of a command issued using LocalRemoteProcess.

Fixes: https://tracker.ceph.com/issues/43567
Signed-off-by: Rishabh Dave <ridave@redhat.com>
(cherry picked from commit 43a0b64596d9f6cb91d9939745abf26da4481007)

5 years agocephfs-journal-tool: correctly parse --dry_run argument 34804/head
Milind Changire [Mon, 30 Mar 2020 05:51:27 +0000 (11:21 +0530)]
cephfs-journal-tool: correctly parse --dry_run argument

Correctly parse --dry_run argument and make it available to the
"recover_dentries" command.

Fixes: https://tracker.ceph.com/issues/44172
Signed-off-by: Milind Changire <mchangir@redhat.com>
(cherry picked from commit d9f62d3a1de68eb44b9fc9a40ca36c70c5c772a4)

5 years agoqa: whitelist cluster warning message for removed MDS 34800/head
Venky Shankar [Tue, 31 Mar 2020 04:21:37 +0000 (00:21 -0400)]
qa: whitelist cluster warning message for removed MDS

Fixes: http://tracker.ceph.com/issues/44677
Signed-off-by: Venky Shankar <vshankar@redhat.com>
(cherry picked from commit 3c531197a6070917206a4fbe31d7291019ca57b1)

5 years agomgr: force purge normal ceph entities from service map
Venky Shankar [Fri, 27 Mar 2020 04:00:08 +0000 (00:00 -0400)]
mgr: force purge normal ceph entities from service map

Normal ceph services can send task status updates to manager.
Task status is tracked in service map implying that normal
ceph services have entries in service map and daemon tracking
index (daemon state). But the manager prunes entries from daemon
state when it receives an updated map (fs, mon, etc...). This
causes periodic pruning of service map entries to fail for normal
ceph services (those which send task status updates) since it
expects a corresponding entry in daemon state.

Signed-off-by: Venky Shankar <vshankar@redhat.com>
(cherry picked from commit bccbf1fa03ed2fb02ad2e50e6aaf963b36d8bd30)

5 years agoqa/vstart_runner: fix mutiple 'timeout' option conflicting 34799/head
Xiubo Li [Thu, 5 Mar 2020 10:31:14 +0000 (05:31 -0500)]
qa/vstart_runner: fix mutiple 'timeout' option conflicting

The 'timeout' option in the environment may will conflict with the
ones in some ceph commands, like:

$ timeout 120 ./bin/ceph daemon mds.b session config 8718 timeout 45

And the old code will also give us incorrect result like:

['adjust-ulimits', 'ceph-coverage', 'timeout', '120', 'ceph', 'fs', 'dump']
will be transfered to:
['adjust-ulimits', 'ceph-coverage', '120', 'ceph', 'fs', 'dump']

The '120' is left behind.

Fixes: https://tracker.ceph.com/issues/44437
Signed-off-by: Xiubo Li <xiubli@redhat.com>
(cherry picked from commit 1bcd319496f507f76864a972c1de63439dd78d4a)

5 years agotest/libcephfs: retry and wait for caps when setting the RD deleg 34798/head
Xiubo Li [Thu, 19 Mar 2020 00:58:30 +0000 (20:58 -0400)]
test/libcephfs: retry and wait for caps when setting the RD deleg

Fixes: https://tracker.ceph.com/issues/44525
Signed-off-by: Xiubo Li <xiubli@redhat.com>
(cherry picked from commit 9f1c9e5da2ff6b96b64c375e60a669e075242079)

5 years agoceph-object-corpus: pick up octopus 15.2.1-40-ga838bb1aae 34797/head
Josh Durgin [Thu, 16 Apr 2020 01:29:39 +0000 (21:29 -0400)]
ceph-object-corpus: pick up octopus 15.2.1-40-ga838bb1aae

Signed-off-by: Josh Durgin <jdurgin@redhat.com>
(cherry picked from commit 09d928ff90a42fb468291b434d548c83aa2543fc)

5 years agoinclude/denc: replace bufferlist::copy with iterator version
Josh Durgin [Thu, 16 Apr 2020 01:26:40 +0000 (21:26 -0400)]
include/denc: replace bufferlist::copy with iterator version

This version was only compiled as part of ceph-object-corpus
generation, when ENCODE_DUMP_PATH is defined, so it was missed
when bufferlist::copy() was removed.

Fixes: https://tracker.ceph.com/issues/45023
Signed-off-by: Josh Durgin <jdurgin@redhat.com>
(cherry picked from commit 06e862bc68c7ebb2b3963f5e07a326ef837cd4fb)

5 years agoos/bluestore: Don't pollute old journal when add new device 34795/head
Yang Honggang [Thu, 26 Mar 2020 17:11:55 +0000 (17:11 +0000)]
os/bluestore: Don't pollute old journal when add new device

Fixes: https://tracker.ceph.com/issues/44774
Signed-off-by: Yang Honggang <yanghonggang@kuaishou.com>
(cherry picked from commit ade4d46981e660c8d57cec64180b5afa4561b945)

5 years agotest/objectstore/test_bluestore_types: add tests for unused bitmap 34793/head
Igor Fedotov [Mon, 3 Feb 2020 20:21:28 +0000 (23:21 +0300)]
test/objectstore/test_bluestore_types: add tests for unused bitmap

Signed-off-by: xie xingguo <xie.xingguo@zte.com.cn>
Signed-off-by: Igor Fedotov <ifedotov@suse.com>
(cherry picked from commit 985497227acbdd46fefc4de5aef75aaa9630514b)

5 years agoos/bluestore: do not use 'unused' bitmap if makes no sense.
Igor Fedotov [Mon, 3 Feb 2020 15:50:50 +0000 (18:50 +0300)]
os/bluestore: do not use 'unused' bitmap if makes no sense.

The processing logic which relies on 'unused' bitmap makes sense for
bluestore setup where min alloc size is different from device block
size. Now omitting if that's not true.

Signed-off-by: Igor Fedotov <ifedotov@suse.com>
(cherry picked from commit f960a018f938c70ea3d7f031611cdc5a6b9955b1)

5 years agoos/bluestore: fix unused 'tail' calculation.
Igor Fedotov [Mon, 3 Feb 2020 15:36:21 +0000 (18:36 +0300)]
os/bluestore: fix unused 'tail' calculation.

Fixes: https://tracker.ceph.com/issues/41901
Signed-off-by: Igor Fedotov <ifedotov@suse.com>
(cherry picked from commit c91cc3a8d689995e8554c41c9b0f652d9a3458da)

5 years agorpm: drop "is_opensuse" conditional in SUSE-specific bcond block 34790/head
Nathan Cutler [Fri, 6 Mar 2020 09:09:27 +0000 (10:09 +0100)]
rpm: drop "is_opensuse" conditional in SUSE-specific bcond block

Until now, "ocf" and "libradosstriper" were disabled on SLE, but not
openSUSE.

Leaving them enabled for openSUSE makes it appear as if these features
are expected to do something useful on SUSE.

Dropping the "is_opensuse" conditional has the desirable side effect of
streamlining the SUSE bcond block, and in the spirit of "and that's not
all", we take the opportunity to put the bconds in alphabetical order
for comforting cosmetic effect.

Signed-off-by: Nathan Cutler <ncutler@suse.com>
(cherry picked from commit fd7cb3dae55b649febfeccee8ec3c9efa9ffb9e7)

5 years agoMerge pull request #34760 from callithea/wip-45281-octopus
Lenz Grimmer [Tue, 28 Apr 2020 07:23:07 +0000 (09:23 +0200)]
Merge pull request #34760 from callithea/wip-45281-octopus

Reviewed-by: Stephan Müller <smueller@suse.com>
Reviewed-by: Tiago Melo <tmelo@suse.com>
Reviewed-by: Volker Theile <vtheile@suse.com>
5 years agoqa/tasks/vstart_runner.py: use StringIO for capturing text 34759/head
Kefu Chai [Sat, 25 Apr 2020 01:47:00 +0000 (09:47 +0800)]
qa/tasks/vstart_runner.py: use StringIO for capturing text

to be consistent with 8bfe977854686149c74de3ebaed7b571d43404dd

Fixes: https://tracker.ceph.com/issues/45246
Signed-off-by: Kefu Chai <kchai@redhat.com>
(cherry picked from commit 2de78c3bd9eed9bec235b68e8e52b4635e9add61)

qa/tasks: Add missing StringIO import

This is directly fixed in octopus since it's needed
to get the dashboard backend API tests running
based on the previous commits of this PR.
There is a fix in master but this one
uses "from io import StringIO" while
we still need to be python2 compatible in octopus.
So this import is done with "six" (expects str in python2
instead of "io" (expects unicode
in python2).

This import line is not cherry-picked from master
due to the above mentioned reasons.

Signed-off-by: Laura Paduano <lpaduano@suse.com>
5 years agomgr/dashboard: fix API tests
Alfonso Martínez [Fri, 24 Apr 2020 08:53:24 +0000 (10:53 +0200)]
mgr/dashboard: fix API tests

* test_perf_counters_mgr_get
* test_selftest_cluster_log

Fixes: https://tracker.ceph.com/issues/45170
Fixes: https://tracker.ceph.com/issues/45246
Signed-off-by: Alfonso Martínez <almartin@redhat.com>
(cherry picked from commit 0ac296430f45ddf937b6c4c25607f0b757dcf447)