Haomai Wang [Sun, 22 Mar 2015 15:59:19 +0000 (23:59 +0800)]
Fix ceph_test_async_driver failed
This test will create 10000 sockets which will failed because of limited system fd. Actually we only need to create several hundreds sockets and it's enough to get the test's goal.
John Spray [Fri, 20 Mar 2015 17:11:39 +0000 (17:11 +0000)]
mds: call wait_for_safe twice in command_flush_journal
...so that we wait until everyone who was waiting for the first
wait_for_safe has run their completion before we proceed, thus
avoiding the possibility that those completions will execute
during our trimming and cause problems.
Fixes: #10368 Signed-off-by: John Spray <john.spray@redhat.com>
Andreas Peters [Fri, 20 Mar 2015 09:21:26 +0000 (10:21 +0100)]
erasure-code: make ErasureCodeIsaTableCache drop entries according to LRU
There was a bug in the arguments used by the splice function to move elements from the LRU list to the head of the list.
To simplify the implementation the direction of the LRU list has been changed e.g. newest entries are pushed in front.
Kefu Chai [Tue, 17 Mar 2015 15:40:00 +0000 (23:40 +0800)]
doc: Switch doxygen integration back to breathe
* asphyxiate needs more toolings, see
https://github.com/ceph/asphyxiate/issues/1
* this commit basically reverts c96064
* use `autodoxygen` directive to doxygen referenced source files
* do not call `doxygen` explicitly in `build-doc`, `autodoxygen`
will take care of it.
John Spray [Tue, 17 Mar 2015 18:38:41 +0000 (18:38 +0000)]
mds: implement 'dump cache' asok command
Retains old text format output when user specifies
a filename, else returns JSON. JSON output will
cope less well with large caches, but will be more
useful for automated tests.
Danny Al-Gaaf [Thu, 12 Mar 2015 21:17:09 +0000 (22:17 +0100)]
configure.ac: add --disable-gitversion
During development each git commit cause currently a complete
rebuild of the source tree. By passing --disable-gitversion to
configure we set a generic version string for ceph to prevent
getting after each commit a new version set.
remove src/check_version and replace with a extended version
of src/make_version which allows detecting changes in .git_version
and ceph_ver.h to avoid not needed updates.
This change also forces to call make_version each time to make
sure that changes from configure or the NO_VERSION env variable
are processed.
Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
Loic Dachary [Wed, 18 Mar 2015 13:17:00 +0000 (14:17 +0100)]
osd: erasure-code-profile incremental rm before set
It is possible for an incremental change to have both a rm and a set for
a given erasure code profile. It only happens when a rm is followed by a
set. When a set is followed by a rm, the rm will remove the pending set
in the incremental change.
The logic is the same for pool create and pool delete.
We must apply the incremental erasure-code-profile removal before the
creation otherwise rm and set in the same proposal will ignore the set.
This fix is minimal. A better change would be that erasure-code-profile
set checks if there is a pending removal and wait_for_finished_proposal
before creating.
Loic Dachary [Wed, 18 Mar 2015 10:40:36 +0000 (11:40 +0100)]
mon: informative message when erasure-code-profile set fails
When erasure-code-profile set refuses to override an existing profile,
it may be non trivial to figure out why. For instance:
ceph osd set default ruleset-failure-domain=host
fails with:
Error EPERM: will not override erasure code profile default
although ruleset-failure-domain=host is documented to be the
default. The error message now includes the two profiles that have been
compared to not be equal so that the user can verify the difference.
Error EPERM: will not override erasure code profile default
because the existing profile
{directory=.libs,k=2,m=1,plugin=jerasure,technique=reed_sol_van}
is different from the proposed profile
{directory=.libs,k=2,m=1,plugin=jerasure,ruleset-failure-domain=host,technique=reed_sol_van}
Yan, Zheng [Tue, 10 Mar 2015 11:13:30 +0000 (19:13 +0800)]
mds: fix purging snapshotted stray inode
If stray inode has no snapshot data, it's OK to purge it even if
it's still referenced by some snapsthots. This is because seperate
snap inodes were created for snapshots.
Yan, Zheng [Tue, 10 Mar 2015 04:01:32 +0000 (12:01 +0800)]
mds: check snapset in journal_cow_dentry()
Removing snapshot also increases snaprealm's sequence number.
So only using snaprealm's sequence number to decide if we should
COW dentry is too loose. This patch makes journal_cow_dentry()
also check snaprealm's snapset.
Yan, Zheng [Wed, 18 Mar 2015 06:12:50 +0000 (14:12 +0800)]
mds: fix fnode.snap_purged_thru check
We do not alway succeed in purging all stale snap dentries
(stale snap dentris can be in-use or have been trimmed from
cache). Updating fnode.snap_purged_thru prematurely will make
us not purge the remainning stale snap dentries. If CDir
has no cached snap dentry when fetching dirfrag, we can
guaranee that all stale snap dentries will be purged.
So we only update fnode.snap_purged_thru in this case.
Now the code that purges stale snap dentries is executed more
frequently. So this patch also make readdir not purge stale
snap dentries
wuxingyi [Wed, 11 Mar 2015 09:34:40 +0000 (17:34 +0800)]
rgw/logrotate.conf: Rename service name
The service name for ceph rados gateway was changed to "ceph-radosgw",
the previous version of service name "radosgw" would cause a failed reload,
and finally make it impossible to write any log data to the log file.
Sage Weil [Tue, 17 Mar 2015 17:26:13 +0000 (10:26 -0700)]
osd: use (robust) helper for setting exists or clearing whiteout
The current blanket check in prepare_transaction() will trigger only when
there is a net obs.exists change from the commited obs to new_obs.
However, this misses the case where the first osd_op is a delete and then a
subsequent osd_op recreates the object. Changing the whiteout check to
look only at new_obs does not work because it fails to understand when
_delete_oid sets the whiteout and will simply clear it again.
In order to support sequences of delete + create in general, we need to do
the whiteout flag clearing when the actual create happens (to match the
fact that we set it when we process the delete osd_op). Use a helper to
do this and consolidate most other obs.exists = true code to use it.
Backport: giant, firefly Signed-off-by: Sage Weil <sage@redhat.com>