mirror of https://github.com/ceph/ceph
1259 lines
47 KiB
Plaintext
1259 lines
47 KiB
Plaintext
|
commit c71f8a60cf49fb3d4efb5ea75b2366cd7f167497 (tag: refs/tags/v0.67.6)
|
||
|
Author: Alfredo Deza <alfredo.deza@inktank.com>
|
||
|
Date: Thu Feb 13 20:20:42 2014 +0000
|
||
|
|
||
|
release build 67.6
|
||
|
|
||
|
Signed-off-by: Alfredo Deza <alfredo.deza@inktank.com>
|
||
|
|
||
|
commit 1c42a6e34bb8e318e001384270cda003add946a7
|
||
|
Merge: 3e473d4 c5e12f9
|
||
|
Author: Sage Weil <sage@inktank.com>
|
||
|
Date: Thu Feb 13 06:55:37 2014 -0800
|
||
|
|
||
|
Merge pull request #1232 from ceph/dumpling-7334
|
||
|
|
||
|
backport ceph-disk improvements to dumpling
|
||
|
|
||
|
http://pulpito.ceph.com/ubuntu-2014-02-12_16:52:33-ceph-deploy-dumpling-7334-testing-basic-plana/
|
||
|
|
||
|
commit 3e473d4237697872498094b41fed19b414f8d3c4
|
||
|
Author: David Zafman <david.zafman@inktank.com>
|
||
|
Date: Fri Sep 27 16:23:09 2013 -0700
|
||
|
|
||
|
common,os: Remove filestore_xattr_use_omap option
|
||
|
|
||
|
Now we operate just like when this was set to true
|
||
|
|
||
|
Fixes: #6143
|
||
|
|
||
|
Signed-off-by: David Zafman <david.zafman@inktank.com>
|
||
|
(cherry picked from commit dc0dfb9e01d593afdd430ca776cf4da2c2240a20)
|
||
|
|
||
|
commit c5e12f94efc07f0ff174c0f19494ee2e06d88dfa
|
||
|
Author: Alfredo Deza <alfredo@deza.pe>
|
||
|
Date: Wed Feb 12 16:43:59 2014 -0500
|
||
|
|
||
|
add support for absence of PATH
|
||
|
|
||
|
Note that this commit is actually bisecting the changes from
|
||
|
Loic Dachary that touch ceph-disk only (ad515bf). As that changeset
|
||
|
also touches other files it causes conflicts that are not resolvable
|
||
|
for backporting it to dumpling.
|
||
|
|
||
|
Signed-off-by: Alfredo Deza <alfredo@deza.pe>
|
||
|
|
||
|
commit c531d75f7e86cee619e44c247298b50c37b81539
|
||
|
Author: Sage Weil <sage@inktank.com>
|
||
|
Date: Mon Sep 9 22:27:23 2013 -0700
|
||
|
|
||
|
ceph-disk: make initial journal files 0 bytes
|
||
|
|
||
|
The ceph-osd will resize journal files up and properly fallocate() them
|
||
|
so that the blocks are preallocated and (hopefully) contiguous. We
|
||
|
don't need to do it here too, and getting fallocate() to work from
|
||
|
python is a pain in the butt.
|
||
|
|
||
|
Fixes: #5981
|
||
|
Signed-off-by: Sage Weil <sage@inktank.com>
|
||
|
(cherry picked from commit a786ad773cd33880075f1deb3691528d1afd03ec)
|
||
|
|
||
|
commit 836ead3e42491597c192c63d3171021c5daecbc0
|
||
|
Author: Alfredo Deza <alfredo@deza.pe>
|
||
|
Date: Mon Feb 10 15:07:55 2014 -0500
|
||
|
|
||
|
alert the user about error messages from partx
|
||
|
|
||
|
Signed-off-by: Alfredo Deza <alfredo@deza.pe>
|
||
|
(cherry picked from commit 9bcc42a3e6b08521694b5c0228b2c6ed7b3d312e)
|
||
|
|
||
|
commit cff3547c60dc6d164f9a95eaa2706633e32756d0
|
||
|
Author: Alfredo Deza <alfredo@deza.pe>
|
||
|
Date: Fri Feb 7 11:55:01 2014 -0500
|
||
|
|
||
|
use partx for red hat or centos instead of partprobe
|
||
|
|
||
|
Signed-off-by: Alfredo Deza <alfredo@deza.pe>
|
||
|
(cherry picked from commit 42900ff9da9f5adcac239a84ebf4d2e407c29699)
|
||
|
|
||
|
commit 5ebd7c4520a9805f985cab1a0ba9311e19efa041
|
||
|
Author: Josh Durgin <josh.durgin@inktank.com>
|
||
|
Date: Tue Jan 28 17:26:58 2014 -0800
|
||
|
|
||
|
ceph-disk: run the right executables from udev
|
||
|
|
||
|
When run by the udev rules, PATH is not defined. Thus,
|
||
|
ceph-disk-activate relies on its which() function to locate the
|
||
|
correct executable. The which() function used os.defpath if none was
|
||
|
set, and this worked for anything using it.
|
||
|
|
||
|
ad6b4b4b08b6ef7ae8086f2be3a9ef521adaa88c added a new default value to
|
||
|
PATH, so only /usr/bin was checked by callers that did not use
|
||
|
which(). This resulted in the mount command not being found when
|
||
|
ceph-disk-activate was run by udev, and thus osds failing to start
|
||
|
after being prepared by ceph-deploy.
|
||
|
|
||
|
Make ceph-disk consistently use the existing helpers (command() and
|
||
|
command_check_call()) that use which(), so lack of PATH does not
|
||
|
matter. Simplify _check_output() to use command(),
|
||
|
another wrapper around subprocess.Popen.
|
||
|
|
||
|
Fixes: #7258
|
||
|
Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
|
||
|
(cherry picked from commit d7b0c7faafd37e4ae8a1680edfa60c22b419cbd8)
|
||
|
|
||
|
commit 4a7c4e0a81753dfb811396e7bfa1df72135ee12b
|
||
|
Author: Loic Dachary <loic@dachary.org>
|
||
|
Date: Fri Jan 3 16:06:55 2014 +0100
|
||
|
|
||
|
ceph-disk: implement --sysconfdir as /etc/ceph
|
||
|
|
||
|
Replace hardcoded /etc/ceph with the SYSCONFDIR global variable and
|
||
|
implement the --sysconfdir option to override the default value.
|
||
|
|
||
|
Signed-off-by: Loic Dachary <loic@dachary.org>
|
||
|
(cherry picked from commit a71025d33621257b6fd6632516cfed2849ff1637)
|
||
|
|
||
|
commit c8b9798a69bd1655a7131c7bce8a14c2c74aba0c
|
||
|
Author: Loic Dachary <loic@dachary.org>
|
||
|
Date: Fri Jan 3 16:03:09 2014 +0100
|
||
|
|
||
|
ceph-disk: implement --statedir as /var/lib/ceph
|
||
|
|
||
|
Replace hardcoded /var/lib/ceph with the STATEDIR global variable and
|
||
|
implement the --statedir option to override the default value.
|
||
|
|
||
|
Signed-off-by: Loic Dachary <loic@dachary.org>
|
||
|
(cherry picked from commit ca713f48ae7a1fece2869f1a1c97d23ab33fb441)
|
||
|
|
||
|
commit 79564874be35d4414092fbb80df3214d7f282b1c
|
||
|
Author: Loic Dachary <loic@dachary.org>
|
||
|
Date: Wed Jan 1 22:05:03 2014 +0100
|
||
|
|
||
|
ceph-disk: add copyright notice
|
||
|
|
||
|
Signed-off-by: Loic Dachary <loic@dachary.org>
|
||
|
(cherry picked from commit 51ee3c04777aaf6b9609dde9bc318b5c66c70787)
|
||
|
|
||
|
commit c4b66bbdf09a8bb85ed14fbb643f40f87345463b
|
||
|
Author: Loic Dachary <loic@dachary.org>
|
||
|
Date: Wed Jan 1 22:11:30 2014 +0100
|
||
|
|
||
|
ceph-disk: create the data directory if it does not exist
|
||
|
|
||
|
Instead of failing if the OSD data directory does not exist, create
|
||
|
it. Only do so if the data directory is not enforced to be a device via
|
||
|
the use of the --data-dev flag. The directory is not recursively created.
|
||
|
|
||
|
Signed-off-by: Loic Dachary <loic@dachary.org>
|
||
|
(cherry picked from commit 306b099ab093bfac466d68fe1cb87367bc01e577)
|
||
|
|
||
|
commit c473c65d4b6235fe20a97bd1d4741c12f86858e8
|
||
|
Author: Loic Dachary <loic@dachary.org>
|
||
|
Date: Tue Dec 31 00:03:42 2013 +0100
|
||
|
|
||
|
ceph-disk: run ceph-osd when --mark-init=none
|
||
|
|
||
|
Signed-off-by: Loic Dachary <loic@dachary.org>
|
||
|
(cherry picked from commit 0fcc081858fae4febbb6a613a93cfbbcedd5a320)
|
||
|
|
||
|
commit 6ea59a3a0c38c9629036442aff652489eecce51a
|
||
|
Author: Loic Dachary <loic@dachary.org>
|
||
|
Date: Mon Dec 30 23:57:39 2013 +0100
|
||
|
|
||
|
ceph-disk: implement --mark-init=none
|
||
|
|
||
|
It is meant to be used when preparing and activating a directory that is
|
||
|
not to be used with init. No file is created to identify the init
|
||
|
system, no symbolic link is made to the directory in /var/lib/ceph
|
||
|
and the init scripts are not called.
|
||
|
|
||
|
Signed-off-by: Loic Dachary <loic@dachary.org>
|
||
|
(cherry picked from commit e773b68f4c89ac56b425c710d7dcdc3d74a92926)
|
||
|
|
||
|
commit 3aae5b764c5698c665a708a3f6f2243dfee1a28d
|
||
|
Author: Loic Dachary <loic@dachary.org>
|
||
|
Date: Wed Jan 1 22:07:57 2014 +0100
|
||
|
|
||
|
ceph-disk: fsid is a known configuration option
|
||
|
|
||
|
Use get_conf_with_default instead of get_conf because fsid is a known
|
||
|
ceph configuration option. It allows overriding via CEPH_ARGS which is
|
||
|
convenient for testing. Only options that are not found in config_opts.h
|
||
|
are fetch via get_conf.
|
||
|
|
||
|
Signed-off-by: Loic Dachary <loic@dachary.org>
|
||
|
(cherry picked from commit b65eb377f5e93ea85644e4c0939365fd7ac36072)
|
||
|
|
||
|
commit a33ad6d150206232806ee466f301e41f15c631e9
|
||
|
Author: Loic Dachary <loic@dachary.org>
|
||
|
Date: Wed Jan 1 22:06:29 2014 +0100
|
||
|
|
||
|
ceph-disk: use CalledProcessError.returncode
|
||
|
|
||
|
CalledProcessError has no errno data member
|
||
|
|
||
|
Signed-off-by: Loic Dachary <loic@dachary.org>
|
||
|
(cherry picked from commit 97f516a1ddfb2d014e1f7e762c4155e4b9bcb90b)
|
||
|
|
||
|
commit 6ae96d3ce757b05daeb7c1437778149b07248d47
|
||
|
Author: Loic Dachary <loic@dachary.org>
|
||
|
Date: Wed Jan 1 22:13:15 2014 +0100
|
||
|
|
||
|
ceph-disk: display the command output on OSD creation failure
|
||
|
|
||
|
The string form of a CalledProcessError instance does not include the
|
||
|
output datamember. Add it to the Error exception for debug purposes.
|
||
|
|
||
|
Signed-off-by: Loic Dachary <loic@dachary.org>
|
||
|
(cherry picked from commit d09af0fa50f322c9e59765f3badd497f5ca184d4)
|
||
|
|
||
|
commit deefb3a05788b308631812c652e9eccaeb999d7f
|
||
|
Author: Loic Dachary <loic@dachary.org>
|
||
|
Date: Mon Dec 30 23:07:27 2013 +0100
|
||
|
|
||
|
ceph-disk: which() uses PATH first
|
||
|
|
||
|
Instead of relying on a hardcoded set of if paths. Although this has the
|
||
|
potential of changing the location of the binary being used by ceph-disk
|
||
|
on an existing installation, it is currently only used for sgdisk. It
|
||
|
could be disruptive for someone using a modified version of sgdisk but
|
||
|
the odds of this happening are very low.
|
||
|
|
||
|
Signed-off-by: Loic Dachary <loic@dachary.org>
|
||
|
(cherry picked from commit 2b935bbf60bafb6dd488c0eb30f156fce1b9d197)
|
||
|
|
||
|
commit 06bbea187293ac52aefbcf4e98c162bb3286341d
|
||
|
Author: Loic Dachary <loic@dachary.org>
|
||
|
Date: Mon Dec 30 22:48:46 2013 +0100
|
||
|
|
||
|
ceph-disk: add --prepend-to-path to control execution
|
||
|
|
||
|
/usr/bin is hardcoded in front of some ceph programs which makes it
|
||
|
impossible to control where they are located via the PATH.
|
||
|
|
||
|
The hardcoded path cannot be removed altogether because it will most
|
||
|
likely lead to unexpected and difficult to diagnose problems for
|
||
|
existing installations where the PATH finds the program elsewhere.
|
||
|
|
||
|
The --prepend-to-path flag is added and defaults to /usr/bin : it prepends
|
||
|
to the PATH environment variable. The hardcoded path is removed
|
||
|
and the PATH will be used: since /usr/bin is searched first, the
|
||
|
legacy behavior will not change.
|
||
|
|
||
|
Signed-off-by: Loic Dachary <loic@dachary.org>
|
||
|
(cherry picked from commit ad6b4b4b08b6ef7ae8086f2be3a9ef521adaa88c)
|
||
|
|
||
|
commit ccf182241dc04c79e2377b6ba2f060dbfe6dddae
|
||
|
Author: Loic Dachary <loic@dachary.org>
|
||
|
Date: Mon Dec 30 17:15:29 2013 +0100
|
||
|
|
||
|
ceph-disk: make exception handling terse in main_activate_journal
|
||
|
|
||
|
Signed-off-by: Loic Dachary <loic@dachary.org>
|
||
|
(cherry picked from commit 908348b8047e8577ecf9133f2683f91423694416)
|
||
|
|
||
|
commit d60e952f3c00d0e551b04c0d6486b11d9761be35
|
||
|
Author: Loic Dachary <loic@dachary.org>
|
||
|
Date: Mon Dec 30 17:13:47 2013 +0100
|
||
|
|
||
|
ceph-disk: do not hide main_activate() exceptions
|
||
|
|
||
|
Signed-off-by: Loic Dachary <loic@dachary.org>
|
||
|
(cherry picked from commit 55ca7bb2da73f1be1293710a635cfea42abd7682)
|
||
|
|
||
|
commit 827edb93e3971fc7549fe831894776c6bf163346
|
||
|
Author: Loic Dachary <loic@dachary.org>
|
||
|
Date: Mon Dec 30 17:11:30 2013 +0100
|
||
|
|
||
|
ceph-disk: fix activate() indent
|
||
|
|
||
|
Signed-off-by: Loic Dachary <loic@dachary.org>
|
||
|
(cherry picked from commit 324804a81c37ff89f2488e2ba106033c0e6e119e)
|
||
|
|
||
|
commit 27988cf9ffedf3289099e51f1e7c3f5b8d79d667
|
||
|
Author: Loic Dachary <loic@dachary.org>
|
||
|
Date: Mon Dec 30 17:09:35 2013 +0100
|
||
|
|
||
|
ceph-disk: remove noop try:
|
||
|
|
||
|
Signed-off-by: Loic Dachary <loic@dachary.org>
|
||
|
(cherry picked from commit de0050596b5f56863c3486c1cd5e7ffea62e3d00)
|
||
|
|
||
|
commit 75bdb5430d9403bed8bd2ccd6a9c5a30d63a189e
|
||
|
Author: Loic Dachary <loic@dachary.org>
|
||
|
Date: Mon Dec 30 16:57:36 2013 +0100
|
||
|
|
||
|
ceph-disk: fix Error() messages formatting
|
||
|
|
||
|
Mainly using % instead of ,
|
||
|
|
||
|
Signed-off-by: Loic Dachary <loic@dachary.org>
|
||
|
(cherry picked from commit b82ccfbfa786cd5436b48ec38276c5a48028ce1d)
|
||
|
|
||
|
commit 5df1eaa55bc7ebe68473831d06cf9819fa39baa6
|
||
|
Author: Loic Dachary <loic@dachary.org>
|
||
|
Date: Mon Dec 30 12:26:20 2013 +0100
|
||
|
|
||
|
ceph-disk: prepare --data-dir must not override files
|
||
|
|
||
|
ceph-disk does nothing when given a device that is already prepared. If
|
||
|
given a directory that already contains a successfully prepared OSD, it
|
||
|
will however override it.
|
||
|
|
||
|
Instead of overriding the files in the osd data directory, return
|
||
|
immediately if the magic file exists. Make it so the magic file is
|
||
|
created last to accurately reflect the success of the OSD preparation.
|
||
|
|
||
|
Signed-off-by: Loic Dachary <loic@dachary.org>
|
||
|
(cherry picked from commit 7dfe550ce18623cde4ae43a2416e31ef81381ab9)
|
||
|
|
||
|
commit 2e8496a6e0b74ff351bc2a4f138ddc665d8c30ca
|
||
|
Author: Loic Dachary <loic@dachary.org>
|
||
|
Date: Sun Dec 15 15:34:17 2013 +0100
|
||
|
|
||
|
ceph-disk: zap needs at least one device
|
||
|
|
||
|
If given no argument, ceph-disk zap should display the usage instead of
|
||
|
silently doing nothing. Silence can be confused with "I zapped all the
|
||
|
disks".
|
||
|
|
||
|
http://tracker.ceph.com/issues/6981 fixes #6981
|
||
|
|
||
|
Signed-off-by: Loic Dachary <loic@dachary.org>
|
||
|
(cherry picked from commit 07888ef3fd4440332c8287d0faa9f23a32cf141c)
|
||
|
|
||
|
commit 0fe2ac47a82d3caa9dca2a9009b68a14b577e35c
|
||
|
Author: Alfredo Deza <alfredo@deza.pe>
|
||
|
Date: Fri Dec 13 12:06:25 2013 -0500
|
||
|
|
||
|
use the new get_command helper in check_call
|
||
|
|
||
|
Signed-off-by: Alfredo Deza <alfredo@deza.pe>
|
||
|
(cherry picked from commit 897dfc113fe3b86f3dda53172933bfd4f8089869)
|
||
|
|
||
|
commit 8fc9f1b791248f08a311d619addc4465cac298f9
|
||
|
Author: Alfredo Deza <alfredo@deza.pe>
|
||
|
Date: Thu Dec 12 11:16:38 2013 -0500
|
||
|
|
||
|
use the absolute path for executables if found
|
||
|
|
||
|
Signed-off-by: Alfredo Deza <alfredo@deza.pe>
|
||
|
(cherry picked from commit a9334a1c8c6681305e76b361377864d0dd1e3d34)
|
||
|
|
||
|
commit a2de2f718c9e341c0b6ec2ebffdf03d0f9da0fbd
|
||
|
Author: Alfredo Deza <alfredo@deza.pe>
|
||
|
Date: Thu Dec 12 10:26:05 2013 -0500
|
||
|
|
||
|
remove trailing semicolon
|
||
|
|
||
|
Signed-off-by: Alfredo Deza <alfredo@deza.pe>
|
||
|
(cherry picked from commit 43561f791607f5fd6f03d5421e1f30a29fb4194e)
|
||
|
|
||
|
commit 2cd22b5d39760ac4b5baad0b05c676b833ae9213
|
||
|
Author: Alfredo Deza <alfredo@deza.pe>
|
||
|
Date: Wed Dec 11 15:41:45 2013 -0500
|
||
|
|
||
|
replace sgdisk subprocess calls with a helper
|
||
|
|
||
|
Signed-off-by: Alfredo Deza <alfredo@deza.pe>
|
||
|
(cherry picked from commit e19e38012bc4579054f63865e682c8c3a7829c7b)
|
||
|
|
||
|
commit e8cc27cc8eb981c71b8cafb58964317687ca5787
|
||
|
Author: Jonathan Davies <jonathan.davies@canonical.com>
|
||
|
Date: Tue Dec 3 21:26:43 2013 +0000
|
||
|
|
||
|
Call --mbrtogpt on journal run of sgdisk should the drive require a GPT table.
|
||
|
|
||
|
Signed-off-by: Jonathan Davies <jonathan.davies@canonical.com>
|
||
|
Reviewed-by: Sage Weil <sage@inktank.com>
|
||
|
Reviewed-by: Loic Dachary <loic@dachary.org>
|
||
|
(cherry picked from commit 35011e0b01d65e4c001876882d597451f2028345)
|
||
|
|
||
|
commit 3942a93fae3331b2d08f93181eb2c9cf90b50440
|
||
|
Author: Loic Dachary <loic@dachary.org>
|
||
|
Date: Thu Nov 21 13:21:22 2013 +0100
|
||
|
|
||
|
ceph-disk: blacklist /dev/fd0
|
||
|
|
||
|
blkid -s TYPE /dev/fd0 has been verified to hang forever on a
|
||
|
H8DMR-82 supermicro motherboard running
|
||
|
|
||
|
3.8.0-33-generic #48~precise1-Ubuntu SMP Thu Oct 24 16:28:06 UTC 2013
|
||
|
x86_64
|
||
|
|
||
|
It is unlikely that ceph will ever be used on floppy disks, they
|
||
|
can be blacklisted.
|
||
|
|
||
|
http://tracker.ceph.com/issues/6827 fixes: #6827
|
||
|
|
||
|
Signed-off-by: Loic Dachary <loic@dachary.org>
|
||
|
(cherry picked from commit 65701978715237ff5a4c68573c0696fd9d438e4f)
|
||
|
|
||
|
commit ccc6b0c5e6d47eefef5cf1fa17bf69c47c9459c4
|
||
|
Author: git-harry <git-harry@live.co.uk>
|
||
|
Date: Thu Oct 3 10:32:50 2013 +0100
|
||
|
|
||
|
Make fsid comparison case-insensitive
|
||
|
|
||
|
get_fsid and find_cluster_by_uuid are modified so ceph-disk activate and
|
||
|
ceph-disk activate-all will work if the fsid uses uppercase characters.
|
||
|
|
||
|
Signed-off-by: Harry Harrington <git-harry@live.co.uk>
|
||
|
(cherry picked from commit 22f8325dbfce7ef2e97bf015c0f8bba53e75dfe9)
|
||
|
|
||
|
commit 367cf1bbf86233eb20ff2304e7d6caab77b84fcc
|
||
|
Author: Josh Durgin <josh.durgin@inktank.com>
|
||
|
Date: Tue Feb 11 10:14:36 2014 -0800
|
||
|
|
||
|
librbd: remove limit on number of objects in the cache
|
||
|
|
||
|
The number of objects is not a significant indicated of when data
|
||
|
should be written out for rbd. Use the highest possible value for
|
||
|
number of objects and just rely on the dirty data limits to trigger
|
||
|
flushing. When the number of objects is low, and many start being
|
||
|
flushed before they accumulate many requests, it hurts average request
|
||
|
size and performance for many concurrent sequential writes.
|
||
|
|
||
|
Fixes: #7385
|
||
|
Backport: emperor, dumpling
|
||
|
Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
|
||
|
(cherry picked from commit 0559d31db29ea83bdb6cec72b830d16b44e3cd35)
|
||
|
|
||
|
commit 4856fc2950442fafc208c967af5131f7874f5441
|
||
|
Author: Josh Durgin <josh.durgin@inktank.com>
|
||
|
Date: Tue Feb 11 11:53:00 2014 -0800
|
||
|
|
||
|
ObjectCacher: use uint64_t for target and max values
|
||
|
|
||
|
All the options are uint64_t, but the ObjectCacher was converting them
|
||
|
to int64_t. There's never any reason for these to be negative, so
|
||
|
change the type.
|
||
|
|
||
|
Adjust a few conditionals so that they only convert known-positive
|
||
|
signed values to uint64_t before comparing with the target and max
|
||
|
values. Leave the actual stats accounting as loff_t for now, since
|
||
|
bugs in accounting will have bad effects if negative values wrap
|
||
|
around.
|
||
|
|
||
|
Backport: emperor, dumpling
|
||
|
Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
|
||
|
(cherry picked from commit db034acf546a72739ff6543241543f3bd651f3ae)
|
||
|
|
||
|
commit a572aafe178dfa3ab4d82aa5c7f4a72a63590ccf
|
||
|
Author: Josh Durgin <josh.durgin@inktank.com>
|
||
|
Date: Tue Feb 11 10:35:14 2014 -0800
|
||
|
|
||
|
ObjectCacher: remove max_bytes and max_ob arguments to trim()
|
||
|
|
||
|
These are never passed, so replace them with the defaults.
|
||
|
|
||
|
Backport: emperor, dumpling
|
||
|
Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
|
||
|
(cherry picked from commit bf8cf2d6d21a204a099347f3dcd5b48100b8c445)
|
||
|
|
||
|
commit 4889234f80dbd95e5b2012ff9bfc2d87960034e2
|
||
|
Merge: 6af657b 30a604d
|
||
|
Author: Sage Weil <sage@inktank.com>
|
||
|
Date: Tue Feb 11 08:32:37 2014 -0800
|
||
|
|
||
|
Merge pull request #1210 from dachary/dumpling
|
||
|
|
||
|
common: admin socket fallback to json-pretty format (dumpling)
|
||
|
|
||
|
Reviewed-by: Sage Weil <sage@inktank.com>
|
||
|
|
||
|
commit 30a604d2d6a5de7bcbfa0136e9a766cb34f96c0a
|
||
|
Author: Loic Dachary <loic@dachary.org>
|
||
|
Date: Mon Feb 10 23:42:38 2014 +0100
|
||
|
|
||
|
common: admin socket fallback to json-pretty format
|
||
|
|
||
|
If the format argument to a command sent to the admin socket is not
|
||
|
among the supported formats ( json, json-pretty, xml, xml-pretty ) the
|
||
|
new_formatter function will return null and the AdminSocketHook::call
|
||
|
function must fall back to a sensible default.
|
||
|
|
||
|
The CephContextHook::call and HelpHook::call failed to do that and a
|
||
|
malformed format argument would cause the mon to crash. A check is added
|
||
|
to each of them and fallback to json-pretty if the format is not
|
||
|
recognized.
|
||
|
|
||
|
To further protect AdminSocketHook::call implementations from similar
|
||
|
problems the format argument is checked immediately after accepting the
|
||
|
command in AdminSocket::do_accept and replaced with json-pretty if it is
|
||
|
not known.
|
||
|
|
||
|
A test case is added for both CephContextHook::call and HelpHook::call
|
||
|
to demonstrate the problem exists and is fixed by the patch.
|
||
|
|
||
|
Three other instances of unsafe calls to new_formatter were found and
|
||
|
a fallback to json-pretty was added. All other calls have been audited
|
||
|
and appear to be safe.
|
||
|
|
||
|
http://tracker.ceph.com/issues/7378 fixes #7378
|
||
|
|
||
|
Signed-off-by: Loic Dachary <loic@dachary.org>
|
||
|
(cherry picked from commit 165e76d4d03ffcc490fd3c2ba60fb37372990d0a)
|
||
|
|
||
|
commit 6af657bd4cf87f6f7afe84257941e7e2366183d9
|
||
|
Author: Josh Durgin <josh.durgin@inktank.com>
|
||
|
Date: Wed Feb 5 17:26:02 2014 -0800
|
||
|
|
||
|
qa: add script for testing rados client timeout options
|
||
|
|
||
|
Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
|
||
|
(cherry picked from commit 9e62beb80b6c92a97ec36c0db5ea39e417661b35)
|
||
|
|
||
|
commit 21a0b67440eaa07fa051d26321a88654ee9e8ae7
|
||
|
Author: Josh Durgin <josh.durgin@inktank.com>
|
||
|
Date: Wed Feb 5 17:25:24 2014 -0800
|
||
|
|
||
|
rados: check return values for commands that can now fail
|
||
|
|
||
|
A few places were not checking the return values of commands, since
|
||
|
they could not fail before timeouts were added.
|
||
|
|
||
|
Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
|
||
|
(cherry picked from commit 79c1874346ff55e2dc74ef860db16ce70242fd00)
|
||
|
|
||
|
commit 2c42dd26b49d01922bd3df3ba26af70da0387a99
|
||
|
Author: Josh Durgin <josh.durgin@inktank.com>
|
||
|
Date: Wed Feb 5 17:24:16 2014 -0800
|
||
|
|
||
|
librados: check and return on error so timeouts work
|
||
|
|
||
|
Some functions could not previously return errors, but they had an
|
||
|
int return value, which can now receive ETIMEDOUT.
|
||
|
|
||
|
Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
|
||
|
(cherry picked from commit 8e9459e897b1bc2f97d52ee07701fd22069efcf3)
|
||
|
|
||
|
commit 28fe564cc298b96c063e6cca44304046a86942cd
|
||
|
Author: Josh Durgin <josh.durgin@inktank.com>
|
||
|
Date: Wed Feb 5 17:22:14 2014 -0800
|
||
|
|
||
|
msg/Pipe: add option to restrict delay injection to specific msg type
|
||
|
|
||
|
This makes it possible to test timeouts reliably by delaying certain
|
||
|
messages effectively forever, but still being able to e.g. connect and
|
||
|
authenticate to the monitors.
|
||
|
|
||
|
Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
|
||
|
(cherry picked from commit d389e617c1019e44848330bf9570138ac7b0e5d4)
|
||
|
|
||
|
commit 1d2ea9efb844cb902d282c3a752acc45fefeb04c
|
||
|
Author: Josh Durgin <josh.durgin@inktank.com>
|
||
|
Date: Mon Feb 3 18:30:00 2014 -0800
|
||
|
|
||
|
MonClient: add a timeout on commands for librados
|
||
|
|
||
|
Just use the conf option directly, since librados is the only caller.
|
||
|
|
||
|
Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
|
||
|
(cherry picked from commit 671a76d64bc50e4f15f4c2804d99887e22dcdb69)
|
||
|
|
||
|
commit 30dafacd0b54bb98b01284851e0d5abf76324e95
|
||
|
Author: Josh Durgin <josh.durgin@inktank.com>
|
||
|
Date: Mon Feb 3 17:59:21 2014 -0800
|
||
|
|
||
|
Objecter: implement mon and osd operation timeouts
|
||
|
|
||
|
This captures almost all operations from librados other than mon_commands().
|
||
|
|
||
|
Get the values for the timeouts from the Objecter constructor, so only
|
||
|
librados uses them.
|
||
|
|
||
|
Add C_Cancel_*_Op, finish_*_op(), and *_op_cancel() for each type of
|
||
|
operation, to mirror those for Op. Create a callback and schedule it
|
||
|
in the existing timer thread if the timeouts are specified.
|
||
|
|
||
|
Fixes: #6507
|
||
|
Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
|
||
|
(cherry picked from commit 3e1f7bbb4217d322f4e0ece16e676cd30ee42a20)
|
||
|
|
||
|
Conflicts:
|
||
|
src/osd/OSD.cc
|
||
|
src/osd/ReplicatedPG.cc
|
||
|
src/osdc/Objecter.cc
|
||
|
src/osdc/Objecter.h
|
||
|
|
||
|
commit 2aa0d7589283fe5879a966601fbfe690816cc4a1
|
||
|
Author: Josh Durgin <josh.durgin@inktank.com>
|
||
|
Date: Mon Feb 3 12:53:15 2014 -0800
|
||
|
|
||
|
librados: add timeout to wait_for_osdmap()
|
||
|
|
||
|
This is used by several pool operations independent of the objecter,
|
||
|
including rados_ioctx_create() to look up the pool id in the first
|
||
|
osdmap.
|
||
|
|
||
|
Unfortunately we can't just rely on WaitInterval returning ETIMEDOUT,
|
||
|
since it may also get interrupted by a signal, so we can't avoid
|
||
|
keeping track of time explicitly here.
|
||
|
|
||
|
Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
|
||
|
(cherry picked from commit 1829d2c9fd13f2cbae4e192c9feb553047dad42c)
|
||
|
|
||
|
Conflicts:
|
||
|
src/librados/RadosClient.cc
|
||
|
|
||
|
commit 55d254d5ea113d8be29afe18dc9940f14d93ebb4
|
||
|
Author: Josh Durgin <josh.durgin@inktank.com>
|
||
|
Date: Mon Feb 3 12:09:34 2014 -0800
|
||
|
|
||
|
conf: add options for librados timeouts
|
||
|
|
||
|
These will be implemented in subsequent patches.
|
||
|
|
||
|
Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
|
||
|
(cherry picked from commit 0dcceff1378d85ca6d81d102d201890b8a71af6b)
|
||
|
|
||
|
commit ccd9b5eb9bcfe2360e874b306d4decd8815ecf46
|
||
|
Author: Sage Weil <sage@inktank.com>
|
||
|
Date: Sun Feb 9 20:53:00 2014 -0800
|
||
|
|
||
|
test_striper: fix warning
|
||
|
|
||
|
Signed-off-by: Sage Weil <sage@inktank.com>
|
||
|
|
||
|
commit bb44c0d5e06c2b699c81a76373a0edde1bf90445
|
||
|
Author: Sage Weil <sage@inktank.com>
|
||
|
Date: Sat Feb 8 12:21:26 2014 -0800
|
||
|
|
||
|
crushtool: add cli test for off-by-one tries vs retries bug
|
||
|
|
||
|
See bug #7370. This passes on dumpling and breaks prior to the #7370 fix.
|
||
|
|
||
|
Backport: emperor, dumpling
|
||
|
Signed-off-by: Sage Weil <sage@inktank.com>
|
||
|
(cherry picked from commit ed32c4002fb5cb1dd546331651eaf7de1a017471)
|
||
|
|
||
|
commit c301ec689caac5bbcd21e02226045d3454cc82fd
|
||
|
Author: Sage Weil <sage@inktank.com>
|
||
|
Date: Mon Feb 3 08:54:14 2014 -0800
|
||
|
|
||
|
client: use 64-bit value in sync read eof logic
|
||
|
|
||
|
The file size can jump to a value that is very much larger than our current
|
||
|
position (for example, it could be a disk image file that gets a sparse
|
||
|
write at a large offset). Use a 64-bit value so that 'some' doesn't
|
||
|
overflow.
|
||
|
|
||
|
Signed-off-by: Sage Weil <sage@inktank.com>
|
||
|
Reviewed-by: John Spray <john.spray@inktank.com>
|
||
|
(cherry picked from commit 7ff2b541c24d1c81c3bcfbcb347694c2097993d7)
|
||
|
|
||
|
commit 183deb899bc6b1b7b2a1ec639425e45786e56b01
|
||
|
Author: Sage Weil <sage@inktank.com>
|
||
|
Date: Sat Jan 4 22:39:35 2014 -0800
|
||
|
|
||
|
osd: do not send peering messages during init
|
||
|
|
||
|
Do not send any peering messages while we are still working our way
|
||
|
through init().
|
||
|
|
||
|
Fixes: #7093
|
||
|
Signed-off-by: Sage Weil <sage@inktank.com>
|
||
|
(cherry picked from commit 35da8f9d80e0c6c33fb6c6e00f0bf38f1eb87d0e)
|
||
|
Signed-off-by: Greg Farnum <greg@inktank.com>
|
||
|
|
||
|
commit 3a1fb17401897b0717cf1d264c6e6fdf99fc703f
|
||
|
Author: Sage Weil <sage@inktank.com>
|
||
|
Date: Tue Jan 28 18:46:37 2014 -0800
|
||
|
|
||
|
OSDMap: fix deepish_copy_from
|
||
|
|
||
|
Start with a shallow copy!
|
||
|
|
||
|
Signed-off-by: Sage Weil <sage@inktank.com>
|
||
|
(cherry picked from commit d0f13f54146694a197535795da15b8832ef4b56f)
|
||
|
|
||
|
Conflicts:
|
||
|
|
||
|
src/osd/OSDMap.h
|
||
|
|
||
|
commit f01bd8a94adc4ce8e7131f74282de5b434a7316a
|
||
|
Author: Yehuda Sadeh <yehuda@inktank.com>
|
||
|
Date: Thu Jan 23 13:48:28 2014 -0800
|
||
|
|
||
|
rgw: fix listing of multipart upload parts
|
||
|
|
||
|
Fixes: #7169
|
||
|
|
||
|
There are two issues here. One is that we may return more entries than
|
||
|
we should (as specified by max_parts). Second issue is that the
|
||
|
NextPartNumberMarker is set incorrectly. Both of these issues mainly
|
||
|
affect uploads with > 1000 parts, although can be triggered with less
|
||
|
than that.
|
||
|
|
||
|
Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
|
||
|
|
||
|
commit 6b657992d2397e399eacf554357ed807fda399fa
|
||
|
Author: Yehuda Sadeh <yehuda@inktank.com>
|
||
|
Date: Thu Nov 21 06:52:48 2013 -0800
|
||
|
|
||
|
rgw: initialize RGWUserAdminOpState::system_specified
|
||
|
|
||
|
Fixes: #6829
|
||
|
Backport: dumpling, emperor
|
||
|
We didn't init this member variable, which might cause that when
|
||
|
modifying user info that has this flag set the 'system' flag might
|
||
|
inadvertently reset.
|
||
|
|
||
|
Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
|
||
|
(cherry picked from commit 561e7b0b287e65e90b80699e45a52ae44e94684f)
|
||
|
|
||
|
commit 585e0e7eec1bbee60fe352166b593d53476003f8
|
||
|
Author: Robin H. Johnson <robbat2@gentoo.org>
|
||
|
Date: Sun Dec 15 12:26:19 2013 -0800
|
||
|
|
||
|
rgw: Fix CORS allow-headers validation
|
||
|
|
||
|
This fix is needed because Ceph presently validates CORS headers in a
|
||
|
case-sensitive manner. Keeps a local cache of lowercased allowed headers
|
||
|
to avoid converting the allowed headers to lowercase each time.
|
||
|
|
||
|
CORS 6.2.6: If any of the header field-names is not a ASCII
|
||
|
case-insensitive match for any of the values in list of headers do not
|
||
|
set any additional headers and terminate this set of steps.
|
||
|
|
||
|
Signed-off-by: Robin H. Johnson <robbat2@gentoo.org>
|
||
|
Reviewed-by: Yehuda Sadeh <yehuda@inktank.com>
|
||
|
(cherry picked from commit 31b60bfd9347a386ff12b4e4f1812d664bcfff01)
|
||
|
|
||
|
commit da2267a87e37afa28385e915a566de26fd784b70
|
||
|
Author: Robin H. Johnson <robbat2@gentoo.org>
|
||
|
Date: Sun Dec 15 11:40:31 2013 -0800
|
||
|
|
||
|
rgw: Clarify naming of case-change functions
|
||
|
|
||
|
It is not clear that the lowercase_http_attr & uppercase_http_attr
|
||
|
functions replace dashes with underscores. Rename them to match the
|
||
|
pattern established by the camelcase_dash_http_attr function in
|
||
|
preperation for more case-change functions as needed by later fixes.
|
||
|
|
||
|
Signed-off-by: Robin H. Johnson <robbat2@gentoo.org>
|
||
|
Reviewed-by: Yehuda Sadeh <yehuda@inktank.com>
|
||
|
(cherry picked from commit 6a7edab2673423c53c6a422a10cb65fe07f9b235)
|
||
|
|
||
|
commit fdea76ef6f7d7c4ee89c30d430f5495072023957
|
||
|
Author: Robin H. Johnson <robbat2@gentoo.org>
|
||
|
Date: Sun Dec 15 11:27:49 2013 -0800
|
||
|
|
||
|
rgw: Look at correct header about headers for CORS
|
||
|
|
||
|
The CORS standard dictates that preflight requests are made with the
|
||
|
Access-Control-Request-Headers header containing the headers of the
|
||
|
author request. The Access-Control-Allow-Headers header is sent in the
|
||
|
response.
|
||
|
|
||
|
The present code looks for Access-Control-Allow-Headers in request, so
|
||
|
fix it to look at Access-Control-Request-Headers instead.
|
||
|
|
||
|
Signed-off-by: Robin H. Johnson <robbat2@gentoo.org>
|
||
|
Reviewed-by: Yehuda Sadeh <yehuda@inktank.com>
|
||
|
(cherry picked from commit 2abacd9678ae04cefac457882ba718a454948915)
|
||
|
|
||
|
commit a5739e3903f8c30c8168199413818922b4a29bad
|
||
|
Author: Yehuda Sadeh <yehuda@inktank.com>
|
||
|
Date: Fri Dec 6 11:07:09 2013 -0800
|
||
|
|
||
|
rgw: fix reading bucket policy in RGWBucket::get_policy()
|
||
|
|
||
|
Fixes: 6940
|
||
|
Backport: dumpling, emperor
|
||
|
|
||
|
We changed the way we keep the bucket policy, and we shouldn't try to
|
||
|
access the bucket object directly. This had changed when we added the
|
||
|
bucket instance object around dumpling.
|
||
|
|
||
|
Reported-by: Gao, Wei M <wei.m.gao@intel.com>
|
||
|
Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
|
||
|
(cherry picked from commit 7a9a088d82d04f6105d72f6347673724ac16c9f8)
|
||
|
|
||
|
commit ba792cdc8d0c006e260e6a02a33ca1491b35901c
|
||
|
Author: Yehuda Sadeh <yehuda@inktank.com>
|
||
|
Date: Thu Jan 16 11:45:27 2014 -0800
|
||
|
|
||
|
rgw: handle racing object puts when object doesn't exist
|
||
|
|
||
|
If the object didn't exist before and now we have multiple puts coming
|
||
|
in concurrently, we need to make sure that we behave correctly. Only one
|
||
|
needs to win, the other one can fail silently. We do that by setting
|
||
|
exclusive flag on the object creation and handling the error correctly.
|
||
|
Note that we still want to return -EEXIST in some cases (when the
|
||
|
exclusive flag is passed to put_obj_meta(), e.g., on bucket creation).
|
||
|
|
||
|
Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
|
||
|
(cherry picked from commit 86c15480fc3e33b9a3b84d0af68d8398fc732bae)
|
||
|
|
||
|
commit 1e2984ac4a4ed0508e1b5efc8b69ae4da0cac824
|
||
|
Author: Yehuda Sadeh <yehuda@inktank.com>
|
||
|
Date: Thu Jan 16 11:33:49 2014 -0800
|
||
|
|
||
|
rgw: don't return -ENOENT in put_obj_meta()
|
||
|
|
||
|
Fixes: #7168
|
||
|
|
||
|
An object put may race with the same object's delete. In this case just
|
||
|
ignore the error, same behavior as if object was created and then
|
||
|
removed.
|
||
|
|
||
|
Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
|
||
|
(cherry picked from commit 5c24a7ea905587fd4077e3b0cfc0f5ad2b178c29)
|
||
|
|
||
|
commit 5f1eea2ccf1ee4296530fc754bfd5dfc1571cd62
|
||
|
Author: Robin H. Johnson <robbat2@gentoo.org>
|
||
|
Date: Sat Jan 18 18:01:20 2014 -0800
|
||
|
|
||
|
rgw: Use correct secret key for POST authn
|
||
|
|
||
|
The POST authentication by signature validation looked up a user based
|
||
|
on the access key, then used the first secret key for the user. If the
|
||
|
access key used was not the first access key, then the expected
|
||
|
signature would be wrong, and the POST would be rejected.
|
||
|
|
||
|
Signed-off-by: Robin H. Johnson <robbat2@gentoo.org>
|
||
|
(cherry picked from commit 586ad1f69e6260ef298805647911b3b49f8be7cf)
|
||
|
|
||
|
commit 14e933eb2e8adf3e7df2aef823d863c593067928
|
||
|
Author: Joao Eduardo Luis <joao.luis@inktank.com>
|
||
|
Date: Tue Jan 28 15:54:33 2014 +0000
|
||
|
|
||
|
osd: OSDMonitor: ignore pgtemps from removed pool
|
||
|
|
||
|
There's a window in-between receiving an MOSDPGTemp message from an OSD
|
||
|
and actually handling it that may lead to the pool the pg temps refer to
|
||
|
no longer existing. This may happen if the MOSDPGTemp message is queued
|
||
|
pending dispatching due to an on-going proposal (maybe even the pool
|
||
|
removal).
|
||
|
|
||
|
This patch fixes such behavior in two steps:
|
||
|
|
||
|
1. Check if the pool exists in the osdmap upon preprocessing
|
||
|
- if pool does not exist in the osdmap, then the pool must have been
|
||
|
removed prior to handling the message, but after the osd sent it.
|
||
|
- safe to ignore the pg update
|
||
|
2. If all pg updates in the message have been ignored, ignore the whole
|
||
|
message. Otherwise, let prepare handle the rest.
|
||
|
|
||
|
3. Recheck if pool exists in the osdmap upon prepare
|
||
|
- We may have ignored this pg back in preprocess, but other pgs in the
|
||
|
message may have led the message to be passed on to prepare; ignore
|
||
|
pg update once more.
|
||
|
4. Check if pool is pending removal and ignore pg update if so.
|
||
|
|
||
|
We delegate checking the pending value to prepare_pgtemp() because in this
|
||
|
case we should only ignore the update IFF the pending value is in fact
|
||
|
committed. Otherwise we should retry the message. prepare_pgtemp() is
|
||
|
the appropriate place to do so.
|
||
|
|
||
|
Fixes: 7116
|
||
|
|
||
|
Signed-off-by: Joao Eduardo Luis <joao.luis@inktank.com>
|
||
|
(cherry picked from commit f513f66f48383a07c70ca18a4dba6c2449ea9860)
|
||
|
|
||
|
commit 3672fc49bea5efcef2069673c88fd8e526eeb7e5
|
||
|
Author: Sage Weil <sage@inktank.com>
|
||
|
Date: Tue Jan 28 11:00:34 2014 -0800
|
||
|
|
||
|
OSDMonitor: use deepish_copy_from for remove_down_pg_temp
|
||
|
|
||
|
This is a backport of 368852f6c0a884b8fdc80a5cd6f9ab72e814d412.
|
||
|
|
||
|
Make a deep copy of the OSDMap to avoid clobbering the in-memory copy with
|
||
|
the call to apply_incremental.
|
||
|
|
||
|
Fixes: #7060
|
||
|
Signed-off-by: Sage Weil <sage@inktank.com>
|
||
|
|
||
|
commit e6fef68ee51a2e3be6537086246ce860819788eb
|
||
|
Author: Sage Weil <sage@inktank.com>
|
||
|
Date: Fri Jan 24 11:03:26 2014 -0800
|
||
|
|
||
|
OSDMap: deepish_copy_from()
|
||
|
|
||
|
Make a deep(ish) copy of another OSDMap. Unfortunatley we can't make the
|
||
|
compiler-generated copy operator/constructors private until c++11. :(
|
||
|
|
||
|
Signed-off-by: Sage Weil <sage@inktank.com>
|
||
|
(cherry picked from commit bd54b9841b9255406e56cdc7269bddb419453304)
|
||
|
|
||
|
commit 2528186c0dd327607b1e76a51581df72aeea52f2
|
||
|
Author: Sage Weil <sage@inktank.com>
|
||
|
Date: Tue Jan 28 10:26:12 2014 -0800
|
||
|
|
||
|
buffer: make 0-length splice() a no-op
|
||
|
|
||
|
This was causing a problem in the Striper, but fixing it here will avoid
|
||
|
corner cases all over the tree. Note that we have to bail out before
|
||
|
the end-of-buffer check to avoid hitting that check when the bufferlist is
|
||
|
also empty.
|
||
|
|
||
|
Signed-off-by: Sage Weil <sage@inktank.com>
|
||
|
Reviewed-by: Greg Farnum <greg@inktank.com>
|
||
|
(cherry picked from commit ff5abfbdae07ae8a56fa83ebaa92000896f793c2)
|
||
|
|
||
|
commit fe9539e118a830aa71bc5846ad2693543213fc59
|
||
|
Author: Sage Weil <sage@inktank.com>
|
||
|
Date: Tue Jan 28 10:09:17 2014 -0800
|
||
|
|
||
|
osdc/Striper: test zero-length add_partial_result
|
||
|
|
||
|
If we add a partial result that is 0-length, we used to hit an assert in
|
||
|
buffer::list::splice(). Add a unit test to verify the fix.
|
||
|
|
||
|
Signed-off-by: Sage Weil <sage@inktank.com>
|
||
|
Reviewed-by: Greg Farnum <greg@inktank.com>
|
||
|
(cherry picked from commit 28c7388d320a47657c2e12c46907f1bf40672b08)
|
||
|
|
||
|
commit 9801718e6e7a335d1aeffb7f3d958b012d8dd79c
|
||
|
Author: Derek Yarnell <derek@umiacs.umd.edu>
|
||
|
Date: Mon Jan 27 12:27:51 2014 -0700
|
||
|
|
||
|
packaging: apply udev hack rule to RHEL
|
||
|
|
||
|
In the RPM spec file there is a test to deploy the uuid hack udev rules
|
||
|
for older udev operating systems. This includes CentOS and RHEL, but the
|
||
|
check currently only is for CentOS, causing RHEL clients to get a bogus
|
||
|
osd rules file.
|
||
|
|
||
|
Adjust the conditional to apply to RHEL as well as CentOS. (The %{rhel}
|
||
|
macro is defined in both platforms' redhat-rpm-config package.)
|
||
|
|
||
|
Fixes http://tracker.ceph.com/issues/7245
|
||
|
|
||
|
Signed-off-by: Ken Dreyer <ken.dreyer@inktank.com>
|
||
|
(cherry picked from commit 64a0b4fa563795bc22753940aa3a4a2946113109)
|
||
|
|
||
|
commit 5817078ba9b2aa38f39e1f62d8d08e943646c0bb
|
||
|
Merge: 9fa8d2d abf6441
|
||
|
Author: Sage Weil <sage@inktank.com>
|
||
|
Date: Thu Jan 23 07:12:37 2014 -0800
|
||
|
|
||
|
Merge pull request #1129 from ceph/wip-dumpling-backport-6620
|
||
|
|
||
|
mds: MDSMap: adjust buffer size for uint64 values with more than 5 chars
|
||
|
|
||
|
commit abf64417bbc63b006c53a07262a5774d0d40550e
|
||
|
Author: Joao Eduardo Luis <jecluis@gmail.com>
|
||
|
Date: Thu Jan 23 11:36:16 2014 +0000
|
||
|
|
||
|
mds: MDSMap: adjust buffer size for uint64 values with more than 5 chars
|
||
|
|
||
|
Fixes: #6620
|
||
|
|
||
|
Signed-off-by: Joao Eduardo Luis <joao.luis@inktank.com>
|
||
|
(cherry picked from commit 0e8182edd850f061421777988974efbaa3575b9f)
|
||
|
|
||
|
commit 9fa8d2d1bd4a8cf56fdebae484bee35c3930fb62
|
||
|
Author: Sage Weil <sage@inktank.com>
|
||
|
Date: Tue Jan 21 11:29:56 2014 -0800
|
||
|
|
||
|
mon/MDSMonitor: do not generate mdsmaps from already-laggy mds
|
||
|
|
||
|
There is one path where a mds that is not sending its beacon (e.g.,
|
||
|
because it is not running at all) will lead to proposal of new mdsmaps.
|
||
|
Fix it.
|
||
|
|
||
|
Backport: emperor, dumpling
|
||
|
Signed-off-by: Sage Weil <sage@inktank.com>
|
||
|
(cherry picked from commit 584c2dd6bea3fe1a3c7f306874c054ce0cf0d2b5)
|
||
|
|
||
|
commit a2e34b8d322e571600d6c0a3ff363f9910196f28
|
||
|
Author: John Spray <john.spray@inktank.com>
|
||
|
Date: Mon Jan 20 11:08:27 2014 +0000
|
||
|
|
||
|
Fix #7187: Include all summary items in JSON health output
|
||
|
|
||
|
Signed-off-by: John Spray <john.spray@inktank.com>
|
||
|
(cherry picked from commit fdf3b5520d150f14d90bdfc569b70c07b0579b38)
|
||
|
|
||
|
commit ee9fc590a556354b54a174a4790c4142949d7409
|
||
|
Author: Yehuda Sadeh <yehuda@inktank.com>
|
||
|
Date: Mon Jan 6 18:32:42 2014 -0800
|
||
|
|
||
|
rgw: convert bucket info if needed
|
||
|
|
||
|
Fixes: #7110
|
||
|
In dumpling, the bucket info was separated into bucket entry point and
|
||
|
bucket instance objects. When setting bucket attrs we only ended up
|
||
|
updating the bucket instance object. However, pre-dumpling buckets still
|
||
|
keep everything at the entry-point object, so acl changes didn't affect
|
||
|
anything (because we never updated the entry point). This change just
|
||
|
converts the bucket info into the new format.
|
||
|
|
||
|
Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
|
||
|
(cherry picked from commit a5f8cc7ec9ec8bef4fbc656066b4d3a08e5b215b)
|
||
|
|
||
|
commit 69a99e6edd67aadaea77fb5ebcf46190dbfcdbc6
|
||
|
Author: Sage Weil <sage@inktank.com>
|
||
|
Date: Sat Jan 4 22:40:43 2014 -0800
|
||
|
|
||
|
osd: ignore OSDMap messages while we are initializing
|
||
|
|
||
|
The mon may occasionally send OSDMap messages to random OSDs, but is not
|
||
|
very descriminating in that we may not have authenticated yet. Ignore any
|
||
|
messages if that is the case; we will reqeust whatever we need during the
|
||
|
BOOTING state.
|
||
|
|
||
|
Fixes: #7093
|
||
|
Signed-off-by: Sage Weil <sage@inktank.com>
|
||
|
(cherry picked from commit f68de9f352d53e431b1108774e4a23adb003fe3f)
|
||
|
|
||
|
commit 1545ddbd3b6dfac897d483bd58a4335d68b9b62a
|
||
|
Author: Sage Weil <sage@inktank.com>
|
||
|
Date: Sat Jan 4 22:43:26 2014 -0800
|
||
|
|
||
|
mon: only send messages to current OSDs
|
||
|
|
||
|
When choosing a random OSD to send a message to, verify not only that
|
||
|
the OSD id is up but that the session is for the same instance of that OSD
|
||
|
by checking that the address matches.
|
||
|
|
||
|
Fixes: #7093
|
||
|
Backport: emperor, dumpling
|
||
|
Signed-off-by: Sage Weil <sage@inktank.com>
|
||
|
(cherry picked from commit 98ed9ac5fed6eddf68f163086df72faabd9edcde)
|
||
|
|
||
|
commit 4d88dd10bfab4e5fb45632245be5f79eeba73a30
|
||
|
Author: Sage Weil <sage@inktank.com>
|
||
|
Date: Mon Aug 26 13:58:47 2013 -0700
|
||
|
|
||
|
osd: discriminate based on connection messenger, not peer type
|
||
|
|
||
|
Replace ->get_source().is_osd() checks and instead see if it is the
|
||
|
cluster_messenger so that we do not confuse ourselves when we get
|
||
|
legit requests from other OSDs on our public interface.
|
||
|
|
||
|
NOTE: backporting this because a mixed cluster may send OSD requests
|
||
|
via the client interface, even though dumpling doesn't do this.
|
||
|
|
||
|
Signed-off-by: Sage Weil <sage@inktank.com>
|
||
|
(cherry picked from commit a6b04c5d8ba043727a2e39a62e9d4126485bcfeb)
|
||
|
|
||
|
Conflicts:
|
||
|
|
||
|
src/osd/OSD.cc
|
||
|
|
||
|
commit 2354b957b7924af3e81f559d5c975262848c3bf6
|
||
|
Author: Loic Dachary <loic@dachary.org>
|
||
|
Date: Sun Dec 15 22:59:51 2013 +0100
|
||
|
|
||
|
qa: test for error when ceph osd rm is EBUSY
|
||
|
|
||
|
http://tracker.ceph.com/issues/6824 fixes #6824
|
||
|
|
||
|
Signed-off-by: Loic Dachary <loic@dachary.org>
|
||
|
(cherry picked from commit 31507c90f0161c4569a2cc634c0b5f671179440a)
|
||
|
|
||
|
commit 10ad2e01f832ca9293a1bda1c82f7d318e8c3589
|
||
|
Author: Loic Dachary <loic@dachary.org>
|
||
|
Date: Sun Dec 15 16:27:02 2013 +0100
|
||
|
|
||
|
mon: set ceph osd (down|out|in|rm) error code on failure
|
||
|
|
||
|
Instead of always returning true, the error code is set if at least one
|
||
|
operation fails.
|
||
|
|
||
|
EINVAL if the OSD id is invalid (osd.foobar for instance).
|
||
|
EBUSY if trying to remove and OSD that is up.
|
||
|
|
||
|
When used with the ceph command line, it looks like this:
|
||
|
|
||
|
ceph -c ceph.conf osd rm osd.0
|
||
|
Error EBUSY: osd.0 is still up; must be down before removal.
|
||
|
kill PID_OF_osd.0
|
||
|
ceph -c ceph.conf osd down osd.0
|
||
|
marked down osd.0.
|
||
|
ceph -c ceph.conf osd rm osd.0 osd.1
|
||
|
Error EBUSY: removed osd.0, osd.1 is still up; must be down before removal.
|
||
|
|
||
|
http://tracker.ceph.com/issues/6824 fixes #6824
|
||
|
|
||
|
Signed-off-by: Loic Dachary <loic@dachary.org>
|
||
|
(cherry picked from commit 15b8616b13a327701c5d48c6cb7aeab8fcc4cafc)
|
||
|
|
||
|
commit db82bfec50349783c3bb708c65cf89bceff7b2ca
|
||
|
Author: Joao Eduardo Luis <joao.luis@inktank.com>
|
||
|
Date: Tue Oct 29 20:30:37 2013 +0000
|
||
|
|
||
|
mon: OSDMonitor: fix some annoying whitespace
|
||
|
|
||
|
Signed-off-by: Joao Eduardo Luis <joao.luis@inktank.com>
|
||
|
(cherry picked from commit 42c4137cbfacad5654f02c6608cc0e81b45c06be)
|
||
|
|
||
|
commit 1abb16988727a21dff61edca48bfcb05c60d26f2
|
||
|
Author: Josh Durgin <josh.durgin@inktank.com>
|
||
|
Date: Thu Dec 26 17:38:52 2013 -0800
|
||
|
|
||
|
librbd: call user completion after incrementing perfcounters
|
||
|
|
||
|
The perfcounters (and the ictx) are only valid while the image is
|
||
|
still open. If the librbd user gets the callback for its last I/O,
|
||
|
then closes the image, the ictx and its perfcounters will be
|
||
|
invalid. If the AioCompletion object is has not run the rest of its
|
||
|
complete() method yet, it will access these now-invalid addresses,
|
||
|
possibly leading to a crash.
|
||
|
|
||
|
The AioCompletion object is independent of the ictx and does not
|
||
|
access it again after incrementing perfcounters, so avoid this race by
|
||
|
calling the user's callback after this step. The AioCompletion object
|
||
|
will be cleaned up by the rest of complete_request(), independent of
|
||
|
the ImageCtx.
|
||
|
|
||
|
Fixes: #5426
|
||
|
Backport: dumpling, emperor
|
||
|
Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
|
||
|
(cherry picked from commit 4cea7895da7331b84d8c6079851fdc0ff2f4afb1)
|
||
|
|
||
|
commit 4dae50d8a0ffe3f3491eae62950fe46229aaa0e6
|
||
|
Author: Josh Durgin <josh.durgin@inktank.com>
|
||
|
Date: Fri Dec 6 16:03:20 2013 -0800
|
||
|
|
||
|
objecter: don't take extra throttle budget for resent ops
|
||
|
|
||
|
These ops have already taken their budget in the original op_submit().
|
||
|
It will be returned via put_op_budget() when they complete.
|
||
|
If there were many localized reads of missing objects from replicas,
|
||
|
or cache pool redirects, this would cause the objecter to use up all
|
||
|
of its op throttle budget and hang.
|
||
|
|
||
|
Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
|
||
|
(cherry picked from commit 8d0180b1b7b48662daef199931efc7f2a6a1c431)
|
||
|
|
||
|
Conflicts:
|
||
|
|
||
|
src/osdc/Objecter.cc
|
||
|
|
||
|
commit 4944618fe74e1875e37a5de9a5bfe3922f906942
|
||
|
Author: Josh Durgin <josh.durgin@inktank.com>
|
||
|
Date: Thu Dec 5 17:44:37 2013 -0800
|
||
|
|
||
|
rbd: check write return code during bench-write
|
||
|
|
||
|
This is allows rbd-bench to detect http://tracker.ceph.com/issues/6938
|
||
|
when combined with rapidly changing the mon osd full ratio.
|
||
|
|
||
|
Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
|
||
|
(cherry picked from commit 3caf3effcb113f843b54e06099099909eb335453)
|
||
|
|
||
|
commit 3a7a0353d7c8521a2c3c25778801d45f0ca10957
|
||
|
Author: Josh Durgin <josh.durgin@inktank.com>
|
||
|
Date: Thu Dec 5 17:36:33 2013 -0800
|
||
|
|
||
|
objecter: resend all writes after osdmap loses the full flag
|
||
|
|
||
|
Now that the osd does not respond if it gets a map with the full flag
|
||
|
set first, clients need to resend all writes.
|
||
|
|
||
|
Clients talking to old osds are still subject to the race condition,
|
||
|
so both sides must be upgraded to avoid it.
|
||
|
|
||
|
Refs: #6938
|
||
|
Backport: dumpling, emperor
|
||
|
Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
|
||
|
(cherry picked from commit e32874fc5aa6f59494766b7bbeb2b6ec3d8f190e)
|
||
|
|
||
|
Conflicts:
|
||
|
|
||
|
src/osdc/Objecter.h
|
||
|
|
||
|
commit f4d0fc8afac1bcbea76f46744397a8462025f373
|
||
|
Author: Josh Durgin <josh.durgin@inktank.com>
|
||
|
Date: Thu Dec 5 17:34:38 2013 -0800
|
||
|
|
||
|
osd: drop writes when full instead of returning an error
|
||
|
|
||
|
There's a race between the client and osd with a newly marked full
|
||
|
osdmap. If the client gets the new map first, it blocks writes and
|
||
|
everything works as expected, with no errors from the osd.
|
||
|
|
||
|
If the osd gets the map first, however, it will respond to any writes
|
||
|
with -ENOSPC. Clients will pass this up the stack, and not retry these
|
||
|
writes later. -ENOSPC isn't handled well by all clients. RBD, for
|
||
|
example, may pass it on to qemu or kernel rbd which will both
|
||
|
interpret it as EIO. Filesystems on top of rbd will not behave well
|
||
|
when they receive EIOs like this, especially if the cluster oscillates
|
||
|
between full and not full, so some writes succeed.
|
||
|
|
||
|
To fix this, never return ENOSPC from the osd because of a map marked
|
||
|
full, and rely on the client to retry all writes when the map is no
|
||
|
longer marked full.
|
||
|
|
||
|
Old clients talking to osds with this fix will hang instead of
|
||
|
propagating an error, but only if they run into this race
|
||
|
condition. ceph-fuse and rbd with caching enabled are not affected,
|
||
|
since the ObjectCacher will retry writes that return errors.
|
||
|
|
||
|
Refs: #6938
|
||
|
Backport: dumpling, emperor
|
||
|
Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
|
||
|
(cherry picked from commit 4111729dda7437c23f59e7100b3c4a9ec4101dd0)
|
||
|
|
||
|
commit 2b109803b9434d2d495e65d6a045838ee3ebf169
|
||
|
Author: Yehuda Sadeh <yehuda@inktank.com>
|
||
|
Date: Wed Nov 6 16:55:52 2013 -0800
|
||
|
|
||
|
objecter: clean pause / unpause logic
|
||
|
|
||
|
op->paused holds now whether operation should be paused or not, and it's
|
||
|
being updated when scanning requests. No need to do a second scan.
|
||
|
|
||
|
Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
|
||
|
(cherry picked from commit 5fe3dc647bf936df8e1eb2892b53f44f68f19821)
|
||
|
|
||
|
commit 7b229fca346b7ab60131b229591d35f63f64a6ad
|
||
|
Author: Yehuda Sadeh <yehuda@inktank.com>
|
||
|
Date: Wed Nov 6 16:15:47 2013 -0800
|
||
|
|
||
|
objecter: set op->paused in recalc_op_target(), resend in not paused
|
||
|
|
||
|
When going through scan_requests() in handle_osd_map() we need to make
|
||
|
sure that if an op should not be paused anymore then set it on the op
|
||
|
itself, and return NEED_RESEND. Otherwise we're going to miss reset of
|
||
|
the full flag.
|
||
|
Also in handle_osd_map(), make sure that op shouldn't be paused before
|
||
|
sending it. There's a lot of cleanup around that area that we should
|
||
|
probably be doing, make the code much more tight.
|
||
|
|
||
|
Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
|
||
|
(cherry picked from commit 98ab7d64a191371fa39d840c5f8e91cbaaa1d7b7)
|
||
|
|
||
|
commit a3fdfd77c953a8f9ace4991630599e60f56abc4a
|
||
|
Author: Josh Durgin <josh.durgin@inktank.com>
|
||
|
Date: Wed Nov 6 10:46:37 2013 +0800
|
||
|
|
||
|
objecter: don't resend paused ops
|
||
|
|
||
|
Paused ops are meant to block on the client side until a new map that
|
||
|
unpauses them is recieved. If we send paused writes when the FULL flag
|
||
|
is set, we'll get -ENOSPC from the osds, which is not what Objecter
|
||
|
users expect. This may cause rbd without caching to produce an I/O
|
||
|
error instead of waiting for the cluster to have capacity.
|
||
|
|
||
|
Fixes: #6725
|
||
|
Backport: dumpling
|
||
|
Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
|
||
|
(cherry picked from commit c5c399d327cfc0d232d9ec7d49ababa914d0b21a)
|
||
|
|
||
|
commit 78037886ae6ae278d8fb2db52d7767b8612313fe
|
||
|
Merge: a60ac91 4e47a00
|
||
|
Author: Sage Weil <sage@inktank.com>
|
||
|
Date: Sun Dec 29 21:10:30 2013 -0800
|
||
|
|
||
|
Merge pull request #808 from ceph/wip-6152-dumpling
|
||
|
|
||
|
rgw: Fix S3 auth when using response-* query string params
|
||
|
|
||
|
commit 4e47a003bb3adcee690067d4037c248a93023c20
|
||
|
Author: Sylvain Munaut <s.munaut@whatever-company.com>
|
||
|
Date: Thu Aug 29 16:17:30 2013 +0200
|
||
|
|
||
|
rgw: Fix S3 auth when using response-* query string params
|
||
|
|
||
|
Reviewed-by: Yehuda Sadeh <yehuda@inktank.com>
|
||
|
Signed-off-by: Sylvain Munaut <s.munaut@whatever-company.com>
|
||
|
(cherry picked from commit 7a7361d7e798d94796d4985e2e4b35af22463ae2)
|