]> git.apps.os.sepia.ceph.com Git - ceph.git/log
ceph.git
12 years agoosd: Add namespace to dump_watchers output
David Zafman [Tue, 9 Jul 2013 06:56:56 +0000 (23:56 -0700)]
osd: Add namespace to dump_watchers output

Signed-off-by: David Zafman <david.zafman@inktank.com>
12 years agoosd: Clean-up redundant use of object_locator_t
David Zafman [Tue, 9 Jul 2013 01:58:12 +0000 (18:58 -0700)]
osd: Clean-up redundant use of object_locator_t

Remove locator arg from get_object_context()/find_object_context()
Remove locator from object_info_t but retain encode format
Remove locator from object_info_t dump output
Remove OLOC_BLANK

Signed-off-by: David Zafman <david.zafman@inktank.com>
12 years agoosd: Add the ability to set capabilities on namespaces
David Zafman [Fri, 28 Jun 2013 22:45:27 +0000 (15:45 -0700)]
osd: Add the ability to set capabilities on namespaces

Parse namespace spec in osd caps and use in is_match()
Add test cases to unit test

feature: #4983 (OSD: namespaces pt 2 (caps))

Signed-off-by: David Zafman <david.zafman@inktank.com>
12 years agoosd: Prepare for nspace match with simpler is_match_all()
David Zafman [Fri, 28 Jun 2013 21:20:23 +0000 (14:20 -0700)]
osd: Prepare for nspace match with simpler is_match_all()

Signed-off-by: David Zafman <david.zafman@inktank.com>
12 years agotest: Add namespace list test cases to librados test
David Zafman [Tue, 25 Jun 2013 22:08:55 +0000 (15:08 -0700)]
test: Add namespace list test cases to librados test

Signed-off-by: David Zafman <david.zafman@inktank.com>
12 years agotest: Add namespace test cases to librados tests
David Zafman [Tue, 25 Jun 2013 05:37:50 +0000 (22:37 -0700)]
test: Add namespace test cases to librados tests

Signed-off-by: David Zafman <david.zafman@inktank.com>
12 years agorados: Add namespace arg (--namespace, -N) to rados command
David Zafman [Wed, 3 Jul 2013 19:32:17 +0000 (12:32 -0700)]
rados: Add namespace arg (--namespace, -N) to rados command

Signed-off-by: David Zafman <david.zafman@inktank.com>
12 years agolibrados: Add operate()/operate_read() log messages
David Zafman [Fri, 21 Jun 2013 22:19:41 +0000 (15:19 -0700)]
librados: Add operate()/operate_read() log messages

Signed-off-by: David Zafman <david.zafman@inktank.com>
12 years agolibrados, os, osd, osdc, test: Add support for client specified namespaces
David Zafman [Tue, 11 Jun 2013 01:18:59 +0000 (18:18 -0700)]
librados, os, osd, osdc, test: Add support for client specified namespaces

Add rados_ioctx_namespace_set_key() and librados::IoCtx::namespace_set_key()
Add namespace to admin-daemon operations
Support namespace in osd map command
Add namespace to object_locator_t and hobject_t
Add random namespaces to psim program

Feature: #4982 (OSD: namespaces pt 1 (librados/osd, not caps))

Signed-off-by: David Zafman <david.zafman@inktank.com>
12 years agoos: Add missing pool to hobject_t:::dump() and hobject_t::decode()
David Zafman [Mon, 8 Jul 2013 22:53:38 +0000 (15:53 -0700)]
os: Add missing pool to hobject_t:::dump() and hobject_t::decode()

Signed-off-by: David Zafman <david.zafman@inktank.com>
12 years agoos: Remove unused hobject_t::set_filestore_key()
David Zafman [Wed, 3 Jul 2013 18:27:11 +0000 (11:27 -0700)]
os: Remove unused hobject_t::set_filestore_key()

Signed-off-by: David Zafman <david.zafman@inktank.com>
12 years agolibrados, osdc: Refactor IoCtxImpl to use operate()/operate_read()
David Zafman [Thu, 13 Jun 2013 03:51:09 +0000 (20:51 -0700)]
librados, osdc: Refactor IoCtxImpl to use operate()/operate_read()

Add ObjectOperation::write() that includes len instead of using bufferlist length
Have selfmanaged_snap_rollback_object() use mutate()

Signed-off-by: David Zafman <david.zafman@inktank.com>
12 years agoTestRados: Output error for improper usage instead of Floating Point Exception
David Zafman [Wed, 3 Jul 2013 22:24:45 +0000 (15:24 -0700)]
TestRados: Output error for improper usage instead of Floating Point Exception

Signed-off-by: David Zafman <david.zafman@inktank.com>
12 years agoosd: Fix object_locator_t::get_pool() return type
David Zafman [Mon, 10 Jun 2013 21:55:04 +0000 (14:55 -0700)]
osd: Fix object_locator_t::get_pool() return type

Signed-off-by: David Zafman <david.zafman@inktank.com>
12 years agolibrados: Fix lock names
David Zafman [Tue, 25 Jun 2013 06:15:45 +0000 (23:15 -0700)]
librados: Fix lock names

Signed-off-by: David Zafman <david.zafman@inktank.com>
12 years agopsim.cc: Fix comment on how to create .ceph_osdmap
David Zafman [Mon, 10 Jun 2013 22:58:44 +0000 (15:58 -0700)]
psim.cc: Fix comment on how to create .ceph_osdmap

