]> git.apps.os.sepia.ceph.com Git - ceph.git/log
ceph.git
8 years agorbd-mirror: ignore empty snapshot sequence mapping
Jason Dillaman [Wed, 15 Jun 2016 20:34:44 +0000 (16:34 -0400)]
rbd-mirror: ignore empty snapshot sequence mapping

This invalid condition will be gracefully detected and handled
when the snapshot mappings are computed.

Fixes: http://tracker.ceph.com/issues/16329
Signed-off-by: Jason Dillaman <dillaman@redhat.com>
(cherry picked from commit 58ed8a18e91401333bc3f3f957ce5d715b6687b6)

8 years agoqa/workunits/rbd: remove temporary image exports
Jason Dillaman [Mon, 27 Jun 2016 17:01:13 +0000 (13:01 -0400)]
qa/workunits/rbd: remove temporary image exports

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

8 years agorbd-mirror: fix potential image replayer state transition race
Jason Dillaman [Mon, 27 Jun 2016 15:13:29 +0000 (11:13 -0400)]
rbd-mirror: fix potential image replayer state transition race

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

8 years agorbd-mirror: cancel image deletion callback on shut down
Jason Dillaman [Mon, 27 Jun 2016 15:06:57 +0000 (11:06 -0400)]
rbd-mirror: cancel image deletion callback on shut down

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

8 years agorbd-mirror: fixed potential leaking image deletion context callback
Jason Dillaman [Mon, 27 Jun 2016 14:58:09 +0000 (10:58 -0400)]
rbd-mirror: fixed potential leaking image deletion context callback

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

8 years agorbd-mirror: ImageReplayer doesn't need image deleted callback
Jason Dillaman [Mon, 27 Jun 2016 13:45:25 +0000 (09:45 -0400)]
rbd-mirror: ImageReplayer doesn't need image deleted callback

The Replayer will detect that the ImageReplayer is stopped and will
schedule the "wait for deleted" callback before attempting to
restart the ImageReplayer.

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

8 years agorbd-mirror: use async callback when deletion not in-progress
Jason Dillaman [Mon, 27 Jun 2016 13:21:05 +0000 (09:21 -0400)]
rbd-mirror: use async callback when deletion not in-progress

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

8 years agorbd-mirror: tests: ImageSyncThrottler unit tests
Ricardo Dias [Thu, 9 Jun 2016 09:40:23 +0000 (10:40 +0100)]
rbd-mirror: tests: ImageSyncThrottler unit tests

Signed-off-by: Ricardo Dias <rdias@suse.com>
(cherry picked from commit 8ca9a84f36efa73ad17fd27f545dff3716cd798c)

8 years agorbd-mirror: Usage of image-sync throttler in BootstrapRequest
Ricardo Dias [Wed, 8 Jun 2016 15:38:01 +0000 (16:38 +0100)]
rbd-mirror: Usage of image-sync throttler in BootstrapRequest

Fixes: http://tracker.ceph.com/issues/15239
Signed-off-by: Ricardo Dias <rdias@suse.com>
(cherry picked from commit 6a91146255d84229688bd8b378732be5975a778b)

8 years agorbd-mirror: Implementation of image-sync throttler
Ricardo Dias [Wed, 8 Jun 2016 15:37:20 +0000 (16:37 +0100)]
rbd-mirror: Implementation of image-sync throttler

Signed-off-by: Ricardo Dias <rdias@suse.com>
(cherry picked from commit c4f926d6980d1efd95771885a11d8cc4ebd2e4c3)

8 years agorbd-mirror: tests: Support for inflight image sync point update
Ricardo Dias [Tue, 14 Jun 2016 15:43:19 +0000 (16:43 +0100)]
rbd-mirror: tests: Support for inflight image sync point update

Signed-off-by: Ricardo Dias <rdias@suse.com>
(cherry picked from commit cee543bd96bc99f219024aedbfafc5dcd99abb5a)

8 years agorbd-mirror: image-sync: Periodically update sync point object number
Ricardo Dias [Thu, 2 Jun 2016 09:04:41 +0000 (10:04 +0100)]
rbd-mirror: image-sync: Periodically update sync point object number

Fixes: http://tracker.ceph.com/issues/15108
Signed-off-by: Ricardo Dias <rdias@suse.com>
(cherry picked from commit c2eedf4d27b73d7eaf3fda54f9b0ee74e455bc1d)

8 years agorbd-mirror: image-replayer: Fix bug in resync listener remotion
Ricardo Dias [Mon, 27 Jun 2016 10:07:41 +0000 (11:07 +0100)]
rbd-mirror: image-replayer: Fix bug in resync listener remotion

Fixes: http://tracker.ceph.com/issues/16488
Signed-off-by: Ricardo Dias <rdias@suse.com>
(cherry picked from commit 11a5851e90bca2c1813156bf12dda0192965db37)

8 years agorbd-mirror: resync: Added unit tests
Ricardo Dias [Thu, 19 May 2016 11:06:08 +0000 (12:06 +0100)]
rbd-mirror: resync: Added unit tests

Signed-off-by: Ricardo Dias <rdias@suse.com>
(cherry picked from commit 8953825956f2a560d17c7b651d1724a95f2f7d1d)

8 years agorbd-mirror: image-replayer: Implementation of resync operation
Ricardo Dias [Thu, 12 May 2016 17:12:33 +0000 (18:12 +0100)]
rbd-mirror: image-replayer: Implementation of resync operation

Fixes: http://tracker.ceph.com/issues/15670
Signed-off-by: Ricardo Dias <rdias@suse.com>
(cherry picked from commit f2b114238103315197a9eefc8490786c484c8520)

8 years agorbd: journal: Support for listening updates on client metadata
Ricardo Dias [Thu, 12 May 2016 17:10:38 +0000 (18:10 +0100)]
rbd: journal: Support for listening updates on client metadata

Currently we only support listening for image resync requests.

Signed-off-by: Ricardo Dias <rdias@suse.com>
(cherry picked from commit 0dd85739e9034912b86250ced2834dd7fb3d92fd)

8 years agojournal: Support for registering metadata listeners in the Journaler
Ricardo Dias [Thu, 12 May 2016 17:09:09 +0000 (18:09 +0100)]
journal: Support for registering metadata listeners in the Journaler

Signed-off-by: Ricardo Dias <rdias@suse.com>
(cherry picked from commit c535eb0399cd649371db233ee1ed01cf5441a4b3)

8 years agoMerge pull request #9790 from SUSE/wip-16381-jewel
Orit Wasserman [Thu, 11 Aug 2016 09:31:40 +0000 (11:31 +0200)]
Merge pull request #9790 from SUSE/wip-16381-jewel

jewel: comparing return code to ERR_NOT_MODIFIED in rgw_rest_s3.cc (needs minus sign)
Reviewed-by: Orit Wasserman <owasserm@redhat.com>
8 years agoMerge pull request #10026 from SUSE/wip-16392-jewel
Loic Dachary [Wed, 10 Aug 2016 11:33:12 +0000 (13:33 +0200)]
Merge pull request #10026 from SUSE/wip-16392-jewel

jewel: master: build failures with boost > 1.58

Reviewed-by: Loic Dachary <ldachary@redhat.com>
8 years agoMerge pull request #10625 from dachary/wip-16969-jewel
Loic Dachary [Tue, 9 Aug 2016 15:09:42 +0000 (17:09 +0200)]
Merge pull request #10625 from dachary/wip-16969-jewel

jewel: src/script/subman fails with KeyError: 'nband'

Reviewed-by: Kefu Chai <kchai@redhat.com>
8 years agosubman: use replace instead of format 10625/head
Loic Dachary [Tue, 9 Aug 2016 07:13:17 +0000 (09:13 +0200)]
subman: use replace instead of format

Otherwise all {} are assumed to be substituted. Add a test.

Fixes: http://tracker.ceph.com/issues/16961
Signed-off-by: Loic Dachary <ldachary@redhat.com>
(cherry picked from commit b006c136761746e12704e349a672325b8b6e51f5)

8 years agocmake: script that sets env vars for unit tests
Ali Maredia [Fri, 22 Apr 2016 00:32:47 +0000 (20:32 -0400)]
cmake: script that sets env vars for unit tests

Signed-off-by: Ali Maredia <amaredia@redhat.com>
(cherry picked from commit 15a669435aaa78562746f6728bb185b1e99a4274)

8 years agoMerge pull request #10054 from dachary/wip-16484-jewel
Loic Dachary [Tue, 9 Aug 2016 06:41:30 +0000 (08:41 +0200)]
Merge pull request #10054 from dachary/wip-16484-jewel

jewel: ExclusiveLock object leaked when switching to snapshot

Reviewed-by: Mykola Golub <mgolub@mirantis.com>
8 years agoMerge pull request #10041 from dachary/wip-16315-jewel
Loic Dachary [Tue, 9 Aug 2016 06:28:44 +0000 (08:28 +0200)]
Merge pull request #10041 from dachary/wip-16315-jewel

jewel: When journaling is enabled, a flush request shouldn't flush the cache

Reviewed-by: Jason Dillaman <dillaman@redhat.com>
8 years agoMerge pull request #10055 from dachary/wip-16485-jewel
Loic Dachary [Tue, 9 Aug 2016 06:27:50 +0000 (08:27 +0200)]
Merge pull request #10055 from dachary/wip-16485-jewel

jewel: Whitelist EBUSY error from snap unprotect for journal replay

Reviewed-by: Mykola Golub <mgolub@mirantis.com>
8 years agoMerge pull request #10053 from dachary/wip-16483-jewel
Loic Dachary [Tue, 9 Aug 2016 06:27:22 +0000 (08:27 +0200)]
Merge pull request #10053 from dachary/wip-16483-jewel

jewel: Close journal and object map before flagging exclusive lock as released

Reviewed-by: Mykola Golub <mgolub@mirantis.com>
8 years agoMerge pull request #10052 from dachary/wip-16482-jewel
Loic Dachary [Tue, 9 Aug 2016 06:27:08 +0000 (08:27 +0200)]
Merge pull request #10052 from dachary/wip-16482-jewel

jewel: Timeout sending mirroring notification shouldn't result in failure

Reviewed-by: Mykola Golub <mgolub@mirantis.com>
8 years agoMerge pull request #10051 from dachary/wip-16460-jewel
Loic Dachary [Tue, 9 Aug 2016 06:26:50 +0000 (08:26 +0200)]
Merge pull request #10051 from dachary/wip-16460-jewel

jewel: Crash when utilizing advisory locking API functions