Signed-off-by: David Zafman <david.zafman@inktank.com>
12 years agoos: Code conformance in LFNIndex.cc
David Zafman [Fri, 7 Jun 2013 20:52:04 +0000 (13:52 -0700)]
os: Code conformance in LFNIndex.cc

Signed-off-by: David Zafman <david.zafman@inktank.com>
12 years agoElector.h: features are 64 bit
Samuel Just [Wed, 3 Jul 2013 18:18:33 +0000 (11:18 -0700)]
Elector.h: features are 64 bit

Fixes: #5497
Signed-off-by: Samuel Just <sam.just@inktank.com>
Reviewed-by: Sage Weil <sage@inktank.com>
Reviewed-by: Joao Luis <joao.luis@inktank.com>
12 years agoceph_features.h: declare all features as ULL
Samuel Just [Wed, 3 Jul 2013 18:18:19 +0000 (11:18 -0700)]
ceph_features.h: declare all features as ULL

Otherwise, the first 32 get |'d together as ints.  Then, the result
((int)-1) is sign extended to ((long long int)-1) before being |'d
with the 1LL entries.  This results in ~((uint64_t)0).

Fixes: #5497
Signed-off-by: Samuel Just <sam.just@inktank.com>
Reviewed-by: Sage Weil <sage@inktank.com>
Reviewed-by: Joao Luis <joao.luis@inktank.com>
12 years agoPipe: use uint64_t not unsigned when setting features
Samuel Just [Wed, 3 Jul 2013 04:09:36 +0000 (21:09 -0700)]
Pipe: use uint64_t not unsigned when setting features

Fixes: #5497
Signed-off-by: Samuel Just <sam.just@inktank.com>
Reviewed-by: Sage Weil <sage@inktank.com>
Reviewed-by: Joao Luis <joao.luis@inktank.com>
12 years agoMerge pull request #393 from ceph/wip-crc
Mark Nelson [Wed, 3 Jul 2013 20:20:10 +0000 (13:20 -0700)]
Merge pull request #393 from ceph/wip-crc

use sse4.2 crc32c instruction

12 years agoceph.spec.in: Fix file name typo
Gary Lowell [Wed, 3 Jul 2013 20:14:36 +0000 (13:14 -0700)]
ceph.spec.in:  Fix file name typo

Signed-off-by: Gary Lowell <gary.lowell@inktank.com>
12 years agocommon: autoselect crc32c based on cpu features 393/head
Sage Weil [Wed, 3 Jul 2013 19:20:45 +0000 (12:20 -0700)]
common: autoselect crc32c based on cpu features

If the CPu supposts SSE4.2, use the crc32c instructions.  Use the magic
incantation from who knows where to do this.  __builtin_cpu_supports()
is a nicer way to do it, but that is new in gcc 4.8.

Avoid static globals; they are bad.  Sadly that means we redetect the CPU
feature on every call. I assume that is reasonably efficient...

Signed-off-by: Sage Weil <sage@inktank.com>
12 years agoInitial Intel SSE4 crc32c implementation.
Mark Nelson [Mon, 24 Jun 2013 03:18:03 +0000 (22:18 -0500)]
Initial Intel SSE4 crc32c implementation.

Signed-off-by: Mark Nelson <mark.nelson@inktank.com>
12 years agomds: fix O_TRUNC locking
Yan, Zheng [Sat, 29 Jun 2013 23:44:04 +0000 (07:44 +0800)]
mds: fix O_TRUNC locking

When truncating a file, we should xlock the corresponding filelock.
(revoke any Fw caps from clients).

[note from sw: setattr on size also takes the filelock xlock.]

Signed-off-by: Yan, Zheng <zheng.z.yan@intel.com>
Reviewed-by: Sage Weil <sage@inktank.com>
12 years agoMakefile: include rbdmap in dist tarball
Sage Weil [Wed, 3 Jul 2013 18:11:19 +0000 (11:11 -0700)]
Makefile: include rbdmap in dist tarball

Signed-off-by: Sage Weil <sage@inktank.com>
12 years agoMerge pull request #390 from ksperis/rbdmap.init-2
Sage Weil [Wed, 3 Jul 2013 14:03:35 +0000 (07:03 -0700)]
Merge pull request #390 from ksperis/rbdmap.init-2

init-rbdmap install

Reviewed-by: Sage Weil <sage@inktank.com>
12 years agoMerge remote-tracking branch 'gh/next'
Sage Weil [Wed, 3 Jul 2013 02:43:17 +0000 (19:43 -0700)]
Merge remote-tracking branch 'gh/next'

Conflicts:
src/mon/OSDMonitor.cc

12 years agomon: dead code removal
Dan Mick [Tue, 2 Jul 2013 23:57:47 +0000 (16:57 -0700)]
mon: dead code removal

Remove code for 'mds cluster_fail', 'osd tell', and auth_usage()

Signed-off-by: Dan Mick <dan.mick@inktank.com>
Reviewed-by: Sage Weil <sage@inktank.com>
12 years agoMerge branch 'wip-ceph-disk'
Sage Weil [Tue, 2 Jul 2013 23:55:26 +0000 (16:55 -0700)]
Merge branch 'wip-ceph-disk'

Passed ceph-deploy suite.