Reviewed-by: Mykola Golub <mgolub@mirantis.com>
8 years agoMerge pull request #10050 from dachary/wip-16459-jewel
Loic Dachary [Tue, 9 Aug 2016 06:26:40 +0000 (08:26 +0200)]
Merge pull request #10050 from dachary/wip-16459-jewel

jewel: rbd-mirror should disable proxied maintenance ops for non-primary image

Reviewed-by: Mykola Golub <mgolub@mirantis.com>
8 years agoMerge pull request #10047 from dachary/wip-16426-jewel
Loic Dachary [Tue, 9 Aug 2016 06:26:21 +0000 (08:26 +0200)]
Merge pull request #10047 from dachary/wip-16426-jewel

jewel: Possible race condition during journal transition from replay to ready

Reviewed-by: Mykola Golub <mgolub@mirantis.com>
8 years agoMerge pull request #10046 from dachary/wip-16425-jewel
Loic Dachary [Tue, 9 Aug 2016 06:26:11 +0000 (08:26 +0200)]
Merge pull request #10046 from dachary/wip-16425-jewel

jewel: rbd-mirror: potential race condition accessing local image journal

Reviewed-by: Mykola Golub <mgolub@mirantis.com>
8 years agoMerge pull request #10045 from dachary/wip-16424-jewel
Loic Dachary [Tue, 9 Aug 2016 06:26:00 +0000 (08:26 +0200)]
Merge pull request #10045 from dachary/wip-16424-jewel

jewel: Journal needs to handle duplicate maintenance op tids

Reviewed-by: Mykola Golub <mgolub@mirantis.com>
8 years agoMerge pull request #10044 from dachary/wip-16423-jewel
Loic Dachary [Tue, 9 Aug 2016 06:25:48 +0000 (08:25 +0200)]
Merge pull request #10044 from dachary/wip-16423-jewel

jewel: Journal duplicate op detection can cause lockdep error

Reviewed-by: Mykola Golub <mgolub@mirantis.com>
8 years agoMerge pull request #10043 from dachary/wip-16371-jewel
Loic Dachary [Tue, 9 Aug 2016 06:25:35 +0000 (08:25 +0200)]
Merge pull request #10043 from dachary/wip-16371-jewel

jewel: rbd-mirror: ensure replay status formatter has completed before stopping replay

Reviewed-by: Mykola Golub <mgolub@mirantis.com>
8 years agoMerge pull request #10042 from dachary/wip-16372-jewel
Loic Dachary [Tue, 9 Aug 2016 06:25:11 +0000 (08:25 +0200)]
Merge pull request #10042 from dachary/wip-16372-jewel

jewel: Unable to disable journaling feature if in unexpected mirror state

8 years agoMerge pull request #10010 from dachary/wip-16486-jewel
Loic Dachary [Tue, 9 Aug 2016 06:24:55 +0000 (08:24 +0200)]
Merge pull request #10010 from dachary/wip-16486-jewel

jewel: Object map/fast-diff invalidated if journal replays the same snap remove event

Reviewed-by: Mykola Golub <mgolub@mirantis.com>
8 years agoMerge pull request #10009 from dachary/wip-16514-jewel
Loic Dachary [Tue, 9 Aug 2016 06:24:38 +0000 (08:24 +0200)]
Merge pull request #10009 from dachary/wip-16514-jewel

jewel: Image removal doesn't necessarily clean up all rbd_mirroring entries

Reviewed-by: Mykola Golub <mgolub@mirantis.com>
8 years agoMerge pull request #9952 from dillaman/wip-fix-use-after-free-jewel
Loic Dachary [Mon, 8 Aug 2016 06:47:34 +0000 (08:47 +0200)]
Merge pull request #9952 from dillaman/wip-fix-use-after-free-jewel

jewel: librbd: potential use after free on refresh error

Reviewed-by: Loic Dachary <ldachary@redhat.com>
8 years agoMerge pull request #9752 from dillaman/wip-fix-task-finisher-jewel
Loic Dachary [Mon, 8 Aug 2016 06:45:58 +0000 (08:45 +0200)]
Merge pull request #9752 from dillaman/wip-fix-task-finisher-jewel

jewel: librbd: cancel all tasks should wait until finisher is done

Reviewed-by: Loic Dachary <ldachary@redhat.com>
8 years agoMerge pull request #10561 from dzafman/wip-16672-jewel
David Zafman [Fri, 5 Aug 2016 19:46:10 +0000 (12:46 -0700)]
Merge pull request #10561 from dzafman/wip-16672-jewel

Reviewed-by: Samuel Just <sjust@redhat.com>
8 years agoMerge pull request #9562 from Abhishekvrshny/wip-16152-jewel
Loic Dachary [Fri, 5 Aug 2016 13:30:52 +0000 (15:30 +0200)]
Merge pull request #9562 from Abhishekvrshny/wip-16152-jewel

jewel: client: fstat cap release

Reviewed-by: John Spray <john.spray@redhat.com>
8 years agoMerge pull request #9561 from Abhishekvrshny/wip-16136-jewel
Loic Dachary [Fri, 5 Aug 2016 13:30:41 +0000 (15:30 +0200)]
Merge pull request #9561 from Abhishekvrshny/wip-16136-jewel

jewel: MDSMonitor fixes

Reviewed-by: John Spray <john.spray@redhat.com>
8 years agoMerge pull request #9557 from Abhishekvrshny/wip-15898-jewel
Loic Dachary [Fri, 5 Aug 2016 13:29:33 +0000 (15:29 +0200)]
Merge pull request #9557 from Abhishekvrshny/wip-15898-jewel

jewel: Confusing MDS log message when shut down with stalled journaler reads

Reviewed-by: John Spray <john.spray@redhat.com>
8 years agoMerge pull request #9560 from Abhishekvrshny/wip-16135-jewel
Loic Dachary [Fri, 5 Aug 2016 13:29:23 +0000 (15:29 +0200)]
Merge pull request #9560 from Abhishekvrshny/wip-16135-jewel

jewel: MDS: fix getattr starve setattr

Reviewed-by: John Spray <john.spray@redhat.com>
8 years agoMerge pull request #9559 from Abhishekvrshny/wip-16041-jewel
Loic Dachary [Fri, 5 Aug 2016 13:29:08 +0000 (15:29 +0200)]
Merge pull request #9559 from Abhishekvrshny/wip-16041-jewel

jewel: mds/StrayManager.cc: 520: FAILED assert(dnl->is_primary())

Reviewed-by: John Spray <john.spray@redhat.com>
8 years agoMerge pull request #9996 from dachary/wip-16437-jewel
Loic Dachary [Fri, 5 Aug 2016 13:17:22 +0000 (15:17 +0200)]
Merge pull request #9996 from dachary/wip-16437-jewel

jewel: async messenger mon crash

Reviewed-by: Samuel Just <sjust@redhat.com>
Reviewed-by: Haomai Wang <haomai@xsky.com>
8 years agoMerge pull request #9997 from dachary/wip-16431-jewel
Loic Dachary [Fri, 5 Aug 2016 13:10:27 +0000 (15:10 +0200)]
Merge pull request #9997 from dachary/wip-16431-jewel

jewel: librados,osd: bad flags can crash the osd

Reviewed-by: Samuel Just <sjust@redhat.com>
8 years agoMerge pull request #9998 from dachary/wip-16429-jewel
Loic Dachary [Fri, 5 Aug 2016 13:10:08 +0000 (15:10 +0200)]
Merge pull request #9998 from dachary/wip-16429-jewel

jewel: OSDMonitor: drop pg temps from not the current primary

Reviewed-by: Samuel Just <sjust@redhat.com>
8 years agoMerge pull request #10001 from dachary/wip-16427-jewel
Loic Dachary [Fri, 5 Aug 2016 13:09:52 +0000 (15:09 +0200)]
Merge pull request #10001 from dachary/wip-16427-jewel

jewel: prepare_pgtemp needs to only update up_thru if newer than the existing one

Reviewed-by: Samuel Just <sjust@redhat.com>
8 years agoMerge pull request #9743 from vumrao/wip-vumrao-16339
Casey Bodley [Fri, 5 Aug 2016 13:09:23 +0000 (09:09 -0400)]
Merge pull request #9743 from vumrao/wip-vumrao-16339

jewel : rgw: support size suffixes for --max-size in radosgw-admin command

Reviewed-by: Casey Bodley <cbodley@redhat.com>
8 years agoMerge pull request #10007 from dachary/wip-15806-jewel
Loic Dachary [Thu, 4 Aug 2016 12:45:05 +0000 (14:45 +0200)]
Merge pull request #10007 from dachary/wip-15806-jewel

jewel: New pools have bogus stuck inactive/unclean HEALTH_ERR messages until they are first active and clean

Reviewed-by: xie xingguo <xie.xingguo@zte.com.cn>
8 years agoMerge pull request #10006 from dachary/wip-16249-jewel
Loic Dachary [Thu, 4 Aug 2016 12:43:36 +0000 (14:43 +0200)]
Merge pull request #10006 from dachary/wip-16249-jewel

jewel: sparse_read on ec pool should return extends with correct offset

Reviewed-by: Kefu Chai <kchai@redhat.com>
8 years agoMerge pull request #9740 from vumrao/wip-vumrao-16338
Loic Dachary [Thu, 4 Aug 2016 12:43:22 +0000 (14:43 +0200)]
Merge pull request #9740 from vumrao/wip-vumrao-16338

jewel : rados: Add cleanup message with time to rados bench output

Reviewed-by: Kefu Chai <kchai@redhat.com>
8 years agoMerge pull request #10004 from dachary/wip-16374-jewel
Loic Dachary [Thu, 4 Aug 2016 12:42:53 +0000 (14:42 +0200)]
Merge pull request #10004 from dachary/wip-16374-jewel

jewel: AsyncConnection::lockmsg/async lockdep cycle: AsyncMessenger::lock, MDSDaemon::mds_lock, AsyncConnection::lock

Reviewed-by: Haomai Wang <haomai@xsky.com>
8 years agoMerge pull request #10003 from dachary/wip-16380-jewel
Loic Dachary [Thu, 4 Aug 2016 12:42:32 +0000 (14:42 +0200)]
Merge pull request #10003 from dachary/wip-16380-jewel

jewel: msg/async: connection race hang

Reviewed-by: Haomai Wang <haomai@xsky.com>
8 years agoMerge pull request #10036 from liewegas/wip-16297-jewel
Loic Dachary [Thu, 4 Aug 2016 10:35:14 +0000 (12:35 +0200)]
Merge pull request #10036 from liewegas/wip-16297-jewel

mon: Monitor: validate prefix on handle_command()