Reviewed-by: Dan Mick <dan.mick@inktank.com>
12 years agosysvinit, upstart: handle symlinks to dirs in /var/lib/ceph/*
Sage Weil [Tue, 2 Jul 2013 21:43:17 +0000 (14:43 -0700)]
sysvinit, upstart: handle symlinks to dirs in /var/lib/ceph/*

Match a symlink to a dir, not just dirs.  This fixes the osd case of e.g.,
creating an osd in /data/osd$id in which ceph-disk makes a symlink from
/var/lib/ceph/osd/ceph-$id.

Fix proposed by Matt Thompson <matt.thompson@mandiant.com>; extended to
include the upstart users too.

Fixes: #5490
Signed-off-by: Sage Weil <sage@inktank.com>
Reviewed-by: Dan Mick <dan.mick@inktank.com>
12 years agoceph-disk: handle /dev/foo/bar devices throughout 369/head
Sage Weil [Tue, 18 Jun 2013 23:21:48 +0000 (16:21 -0700)]
ceph-disk: handle /dev/foo/bar devices throughout

Assume the last component is the unique device name, even if it appears
under a subdir of /dev.

Signed-off-by: Sage Weil <sage@inktank.com>
12 years agoceph-disk: make is_held() smarter about full disks
Sage Weil [Tue, 18 Jun 2013 03:54:15 +0000 (20:54 -0700)]
ceph-disk: make is_held() smarter about full disks

Handle the case where the device is a full disk.  Make the partition
check a bit more robust (don't make assumptions about naming aside from
the device being a prefix of the partition).

Signed-off-by: Sage Weil <sage@inktank.com>
12 years agoosdc/Objecter: resend command map version checks on reconnect
Sage Weil [Tue, 2 Jul 2013 20:43:29 +0000 (13:43 -0700)]
osdc/Objecter: resend command map version checks on reconnect

We already do this for Ops and LingerOps, but missed this when we added
CommandOps to the mix.  The result is that an ill-timed mon disconnect will
leave a command map check (and thus the command) hanging.

This misbehavior was introduced when CommandOp was introduced, back in
commit 2e172225b01561bb7988b6d86d96ff4b9c1c5762, and we failed to fix it
in 8808ca57c652502d9cf803b0dc53673ca9dd62af.

Fixes: #5493
Signed-off-by: Sage Weil <sage@inktank.com>
Reviewed-by: Josh Durgin <josh.durgin@inktank.com>
12 years agoMerge pull request #386 from ceph/wip-osd-xattr
Sage Weil [Tue, 2 Jul 2013 18:32:23 +0000 (11:32 -0700)]
Merge pull request #386 from ceph/wip-osd-xattr

automatically enable xattrs in omap; make size limits well defined

Reviewed-by: Samuel Just <sam.just@inktank.com>
12 years agomds: man page: Fixed cut & paste error
Simon Leinen [Tue, 2 Jul 2013 11:44:41 +0000 (13:44 +0200)]
mds: man page: Fixed cut & paste error

12 years agoMerge pull request #388 from dachary/master
athanatos [Tue, 2 Jul 2013 17:53:04 +0000 (10:53 -0700)]
Merge pull request #388 from dachary/master

set object_info_t pool of an ObjectContext if it is undefined or bad

Reviewed-by: Samuel Just <sam.just@inktank.com>
12 years agoset object_info_t pool of an ObjectContext if it is undefined or bad 388/head
Loic Dachary [Tue, 2 Jul 2013 08:19:58 +0000 (10:19 +0200)]
set object_info_t pool of an ObjectContext if it is undefined or bad

When reading object_info_t from an existing object attribute, the pool
may be < 0 and should be set to the pool containing the object. This is done
on the oi object on the stack but overriden later by:

    obc->obs.oi.decode(bv);

This decode is superfluous and is removed so that it does not override
the modified value of the pool.

Signed-off-by: Loic Dachary <loic@dachary.org>
12 years agoMove rbdmap file to /etc/ceph 390/head
Laurent Barbe [Tue, 2 Jul 2013 14:53:11 +0000 (16:53 +0200)]
Move rbdmap file to /etc/ceph

Signed-off-by: Laurent Barbe <laurent@ksperis.com>
12 years agoinstall rules for init-rbdmap
Laurent Barbe [Tue, 2 Jul 2013 14:50:40 +0000 (16:50 +0200)]
install rules for init-rbdmap

Signed-off-by: Laurent Barbe <laurent@ksperis.com>
12 years agoMerge pull request #387 from ceph/wip-5346
Yehuda Sadeh [Tue, 2 Jul 2013 04:00:02 +0000 (21:00 -0700)]
Merge pull request #387 from ceph/wip-5346

rgw: add RGWFormatter_Plain allocation to sidestep cranky strlen()

Reviewed-by: Yehuda Sadeh <yehuda@inktank.com>
12 years agorgw: add RGWFormatter_Plain allocation to sidestep cranky strlen() 387/head
Sage Weil [Tue, 2 Jul 2013 00:33:11 +0000 (17:33 -0700)]
rgw: add RGWFormatter_Plain allocation to sidestep cranky strlen()

Valgrind complains about an invalid read when we don't pad the allocation,
and because it is inlined we can't whitelist it for valgrind.  Workaround
the warning by just padding our allocations a bit.

Fixes: #5346
Backport: cuttlefish
Signed-off-by: Sage Weil <sage@inktank.com>
12 years agodoc: Minor fix.
John Wilkins [Tue, 2 Jul 2013 00:06:22 +0000 (17:06 -0700)]
doc: Minor fix.

Signed-off-by: John Wilkins <john.wilkins@inktank.com>
12 years agomon: Paxos: update first_committed on first paxos proposal
Joao Eduardo Luis [Mon, 1 Jul 2013 22:18:48 +0000 (23:18 +0100)]
mon: Paxos: update first_committed on first paxos proposal

We were adding this update to a transaction that would only be applied
on the leader.  The peons would never see a first_committed > 0.

Fixes: #5484
Signed-off-by: Joao Eduardo Luis <joao.luis@inktank.com>
Reviewed-by: Sage Weil <sage@inktank.com>
12 years agolibrados: fix test warning on 32-bit platforms
Sage Weil [Mon, 1 Jul 2013 21:30:03 +0000 (14:30 -0700)]
librados: fix test warning on 32-bit platforms

Signed-off-by: Sage Weil <sage@inktank.com>
12 years agoos/FileStore: automatically enable 'filestore xattr use omap' as needed 386/head
Sage Weil [Sat, 29 Jun 2013 01:26:31 +0000 (18:26 -0700)]
os/FileStore: automatically enable 'filestore xattr use omap' as needed

Automatically enable the 'filestore xattr use omap' option if the fs
does not appear to handle large xattrs on its own.

This makes for a more pleasant use experience as they are not told to
enable something that we already know they must enable in order to
continue.

Fixes: #5137
Signed-off-by: Sage Weil <sage@inktank.com>
12 years agolibrados: add test for large and many xattrs
Sage Weil [Sat, 29 Jun 2013 00:45:21 +0000 (17:45 -0700)]
librados: add test for large and many xattrs

Verify that we can set large and large numbers of attrs on an object.

Signed-off-by: Sage Weil <sage@inktank.com>
12 years agoosd/PGLog: populate log_keys_debug from read_old_log()
Sage Weil [Sat, 29 Jun 2013 05:03:21 +0000 (22:03 -0700)]
osd/PGLog: populate log_keys_debug from read_old_log()

Fixes: #5470
Signed-off-by: Sage Weil <sage@inktank.com>
Reviewed-by: Samuel Just <sam.just@inktank.com>
12 years agoMerge pull request #385 from kri5/wip-1779
Yehuda Sadeh [Mon, 1 Jul 2013 14:08:05 +0000 (07:08 -0700)]
Merge pull request #385 from kri5/wip-1779

rgw: Fix return value for swift user not found

Reviewed-by: Yehuda Sadeh <yehuda@inktank.com>
12 years agorgw: Fix return value for swift user not found 385/head
Christophe Courtaut [Mon, 1 Jul 2013 12:57:17 +0000 (14:57 +0200)]
rgw: Fix return value for swift user not found

http://tracker.ceph.com/issues/1779 fixes #1779

Adjust the return value from rgw_get_user_info_by_swift call
in RGW_SWIFT_Auth_Get::execute() to have the correct
return code in response.

12 years agoosd: set maximum object attr size
Sage Weil [Sat, 29 Jun 2013 01:15:23 +0000 (18:15 -0700)]
osd: set maximum object attr size

Make a well-defined maximum size of an object attribute.  Since Linus has
a 64KB limit, and that is what we normally use to back this, use that as
the limit.  This means that even when leveldb is backing large xattrs
(as ext4 users must do) we will return EFBIG on >64KB setxattr attempts.

Signed-off-by: Sage Weil <sage@inktank.com>
12 years agomds: log before respawning when standby-replay falls behind
Sage Weil [Fri, 28 Jun 2013 21:20:28 +0000 (14:20 -0700)]
mds: log before respawning when standby-replay falls behind

Call into an MDS method so that we can write to the log.

Signed-off-by: Sage Weil <sage@inktank.com>
12 years agoMerge remote-tracking branch 'gh/wip-5381' into wip-mds
Sage Weil [Fri, 28 Jun 2013 21:24:08 +0000 (14:24 -0700)]
Merge remote-tracking branch 'gh/wip-5381' into wip-mds

Reviewed-by: Greg Farnum <greg@inktank.com>
12 years agoclient: send all request put's through put_request() 383/head
Sage Weil [Fri, 28 Jun 2013 19:21:58 +0000 (12:21 -0700)]
client: send all request put's through put_request()

Make sure all MetaRequest reference put's go through the same path that
releases inode references, including all of the error paths.

Signed-off-by: Sage Weil <sage@inktank.com>
12 years agoclient: fix remaining Inode::put() caller, and make method psuedo-private
Sage Weil [Fri, 28 Jun 2013 18:50:11 +0000 (11:50 -0700)]
client: fix remaining Inode::put() caller, and make method psuedo-private

Not sure I can make this actually private and make Client::put_inode() a
friend method (making all of Client a friend would defeat the purpose).
This works well enough, though!

Signed-off-by: Sage Weil <sage@inktank.com>
12 years agolibrados: fix cmd OSDCommand test
Sage Weil [Fri, 28 Jun 2013 13:54:18 +0000 (06:54 -0700)]
librados: fix cmd OSDCommand test

If we get ENXIO, buflen will be 0.

Signed-off-by: Sage Weil <sage@inktank.com>
12 years agoclient: use put_inode on MetaRequest inode refs
Sage Weil [Fri, 28 Jun 2013 04:39:35 +0000 (21:39 -0700)]
client: use put_inode on MetaRequest inode refs

When we drop the request inode refs, we need to use put_inode() to ensure
they get cleaned up properly (removed from inode_map, caps released, etc.).
Do this explicitly here (as we do with all other inode put() paths that
matter).

Fixes: #5381
Backport: cuttlefish
Signed-off-by: Sage Weil <sage@inktank.com>
12 years agodoc: Created an install page for Calxeda development packages.
John Wilkins [Thu, 27 Jun 2013 23:31:44 +0000 (16:31 -0700)]
doc: Created an install page for Calxeda development packages.

Signed-off-by: John Wilkins <john.wilkins@inktank.com>
12 years agoMerge branch 'next'
Greg Farnum [Thu, 27 Jun 2013 22:23:00 +0000 (15:23 -0700)]
Merge branch 'next'

12 years agoceph-disk: s/else if/elif/
Greg Farnum [Thu, 27 Jun 2013 21:58:14 +0000 (14:58 -0700)]
ceph-disk: s/else if/elif/

Signed-off-by: Greg Farnum <greg@inktank.com>
Reviewed-by: Joao Luis <joao.luis@inktank.com>
(cherry picked from commit bd8255a750de08c1b8ee5e9c9a0a1b9b16171462)

12 years agoMerge pull request #372 from ceph/wip-mon-pgmap
João Eduardo Luís [Thu, 27 Jun 2013 22:09:50 +0000 (15:09 -0700)]
Merge pull request #372 from ceph/wip-mon-pgmap

Reviewed-by: Joao Eduardo Luis <joao.luis@inktank.com>
12 years agoMerge remote-tracking branch 'gh/next'
Sage Weil [Thu, 27 Jun 2013 05:19:32 +0000 (22:19 -0700)]
Merge remote-tracking branch 'gh/next'

12 years agoMerge pull request #378 from ceph/wip-init-rbd
Sage Weil [Thu, 27 Jun 2013 05:15:11 +0000 (22:15 -0700)]
Merge pull request #378 from ceph/wip-init-rbd

Reviewed-by: Sage Weil <sage@inktank.com>
12 years agoqa/workunits/misc/multiple_rsync: put tee output in /tmp
Sage Weil [Thu, 27 Jun 2013 05:11:07 +0000 (22:11 -0700)]
qa/workunits/misc/multiple_rsync: put tee output in /tmp

2013-06-25T10:29:15.811 INFO:teuthology.task.workunit.client.0.err:+ rsync -auv --exclude local/ /usr/ usr.2
2013-06-25T10:29:15.811 INFO:teuthology.task.workunit.client.0.err:+ tee a
2013-06-25T10:29:15.902 INFO:teuthology.task.workunit.client.0.out:sending incremental file list
2013-06-25T10:29:48.738 INFO:teuthology.task.workunit.client.0.out:
2013-06-25T10:29:48.740 INFO:teuthology.task.workunit.client.0.out:sent 1449972 bytes  received 7477 bytes  43505.94 bytes/sec
2013-06-25T10:29:48.740 INFO:teuthology.task.workunit.client.0.out:total size is 3205268241  speedup is 2199.23
2013-06-25T10:29:48.740 INFO:teuthology.task.workunit.client.0.err:+ hexdump -C a
2013-06-25T10:29:48.741 INFO:teuthology.task.workunit.client.0.out:00000000  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
2013-06-25T10:29:48.741 INFO:teuthology.task.workunit.client.0.out:00000010  00 00 00 00 00 00 00 00  00 00 00 00 00 00 0a 73  |...............s|
2013-06-25T10:29:48.742 INFO:teuthology.task.workunit.client.0.out:00000020  65 6e 74 20 31 34 34 39  39 37 32 20 62 79 74 65  |ent 1449972 byte|
2013-06-25T10:29:48.742 INFO:teuthology.task.workunit.client.0.out:00000030  73 20 20 72 65 63 65 69  76 65 64 20 37 34 37 37  |s  received 7477|
2013-06-25T10:29:48.742 INFO:teuthology.task.workunit.client.0.out:00000040  20 62 79 74 65 73 20 20  34 33 35 30 35 2e 39 34  | bytes  43505.94|
2013-06-25T10:29:48.742 INFO:teuthology.task.workunit.client.0.out:00000050  20 62 79 74 65 73 2f 73  65 63 0a 74 6f 74 61 6c  | bytes/sec.total|
2013-06-25T10:29:48.742 INFO:teuthology.task.workunit.client.0.out:00000060  20 73 69 7a 65 20 69 73  20 33 32 30 35 32 36 38  | size is 3205268|
2013-06-25T10:29:48.742 INFO:teuthology.task.workunit.client.0.out:00000070  32 34 31 20 20 73 70 65  65 64 75 70 20 69 73 20  |241  speedup is |
2013-06-25T10:29:48.743 INFO:teuthology.task.workunit.client.0.out:00000080  32 31 39 39 2e 32 33 0a                           |2199.23.|
2013-06-25T10:29:48.743 INFO:teuthology.task.workunit.client.0.out:00000088

This passes consistently when the output is in /tmp, but fails after a few
iterations when on cephfs+kclient.  Avoid the bug with this test.

See: #5453

Signed-off-by: Sage Weil <sage@inktank.com>
12 years agorgw: fix radosgw-admin buckets list
Yehuda Sadeh [Wed, 26 Jun 2013 18:28:57 +0000 (11:28 -0700)]
rgw: fix radosgw-admin buckets list

Fixes: #5455
Backport: cuttlefish
This commit fixes a regression, where radosgw-admin buckets list
operation wasn't returning any data.

Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
Reviewed-by: Sage Weil <sage@inktank.com>
12 years agoHandle non-existent front interface in maps from older MONs
David Zafman [Thu, 27 Jun 2013 01:55:26 +0000 (18:55 -0700)]
Handle non-existent front interface in maps from older MONs

Fix OSDService::get_con_osd_hb() to not try to get_connection() without front interface
Fix OSD::handle_osd_map() to check for missing front interface

Fixes: #5460
Signed-off-by: David Zafman <david.zafman@inktank.com>
Reviewed-by: Sage Weil <sage@inktank.com>
12 years agoqa/workunits/rbd/simple_1tb: add simple rbd read/write test on large image
Sage Weil [Thu, 27 Jun 2013 02:34:27 +0000 (19:34 -0700)]
qa/workunits/rbd/simple_1tb: add simple rbd read/write test on large image

Motivated by #5454.

Signed-off-by: Sage Weil <sage@inktank.com>
12 years agoceph-disk: do not mount over an osd directly in /var/lib/ceph/osd/$cluster-$id
Sage Weil [Thu, 27 Jun 2013 01:27:49 +0000 (18:27 -0700)]
ceph-disk: do not mount over an osd directly in /var/lib/ceph/osd/$cluster-$id

If we see a 'ready' file in the target OSD dir, do not mount our device
on top of it.

Among other things, this prevents ceph-disk activate on stray disks from
stepping on teuthology osds.

Fixes: #5445
Signed-off-by: Sage Weil <sage@inktank.com>
12 years agomon/PGMonitor: avoid duplicating map_pg_create() effort on same maps 372/head
Sage Weil [Thu, 27 Jun 2013 00:34:39 +0000 (17:34 -0700)]
mon/PGMonitor: avoid duplicating map_pg_create() effort on same maps

If we have an election and refresh, but the osdmap does not change, there
is no need to recalculate the pg create maps.  However, if we register new
creating pgs, we do... when the last_pg_scan update gets pulled out of
paxos (i.e., on both leader and peon mons).

Signed-off-by: Sage Weil <sage@inktank.com>
12 years agocephtool/test.sh: add case for auth add with no caps
Dan Mick [Thu, 27 Jun 2013 00:07:48 +0000 (17:07 -0700)]
cephtool/test.sh: add case for auth add with no caps

Test case for failure in #5467.  Supplying new auth info overwrites.

Signed-off-by: Dan Mick <dan.mick@inktank.com>
Reviewed-by: Sage Weil <sage@inktank.com>
12 years agoMonCommands.h: auth add doesn't require caps (it can use -i <file>)
Dan Mick [Wed, 26 Jun 2013 22:31:25 +0000 (15:31 -0700)]
MonCommands.h: auth add doesn't require caps (it can use -i <file>)

This was a regression from the old behavior introduced by the
CLI rewrite.

Fixes: #5467
Signed-off-by: Dan Mick <dan.mick@inktank.com>
Reviewed-by: Josh Durgin <josh.durgin@inktank.com>
12 years agoMerge branch 'next'
Dan Mick [Wed, 26 Jun 2013 19:39:15 +0000 (12:39 -0700)]
Merge branch 'next'

12 years agoMakefile.am: fix libglobal.la race with ceph_test_cors
Dan Mick [Wed, 26 Jun 2013 01:23:22 +0000 (18:23 -0700)]
Makefile.am: fix libglobal.la race with ceph_test_cors

ceph_test_cors had libglobal.la in its _LDFLAGS macro definition;
it should have been in _LDADD.  Moreover, things using libglobal.la
ought to be using LIBGLOBAL_LDA to add it to _LDADD.  Fix them all.

Signed-off-by: Dan Mick <dan.mick@inktank.com>
Reviewed-by: Josh Durgin <josh.durgin@inktank.com>
12 years agomon/PGMonitor: use post_paxos_update, not init, to refresh from osdmap
Sage Weil [Wed, 26 Jun 2013 13:53:08 +0000 (06:53 -0700)]
mon/PGMonitor: use post_paxos_update, not init, to refresh from osdmap

We do two things here:
 - make init an one-time unconditional init method, which is what the
   health service expects/needs.
 - switch PGMonitor::init to be post_paxos_update() which is called after
   the other services update, which is what PGMonitor really needs.

This is a new version of the fix originally in commit
a2fe0137946541e7b3b537698e1865fbce974ca6 (and those around it).  That is,
this re-fixes a problem where osds do not see pg creates from their
subscribe due to map_pg_creates() not getting called.

Backport: cuttlefish
Signed-off-by: Sage Weil <sage@inktank.com>
12 years agomon/PaxosService: add post_paxos_update() hook
Sage Weil [Wed, 26 Jun 2013 13:52:01 +0000 (06:52 -0700)]
mon/PaxosService: add post_paxos_update() hook

Some services need to update internal state based on other service's
state, and thus need to be run after everyone has pulled their info out of
paxos.

Backport: cuttlefish
Signed-off-by: Sage Weil <sage@inktank.com>
12 years agomon: do not reopen MonitorDBStore during startup
Sage Weil [Wed, 26 Jun 2013 13:01:40 +0000 (06:01 -0700)]
mon: do not reopen MonitorDBStore during startup

level doesn't seem to like this when it races with an internal compaction
attempt (see below).  Instead, let the store get opened by the ceph_mon
caller, and pull a bit of the logic into the caller to make the flow a
little easier to follow.

    -2> 2013-06-25 17:49:25.184490 7f4d439f8780 10 needs_conversion
    -1> 2013-06-25 17:49:25.184495 7f4d4065c700  5 asok(0x13b1460) entry start
     0> 2013-06-25 17:49:25.316908 7f4d3fe5b700 -1 *** Caught signal (Segmentation fault) **
 in thread 7f4d3fe5b700

 ceph version 0.64-667-g089cba8 (089cba8fc0e8ae8aef9a3111cba7342ecd0f8314)
 1: ceph-mon() [0x649f0a]
 2: (()+0xfcb0) [0x7f4d435dccb0]
 3: (leveldb::Table::BlockReader(void*, leveldb::ReadOptions const&, leveldb::Slice const&)+0x154) [0x806e54]
 4: ceph-mon() [0x808840]
 5: ceph-mon() [0x808b39]
 6: ceph-mon() [0x806540]
 7: (leveldb::DBImpl::DoCompactionWork(leveldb::DBImpl::CompactionState*)+0xdd) [0x7f363d]
 8: (leveldb::DBImpl::BackgroundCompaction()+0x2c0) [0x7f4210]
 9: (leveldb::DBImpl::BackgroundCall()+0x68) [0x7f4cc8]
 10: ceph-mon() [0x80b3af]
 11: (()+0x7e9a) [0x7f4d435d4e9a]
 12: (clone()+0x6d) [0x7f4d4196bccd]
 NOTE: a copy of the executable, or `objdump -rdS <executable>` is needed to interpret this.

Signed-off-by: Sage Weil <sage@inktank.com>
12 years agomon/Paxos: simplify trim()
Sage Weil [Tue, 25 Jun 2013 23:12:39 +0000 (16:12 -0700)]
mon/Paxos: simplify trim()

Collapse all the trim methods into a single simple method.

Signed-off-by: Sage Weil <sage@inktank.com>
12 years agomon/PaxosService: rename scrub
Sage Weil [Wed, 26 Jun 2013 04:06:14 +0000 (21:06 -0700)]
mon/PaxosService: rename scrub

Make the name patch the one in Paxos.

Signed-off-by: Sage Weil <sage@inktank.com>
12 years agomon/Paxos: clean up removal of pre-conversion paxos states
Sage Weil [Tue, 25 Jun 2013 23:54:58 +0000 (16:54 -0700)]
mon/Paxos: clean up removal of pre-conversion paxos states

Use a helper, independent of trim machinery, and call on leader, too.

Signed-off-by: Sage Weil <sage@inktank.com>
12 years agomon/Paxos: update first_committed only from paxos
Sage Weil [Tue, 25 Jun 2013 22:58:43 +0000 (15:58 -0700)]
mon/Paxos: update first_committed only from paxos

Do not touch the in-memory first_committed until the trim commits.  This
avoids any possible confusion due to races and keeps commit() as similar
to store_state() as possible.

Similarly, do not touch first_committed from store_state.  We should
*only* pull it out of the kv store.

Signed-off-by: Sage Weil <sage@inktank.com>
12 years agomon/Paxos: set first_committed on first commit
Sage Weil [Tue, 25 Jun 2013 23:45:05 +0000 (16:45 -0700)]
mon/Paxos: set first_committed on first commit

Signed-off-by: Sage Weil <sage@inktank.com>
12 years agodoc: public network statement needed on new monitors.
Gary Lowell [Wed, 26 Jun 2013 13:27:17 +0000 (06:27 -0700)]
doc:  public network statement needed on new monitors.

When using ceph-deploy to create a new monitor on a host that is not
in the initial set of hosts defined by the ceph-deploy new command,
a "public network" statement needs to be added to the ceph.conf file.
Fixes #5195.

Signed-off-by: Gary Lowell <gary.lowell@inktank.com>
12 years agomon/Paxos: never write first_committed except during trim
Sage Weil [Tue, 25 Jun 2013 22:43:33 +0000 (15:43 -0700)]
mon/Paxos: never write first_committed except during trim

The trimming is handled by proposing transactions.  Do not confuse matters
by writing (incorrect) first_committed values at any other point.

Signed-off-by: Sage Weil <sage@inktank.com>
12 years agomon: enable leveldb cache by default
Sage Weil [Tue, 25 Jun 2013 22:22:05 +0000 (15:22 -0700)]
mon: enable leveldb cache by default

512 MB sounds reasonable to me.

Signed-off-by: Sage Weil <sage@inktank.com>
12 years agomon/Paxos: assert that the store gives us back what we just wrote
Sage Weil [Tue, 25 Jun 2013 04:07:09 +0000 (21:07 -0700)]
mon/Paxos: assert that the store gives us back what we just wrote

In bug #5424 I observed leveldb failing internally and then returning
bad info.  We then hit a random/confusing assert.  Try to detect this
earlier by verifying that a get of a just-written last_committed gives
us back the right thing.

Signed-off-by: Sage Weil <sage@inktank.com>
Reviewed-by: Joao Eduardo Luis <joao.luis@inktank.com>
12 years agomon/Paxos: drop unnecessary last_committed loads
Sage Weil [Tue, 25 Jun 2013 18:58:22 +0000 (11:58 -0700)]
mon/Paxos: drop unnecessary last_committed loads

Drop (apparently) ad-hoc refreshes of last_committed from the store.
These are unnecessary and confusing.

Signed-off-by: Sage Weil <sage@inktank.com>
12 years agomon/PaxosService: allow paxos service writes while paxos is updating
Sage Weil [Thu, 20 Jun 2013 22:39:23 +0000 (15:39 -0700)]
mon/PaxosService: allow paxos service writes while paxos is updating

In commit f985de28f86675e974ac7842a49922a35fe24c6c I mistakenly made
is_writeable() false while paxos was updating due to a misread of
Paxos::propose_new_value() (I didn't see that it would queue).
This is problematic because it narrows the window during which each service
is writeable for no reason.

Allow service to be writeable both when paxos is active and updating.

Signed-off-by: Sage Weil <sage@inktank.com>
12 years agomon/PGMonitor: store PGMap directly in store, bypassing PaxosService stash_full
Sage Weil [Tue, 25 Jun 2013 19:01:53 +0000 (12:01 -0700)]
mon/PGMonitor: store PGMap directly in store, bypassing PaxosService stash_full

Instead of encoding incrementals and periodically dumping the whole encoded
PGMap, instead store everything in a range of keys, and update them
between versions using transactions.  The per-version values are now
breadcrumbs indicating which keys were dirtied so they can be refreshed
via update_from_paxos().

This has several benefits:
 - we avoid every encoding the entire PGMap
 - we avoid dumping that blob into leveldb keys
 - we limit the amount of data living in forward-moving keys, which leveldb
   has a hard time compacting away
 - pgmap data instead lives over a fixed range of keys, which leveldb
   excels at
 - we only keep the latest copy of the PGMap (which is all we care about)

Bump the internal monitor protocol version.

Signed-off-by: Sage Weil <sage@inktank.com>
12 years agodoc/release-notes: v0.65
Sage Weil [Tue, 25 Jun 2013 21:14:39 +0000 (14:14 -0700)]
doc/release-notes: v0.65

Signed-off-by: Sage Weil <sage@inktank.com>
12 years agoMerge branch 'next'
Gary Lowell [Tue, 25 Jun 2013 20:45:22 +0000 (13:45 -0700)]
Merge branch 'next'

12 years agoMerge pull request #380 from dachary/wip-4907
Josh Durgin [Tue, 25 Jun 2013 17:57:41 +0000 (10:57 -0700)]
Merge pull request #380 from dachary/wip-4907

get_xattr() can return more than 4KB

Reviewed-by: Josh Durgin <josh.durgin@inktank.com>
12 years agoMerge pull request #379 from dachary/wip-5312
Sage Weil [Tue, 25 Jun 2013 17:15:10 +0000 (10:15 -0700)]
Merge pull request #379 from dachary/wip-5312

skip TEST(EXT4StoreTest, _detect_fs) if DISK or MOUNTPOINT are undefined

Reviewed-by: Sage Weil <sage@inktank.com>
12 years agomon/AuthMonitor: start at format 1 (latest) for new clusters
Sage Weil [Fri, 21 Jun 2013 00:44:06 +0000 (17:44 -0700)]
mon/AuthMonitor: start at format 1 (latest) for new clusters

Signed-off-by: Sage Weil <sage@inktank.com>
12 years agomon/PaxosService: move upgrade_format() machinery into PaxosService
Sage Weil [Thu, 20 Jun 2013 21:12:16 +0000 (14:12 -0700)]
mon/PaxosService: move upgrade_format() machinery into PaxosService

We originally did this in AuthMonitor, but it is perfect for PGMonitor too,
so make it generic.

Signed-off-by: Sage Weil <sage@inktank.com>
12 years agomon/PGMonitor: drop some dead code
Sage Weil [Tue, 18 Jun 2013 22:22:35 +0000 (15:22 -0700)]
mon/PGMonitor: drop some dead code

Signed-off-by: Sage Weil <sage@inktank.com>
12 years agomon/PGMap: make int type explicit
Sage Weil [Tue, 18 Jun 2013 22:20:00 +0000 (15:20 -0700)]
mon/PGMap: make int type explicit

We get away with this because int is 32-bits on x86_64 and i386 both, but
we should be explicit anyway!

Signed-off-by: Sage Weil <sage@inktank.com>
12 years agomon/PaxosService: s/get_version()/get_last_committed()/
Sage Weil [Tue, 18 Jun 2013 16:20:44 +0000 (09:20 -0700)]
mon/PaxosService: s/get_version()/get_last_committed()/

Avoid aliasing simple accessors; use a single name instead.  Also, function
name overloading will throw a wrench in the class inheritance later.

Signed-off-by: Sage Weil <sage@inktank.com>
12 years agov0.65 v0.65
Gary Lowell [Tue, 25 Jun 2013 16:19:32 +0000 (09:19 -0700)]
v0.65

12 years agoget_xattr() can return more than 4KB 380/head
Loic Dachary [Tue, 25 Jun 2013 14:10:02 +0000 (16:10 +0200)]
get_xattr() can return more than 4KB

Instead of failing if the attribute to be returned is larger than 4KB,
double the buffer size each time librados.rados_getxattr returns
-errno.ERANGE and try again.

http://tracker.ceph.com/issues/4907 fixes #4907

Signed-off-by: Loic Dachary <loic@dachary.org>
12 years agoskip TEST(EXT4StoreTest, _detect_fs) if DISK or MOUNTPOINT are undefined 379/head
Loic Dachary [Tue, 25 Jun 2013 13:04:34 +0000 (15:04 +0200)]
skip TEST(EXT4StoreTest, _detect_fs) if DISK or MOUNTPOINT are undefined

The TEST(EXT4StoreTest, _detect_fs) test is meant to be run from
qa/workunits/filestore/filestore.sh, after the ext4 file system was
created. If the DISK and MOUNTPOINT environment variables are not
defined, display a message explaining the expected environment and
silentely skip the test. The tests in store_test.cc are not unit tests
because they depend on their environment.

http://tracker.ceph.com/issues/5312 fixes #5312

Signed-off-by: Loic Dachary <loic@dachary.org>