Reviewed-by: Loic Dachary <ldachary@redhat.com>
8 years agoMerge pull request #9547 from jcsp/wip-jewel-15705
Loic Dachary [Thu, 4 Aug 2016 07:53:10 +0000 (09:53 +0200)]
Merge pull request #9547 from jcsp/wip-jewel-15705

jewel backport: mds: fix mdsmap print_summary with standby replays

Reviewed-by: Loic Dachary <ldachary@redhat.com>
8 years agoos: Fix HashIndex::recursive_remove() to remove everything but original path 10561/head
David Zafman [Wed, 3 Aug 2016 05:32:02 +0000 (22:32 -0700)]
os: Fix HashIndex::recursive_remove() to remove everything but original path

Fixes: http://tracker.ceph.com/issues/16672
Signed-off-by: David Zafman <dzafman@redhat.com>
(cherry picked from commit ba88a3aac0d3b620986e32ed718237513d6592f6)

8 years agofilestore: Clear objects before calling collection_list() again
David Zafman [Wed, 3 Aug 2016 06:26:41 +0000 (23:26 -0700)]
filestore: Clear objects before calling collection_list() again

Signed-off-by: David Zafman <dzafman@redhat.com>
(cherry picked from commit 892303cd02b64b622669183c2acffcdd7a8f3547)

8 years agofilestore: Improve logging
David Zafman [Wed, 3 Aug 2016 06:24:12 +0000 (23:24 -0700)]
filestore: Improve logging

Signed-off-by: David Zafman <dzafman@redhat.com>
(cherry picked from commit b78c457785553e3a6e4f901bfebb41fc9c4d9bd5)

8 years agoMerge pull request #10293 from theanalyst/wip-16589-jewel
Casey Bodley [Tue, 2 Aug 2016 14:28:00 +0000 (10:28 -0400)]
Merge pull request #10293 from theanalyst/wip-16589-jewel

jewel: multisite sync races with deletes

Reviewed-by: Casey Bodley <cbodley@redhat.com>
Reviewed-by: Yehuda Sadeh <yehuda@redhat.com>
8 years agoMerge pull request #10453 from ajarr/wip-manila-backports-jewel
John Spray [Tue, 2 Aug 2016 11:31:18 +0000 (12:31 +0100)]
Merge pull request #10453 from ajarr/wip-manila-backports-jewel

jewel: essential backports for OpenStack Manila

Reviewed-by: John Spray <john.spray@redhat.com>
8 years agoceph_volume_client: version on-disk metadata 10453/head
Ramana Raja [Thu, 7 Jul 2016 11:45:13 +0000 (17:15 +0530)]
ceph_volume_client: version on-disk metadata

Version on-disk metadata with two attributes,
'compat version', the minimum CephFSVolume Client
version that can decode the metadata, and
'version', the version that encoded the metadata.

Signed-off-by: Ramana Raja <rraja@redhat.com>
(cherry picked from commit 1c1d65a45f4574ca5f33cc9d949089a5c956e363)

8 years agoceph_volume_client: add versioning
Ramana Raja [Wed, 6 Jul 2016 10:03:06 +0000 (15:33 +0530)]
ceph_volume_client: add versioning

Add class attributes to CephFSVolumeClient to version
its capabilities.

'version' attribute stores the current version number
of CephFSVolumeClient.

'compat_version' attribute stores the earliest version
number of CephFSVolumeClient that the current version is
compatible with.

Fixes: http://tracker.ceph.com/issues/15406
Signed-off-by: Ramana Raja <rraja@redhat.com>
(cherry picked from commit 46876fb2ceb22082c0a1703fe77ad1694b508ad8)

8 years agoceph_volume_client: disallow tenants to share auth IDs
Ramana Raja [Thu, 23 Jun 2016 17:52:12 +0000 (23:22 +0530)]
ceph_volume_client: disallow tenants to share auth IDs

Restrict an auth ID to a single OpenStack tenant to enforce
strong tenant isolation of shares.

Signed-off-by: Ramana Raja <rraja@redhat.com>
(cherry picked from commit 82445a20a258a4c8800f273dc5f2484aace0e413)

8 years agoceph_volume_client: cleanup auth meta files
Ramana Raja [Thu, 23 Jun 2016 11:41:33 +0000 (17:11 +0530)]
ceph_volume_client: cleanup auth meta files

Remove auth meta files on last rule for an auth ID deletion

Signed-off-by: Ramana Raja <rraja@redhat.com>
(cherry picked from commit ec2e6e37d01c961d269d83661d0b95ada6a8449e)

8 years agoceph_volume_client: fix log messages
Ramana Raja [Thu, 23 Jun 2016 11:25:30 +0000 (16:55 +0530)]
ceph_volume_client: fix log messages

Log the path of the volume during creation and deletion of volumes.

Signed-off-by: Ramana Raja <rraja@redhat.com>
(cherry picked from commit 7731287761f91e1fdee0e6306d9ecf9b04ad363c)

8 years agoceph_volume_client: create/delete VMeta for create/delete volume
Ramana Raja [Thu, 23 Jun 2016 11:01:23 +0000 (16:31 +0530)]
ceph_volume_client: create/delete VMeta for create/delete volume

Create and delete volume meta files during creation and deletion of
volumes.

Signed-off-by: Ramana Raja <rraja@redhat.com>
(cherry picked from commit 37fbfc7aa8f10d37f5202603a906425507271ff5)

8 years agoceph_volume_client: modify locking of meta files
Ramana Raja [Thu, 23 Jun 2016 10:36:53 +0000 (16:06 +0530)]
ceph_volume_client: modify locking of meta files

File locks are applied on meta files before updating the meta
file contents. These meta files would need to be cleaned up
sometime, which could lead to locks being held on unlinked meta
files. Prevent this by checking whether the file had been deleted
after lock was acquired on it.

Signed-off-by: Ramana Raja <rraja@redhat.com>
(cherry picked from commit f7c037229bcf3f5a3d06897ec7fe0c5419dd7143)

8 years agocephfs.pyx: implement python bindings for fstat
Ramana Raja [Thu, 23 Jun 2016 12:09:32 +0000 (17:39 +0530)]
cephfs.pyx: implement python bindings for fstat

Signed-off-by: Ramana Raja <rraja@redhat.com>
(cherry picked from commit f58403f3d19e22edeb8f91b6f87a0b7947b0ff21)

8 years agoceph_volume_client: restrict volume group names
Ramana Raja [Wed, 8 Jun 2016 11:27:01 +0000 (16:57 +0530)]
ceph_volume_client: restrict volume group names

Prevent craftily-named volume groups from colliding with meta files.

Signed-off-by: Ramana Raja <rraja@redhat.com>
(cherry picked from commit 7f7d2a76ae9b556c1de418f0eab8461c538f91d9)

8 years agoceph_volume_client: use fsync instead of syncfs
Ramana Raja [Wed, 8 Jun 2016 11:04:56 +0000 (16:34 +0530)]
ceph_volume_client: use fsync instead of syncfs

Signed-off-by: Ramana Raja <rraja@redhat.com>
(cherry picked from commit 27eb51baab4cda6b385aef53fc7c3962a9debae5)

8 years agopybind: expose fsync in cephfs binding.
Xiaoxi Chen [Fri, 29 Apr 2016 19:47:42 +0000 (14:47 -0500)]
pybind: expose fsync in cephfs binding.

So we don't necessary to syncfs when want to persistent
some file.

Signed-off-by: Xiaoxi Chen <xiaoxchen@ebay.com>
(cherry picked from commit 1c952fbaf0fd393ef2dcb83a3db721a077b4274e)

8 years agoceph_volume_client: recover from dirty auth and auth meta updates
Ramana Raja [Tue, 7 Jun 2016 19:12:18 +0000 (00:42 +0530)]
ceph_volume_client: recover from dirty auth and auth meta updates

Check dirty flag after locking something and call recover() if we are
opening something dirty (racing with another instance of the driver
restarting after failure) -- only required if someone running multiple
manila-share instances with Ceph loaded.

Signed-off-by: Ramana Raja <rraja@redhat.com>
(cherry picked from commit 647a2447f0c4354dc21d1083043591d2b6f6f94f)

8 years agoceph_volume_client: modify data layout in meta files
Ramana Raja [Tue, 21 Jun 2016 06:44:56 +0000 (12:14 +0530)]
ceph_volume_client: modify data layout in meta files

Notable changes to data layout in auth meta and volume meta files:

In the auth meta files, add a 'dirty' flag to track the status of auth
updates to a single volume.

In the volume meta file, make the 'dirty' flag track the status of
auth updates for a single ID.

Optimize the recovery of partial auth update changes to auth meta,
volume meta, and the Ceph backend, facilitated by changes in the
data layout in the meta files.

Signed-off-by: Ramana Raja <rraja@redhat.com>
(cherry picked from commit 7c8a28a7e817d030a4d419b0cc627c30c1064270)

8 years agopybind: ceph_volume_client authentication metadata
John Spray [Wed, 2 Mar 2016 12:30:45 +0000 (12:30 +0000)]
pybind: ceph_volume_client authentication metadata

Store a two-way mapping between auth IDs and volumes.

Enables us to record some metadata on auth ids (which
openstack tenant created it) so that we can avoid exposing
keys to other tenants who try to use the same ceph
auth id.

Enables us to expose the list of which auth ids have access
to a volume, so that Manila's update_access() can be
implemented efficiently.

DNM: see TODOs inline.

Fixes: http://tracker.ceph.com/issues/15615
Signed-off-by: John Spray <john.spray@redhat.com>
(cherry picked from commit d2e9eb55ca6ed5daa094cf323faf143615b9380b)

8 years agopybind: enable integer flags to libcephfs open
John Spray [Mon, 7 Mar 2016 13:06:41 +0000 (13:06 +0000)]
pybind: enable integer flags to libcephfs open

The 'rw+' style flags are handy and convenient, but
they don't capture all possibilities.  Change to
optionally accept an integer here for advance users
who want to specify arbitrary combinations of
flags.

Signed-off-by: John Spray <john.spray@redhat.com>
(cherry picked from commit 5678584f4176d07301acd7f57acc4efd7fb20e43)

8 years agoceph_volume_client: allow read-only authorization for volumes
Ramana Raja [Wed, 27 Apr 2016 17:56:44 +0000 (23:26 +0530)]
ceph_volume_client: allow read-only authorization for volumes

Allow clients to be restricted to read-only mount of the volume
by restricting their ceph auth ID's MDS and OSD caps to read-only.

Fixes: http://tracker.ceph.com/issues/15614
Signed-off-by: Ramana Raja <rraja@redhat.com>
(cherry picked from commit 011ea5e7fb35ee07848e0c3abac24702a778ad63)

9 years agoMerge pull request #10373 from ceph/jewel-mds-snap-failover
John Spray [Thu, 21 Jul 2016 12:58:16 +0000 (13:58 +0100)]
Merge pull request #10373 from ceph/jewel-mds-snap-failover

Jewel mds snap failover

Reviewed-by: John Spray <john.spray@redhat.com>
9 years agoclient: fix MetaRequest::set_other_inode() 10373/head
Yan, Zheng [Mon, 11 Jul 2016 07:32:41 +0000 (15:32 +0800)]
client: fix MetaRequest::set_other_inode()

Signed-off-by: Yan, Zheng <zyan@redhat.com>
(cherry picked from commit 265f96bda7e106883063f074133450ce39ee262c)

9 years agoclient: close directory's snapdir when deleting directory
Yan, Zheng [Mon, 11 Jul 2016 03:25:37 +0000 (11:25 +0800)]
client: close directory's snapdir when deleting directory

Signed-off-by: Yan, Zheng <zyan@redhat.com>
(cherry picked from commit 3099cabd11a16d22c6707631861bef0aa176ed02)

9 years agoclient: invalidate snap inodes after removing snapshot
Yan, Zheng [Mon, 11 Jul 2016 03:07:01 +0000 (11:07 +0800)]
client: invalidate snap inodes after removing snapshot

Signed-off-by: Yan, Zheng <zyan@redhat.com>
(cherry picked from commit f180ad149ab510626fcd6cbd8221f550f9858126)

9 years agomds: fix incorrect "unconnected snaprealm xxx" warning
Yan, Zheng [Mon, 11 Jul 2016 02:51:13 +0000 (10:51 +0800)]
mds: fix incorrect "unconnected snaprealm xxx" warning

If a snaprealm has no child/parent snaprelam, and the snaprealm inode
is not in the cache while client reconnects. The snaprealm does not
get properly removed from MDCache::reconnected_snaplrealm. This causes
incorrect "unconnected snaprealm xxx" warning

Signed-off-by: Yan, Zheng <zyan@redhat.com>
(cherry picked from commit 85e687de876ca7e0174734ba81130949c4ab6a40)

9 years agoqa/workunits/fs: fix expect_failure function in test scripts
Yan, Zheng [Thu, 30 Jun 2016 08:05:57 +0000 (16:05 +0800)]
qa/workunits/fs: fix expect_failure function in test scripts

The origin expect_failure function return 0 regardness of command's
return value.

Signed-off-by: Yan, Zheng <zyan@redhat.com>
(cherry picked from commit 16f7d7c71e65cd68cecde3e5b89d189ab5950548)

9 years agoclient: make sure snapflush is sent before normal cap message
Yan, Zheng [Wed, 29 Jun 2016 12:49:40 +0000 (20:49 +0800)]
client: make sure snapflush is sent before normal cap message

MDS does null snapflush when it receives normal cap message. So client
must send snapflush first.

Signed-off-by: Yan, Zheng <zyan@redhat.com>
(cherry picked from commit d3916717e2edc8000400f678fa7134ca1406a074)

9 years agoclient: unify cap flush and snapcap flush
Yan, Zheng [Tue, 28 Jun 2016 12:39:08 +0000 (20:39 +0800)]
client: unify cap flush and snapcap flush

This patch includes following changes
- assign flush tid to snapcap flush
- remove session's flushing_capsnaps list. add inode with snapcap
  flushes to session's flushing_caps list instead.
- when reconnecting to MDS, re-send one inode's snapcap flushes and
  cap flushes at the same time.

Signed-off-by: Yan, Zheng <zyan@redhat.com>
(cherry picked from commit a05e996b2a2c36496abd8538829ac4897392f6eb)

9 years agomds: handle partly purged directory
Yan, Zheng [Wed, 29 Jun 2016 09:15:01 +0000 (17:15 +0800)]
mds: handle partly purged directory

For a snapshoted direcotry whose snaprealm parents are being opened,
MDS does not know if the directory is purgeable. So MDS can't skip
committing dirfrags of the directory. But if the direcotry is purgeale,
some dirfrags could have already been deleted during MDS failover.
Committing them could return -ENOENT.

Signed-off-by: Yan, Zheng <zyan@redhat.com>
(cherry picked from commit bc50e0309280c08c3ca79dfa5514ac3a15f81a23)

9 years agomds: do files recovery after processing cap flushes
Yan, Zheng [Wed, 29 Jun 2016 03:42:42 +0000 (11:42 +0800)]
mds: do files recovery after processing cap flushes

File recovery may update inode and trigger inode COW. MDS relies on
client caps to setup CInode::client_need_snapflush. But for a given
client, the reconnected caps may not include the flushing caps.
(Before MDS failover, client released and flushed some caps at the
same time. When MDS recovers, client re-send the cap flush and send
cap reconnect to the MDS.) This may cause later snapflush to get
dropped.

Signed-off-by: Yan, Zheng <zyan@redhat.com>
(cherry picked from commit dd98448d3d0bbb7d338f03f7ad1e40f217eebe0d)

9 years agomds: combine MDCache::{reconnected_caps,cap_imports_dirty}
Yan, Zheng [Wed, 29 Jun 2016 03:25:12 +0000 (11:25 +0800)]
mds: combine MDCache::{reconnected_caps,cap_imports_dirty}

Signed-off-by: Yan, Zheng <zyan@redhat.com>
(cherry picked from commit 57067e032e84bbdb69c499aa7ea93ca68082569b)

9 years agomds: remove CEPH_LOCK_IFLOCKL from cinode_lock_info
Yan, Zheng [Fri, 24 Jun 2016 09:09:34 +0000 (17:09 +0800)]
mds: remove CEPH_LOCK_IFLOCKL from cinode_lock_info

Currently we don't support dirty CEPH_CAP_FLOCK_EXCL

Signed-off-by: Yan, Zheng <zyan@redhat.com>
(cherry picked from commit cfc3ec17b6f245e6d8a0be4fdf6cfa64d2fb725f)

9 years agomds: rebuild the internal states that tracking pending snapflush
Yan, Zheng [Thu, 23 Jun 2016 08:59:46 +0000 (16:59 +0800)]
mds: rebuild the internal states that tracking pending snapflush

Signed-off-by: Yan, Zheng <zyan@redhat.com>
(cherry picked from commit 1b7d198f633a8608b704f82f01a3f4a4a3a4892b)

9 years agomds: using cap_reconnect_t to track cap recconect
Yan, Zheng [Wed, 22 Jun 2016 12:34:41 +0000 (20:34 +0800)]
mds: using cap_reconnect_t to track cap recconect

Previous commit extended cap_reconnect_t to include snapflush
related information. This information are needed in various
places

Signed-off-by: Yan, Zheng <zyan@redhat.com>
(cherry picked from commit 25b6011dcf07c1fc663cbe29ffd119b66545a0ac)

9 years agomds: add 'follows' of first pending snapflush to cap reconnect message
Yan, Zheng [Wed, 22 Jun 2016 07:56:29 +0000 (15:56 +0800)]
mds: add 'follows' of first pending snapflush to cap reconnect message

This helps the recovering MDS to reconstruct the internal states that
tracking pending snapflush.

Signed-off-by: Yan, Zheng <zyan@redhat.com>
(cherry picked from commit dd3963a878d4bb2fb5992278ccbc9f7633fb8786)

9 years agomds: journal snap inodes that need flush when expiring log segment
Yan, Zheng [Tue, 21 Jun 2016 09:17:56 +0000 (17:17 +0800)]
mds: journal snap inodes that need flush when expiring log segment

Treat snap inodes that need flush in the same way as open files.
When MDS recovers, this make sure that journal replay bring snap
inodes that need flush into the cache

Signed-off-by: Yan, Zheng <zyan@redhat.com>
(cherry picked from commit 306153b3d012832bdfa20402077fa60a9a5d626c)

9 years agomds: properly update client_snap_caps when splitting snap inode
Yan, Zheng [Tue, 21 Jun 2016 08:20:58 +0000 (16:20 +0800)]
mds: properly update client_snap_caps when splitting snap inode

update the new snap inode's client_snap_caps according to the old
snap inode.

Signed-off-by: Yan, Zheng <zyan@redhat.com>
(cherry picked from commit 4883779935219817c7e391940a025be1679daeb5)

9 years agoinstall-deps: Get the latest virtualenv in a temporary folder
Oleh Prypin [Wed, 13 Jul 2016 22:06:51 +0000 (01:06 +0300)]
install-deps: Get the latest virtualenv in a temporary folder
to work around a bug in old virtualenv

Signed-off-by: Oleh Prypin <oleh@pryp.in>
(cherry picked from commit 2699b6d89b8c1c193fd86b5233d1ea86458753a0)

9 years agoMerge remote-tracking branch 'upstream/pull/10298/head' into jewel
Patrick Donnelly [Thu, 14 Jul 2016 16:10:11 +0000 (12:10 -0400)]
Merge remote-tracking branch 'upstream/pull/10298/head' into jewel

* upstream/pull/10298/head:
  doc: fix standby replay config

9 years agodoc: fix standby replay config 10298/head
Patrick Donnelly [Tue, 12 Jul 2016 19:43:23 +0000 (15:43 -0400)]
doc: fix standby replay config

I tried using these settings in tests without success. The correct config names
are prefixed with "mds".

Fixes: http://tracker.ceph.com/issues/16664
Signed-off-by: Patrick Donnelly <pdonnell@redhat.com>
9 years agorgw: add pg_ver to tombstone_cache 10293/head
Casey Bodley [Tue, 21 Jun 2016 19:09:53 +0000 (15:09 -0400)]
rgw: add pg_ver to tombstone_cache

a tombstone cache was added to remember the mtime of deleted objects for
use with the HTTP_IF_MODIFIED_SINCE header, but the comparison was still
failing because of a missing pg_ver. added pg_ver to the tombstone cache
so it can be passed with HTTP_DEST_PG_VER

Signed-off-by: Casey Bodley <cbodley@redhat.com>
(cherry picked from commit adb529f2fb983df671a1db58a0b17862a29762f0)

9 years agorgw: add obj tombstone cache
Yehuda Sadeh [Fri, 10 Jun 2016 21:35:01 +0000 (14:35 -0700)]
rgw: add obj tombstone cache

The obj tombstone cache is used in multi-zone environmet to keep
track of removed objects' mtime. This is then used to fetch remote
object only if its newer than the object that was removed, otherwise
we're just fetching ghost of the past.

Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
(cherry picked from commit eb10214920c23b24edd94ca53d0f36c85404644d)