| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
Signed-off-by: Sage Weil <sage@newdream.net>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
If block completions finished before all of them were scheduled, the
pending_count could reach 0, and the callback could be called more
than once. This caused the reference counting to be off, so the next
call to the callback passed an invalid pointer, resulting in crashes
like this (or more mysterious ones):
common/Mutex.h: In function 'void Mutex::Lock(bool)', in thread '0x7f5f37e62700'
common/Mutex.h: 118: FAILED assert(r == 0)
1: (librbd::RBD::AioCompletion::get_return_value()+0x19c) [0x7f5f408835bc]
2: /usr/bin/kvm() [0x4629fd]
3: (librbd::AioCompletion::complete_block(librbd::AioBlockCompletion*, long)+0x13c) [0x7f5f4088ab5c]
4: (librbd::rados_aio_sparse_read_cb(void*, void*)+0x8d) [0x7f5f4088b40d]
5: (librados::RadosClient::C_aio_sparse_read_Ack::finish(int)+0x12e) [0x7f5f4050beee]
6: (Objecter::handle_osd_op_reply(MOSDOpReply*)+0x783) [0x7f5f40517863]
7: (librados::RadosClient::_dispatch(Message*)+0x3c) [0x7f5f404ffe8c]
8: (librados::RadosClient::ms_dispatch(Message*)+0x33) [0x7f5f404fff53]
9: (SimpleMessenger::dispatch_entry()+0x69d) [0x7f5f405bf5bd]
10: (SimpleMessenger::DispatchThread::entry()+0x1c) [0x7f5f4050052c]
11: (()+0x6d8c) [0x7f5f40c9dd8c]
12: (clone()+0x6d) [0x7f5f3e0b904d]
Signed-off-by: Josh Durgin <josh.durgin@dreamhost.com>
|
|
|
|
| |
Signed-off-by: Josh Durgin <josh.durgin@dreamhost.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
If block completions finished before all of them where scheduled, the
pending_count would reach 0, and the AioCompletion would be destroyed
since the refcount would also reach 0. To fix this, hold a reference
to the AioCompletion while scheduling more block completions.
This caused a crash like this when running qemu:
1: ceph::__ceph_assert_fail (assertion=<value optimized out>, file=<value optimized out>, line=<value optimized out>, func=<value optimized out>) at common/assert.cc:86
2: Lock (ictx=0x7f83d0001f00, off=5368705024, len=0, buf=0x2fac000 "", c=0x2cebe00) at common/Mutex.h:118
3: add_block_completion (ictx=0x7f83d0001f00, off=5368705024, len=0, buf=0x2fac000 "", c=0x2cebe00) at librbd.cc:159
4: librbd::aio_read (ictx=0x7f83d0001f00, off=5368705024, len=0, buf=0x2fac000 "", c=0x2cebe00) at librbd.cc:1368
5: rbd_aio_rw_vector (bs=<value optimized out>, sector_num=10485752, qiov=<value optimized out>, nb_sectors=<value optimized out>, cb=<value optimized out>, opaque=<value optimized out>, write=0) at block/rbd.c:626
6: qemu_rbd_aio_readv (bs=<value optimized out>, sector_num=<value optimized out>, qiov=<value optimized out>, nb_sectors=<value optimized out>, cb=<value optimized out>, opaque=<value optimized out>) at block/rbd.c:649
7: bdrv_aio_readv (bs=0x2ce92e0, sector_num=10485752, qiov=0x2de08f0, nb_sectors=8, cb=<value optimized out>, opaque=<value optimized out>)
Fixes: #998
Signed-off-by: Josh Durgin <josh.durgin@dreamhost.com>
|
|
|
|
| |
Signed-off-by: Samuel Just <samuel.just@dreamhost.com>
|
|
|
|
|
|
|
|
| |
Previously, we used obs.oi.size for the clone size, but obs refers to
new_obs. The clone's size should be the old size,
ctx->obc->obs.oi.size.
Signed-off-by: Samuel Just <samuel.just@dreamhost.com>
|
|
|
|
| |
Signed-off-by: Greg Farnum <gregory.farnum@dreamhost.com>
|
|
|
|
|
|
|
| |
It's $conf (which is $dir/conf).
Reported-by: biyan chen <riby.chen@gmail.com>
Signed-off-by: Sage Weil <sage@newdream.net>
|
|
|
|
| |
Signed-off-by: Sage Weil <sage@newdream.net>
|
|
|
|
|
|
|
| |
Allow a pool creation if we specify an auid but are allowed to create
buckets as anybody.
Signed-off-by: Sage Weil <sage@newdream.net>
|
|
|
|
| |
Signed-off-by: Sage Weil <sage@newdream.net>
|
|
|
|
|
|
|
| |
This patch fixes the typo in the usage description to match the actual argument string.
Signed-off-by: Sam Lang <samlang@gmail.com>
Signed-off-by: Sage Weil <sage@newdream.net>
|
|
|
|
|
|
|
| |
This patchset includes minor fixes to the crushtool utility. If an invalid bucket type is speicifed on the command line, the code was iterating through bucket_types for the length of the static array, but the last entry in that array has null (0) values, which was causing a segfault. This patch just checks that bucket_types[i].name is non-null instead. Also, if the wrong bucket type or algorithm is specified, prints the usage string on exit.
Signed-off-by: Sam Lang <samlang@gmail.com>
Signed-off-by: Sage Weil <sage@newdream.net>
|
| |
|
|
|
|
|
|
|
|
| |
This code has suffered a great deal of bitrot and is superceded
by the cmds --dump-journal functionality anyway, which
is much more full-featured.
Signed-off-by: Greg Farnum <gregory.farnum@dreamhost.com>
|
|\ |
|
| |
| |
| |
| |
| |
| |
| |
| | |
pipes marked disposable must not inherit the lossy policy on reconnect.
Also, in Pipe::writer, when sent.empty() && close_on_empty, mark as
lossy to ensure that fault will close the connection.
Signed-off-by: Samuel Just <samuel.just@dreamhost.com>
|
| |
| |
| |
| |
| |
| |
| |
| | |
Somehow, in the last major change, the constraints that kept the
bencher from trying to read non-existent objects got removed. Put
a check back in the main bench loop to fix that.
Signed-off-by: Greg Farnum <gregory.farnum@dreamhost.com>
|
|\ \ |
|
| | |
| | |
| | |
| | | |
Signed-off-by: Josh Durgin <josh.durgin@dreamhost.com>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
This only affects list_collections. Previously, when using an FS that
does not support d_type, like xfs, load_pgs would fail to find any
pgs, since list_collections skipped all files.
This made clients hang because all pgs were considered non-existent by
the osd.
Reported-by: Yoshiaki Tamura <yoshi@midokura.jp>
Signed-off-by: Josh Durgin <josh.durgin@dreamhost.com>
|
| |/
| |
| |
| | |
Signed-off-by: Josh Durgin <josh.durgin@dreamhost.com>
|
| |
| |
| |
| |
| |
| |
| | |
We need to seek to the appropriate offsets on the src and destination
fd's for this to do the right thing.
Signed-off-by: Sage Weil <sage@newdream.net>
|
| |
| |
| |
| | |
Signed-off-by: Samuel Just <samuel.just@dreamhost.com>
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| | |
If srcdn is a remote dentry, we will be journaling the src inode to update
the mtime, but we need to ensure the parent dirs are in the metablob.
Fixes: #1132
Signed-off-by: Sage Weil <sage@newdream.net>
|
| |
| |
| |
| |
| |
| | |
on reread_head. Keep consistent across the two methods.
Signed-off-by: Sage Weil <sage@newdream.net>
|
| |
| |
| |
| |
| |
| |
| | |
The reread_head method needs to initialize trimming_pos (like read_head
does) or else we get confused later.
Signed-off-by: Sage Weil <sage@newdream.net>
|
| |
| |
| |
| |
| |
| | |
Use *srci tmp.
Signed-off-by: Sage Weil <sage@newdream.net>
|
| |
| |
| |
| | |
Signed-off-by: Sage Weil <sage@newdream.net>
|
| |
| |
| |
| |
| |
| |
| | |
Make sure the inode is pinned while it is on the LogSegment::renamed_files
list. Avoids a crash when an inode on that list is wrongly trimmed.
Signed-off-by: Sage Weil <sage@newdream.net>
|
| |
| |
| |
| |
| |
| |
| | |
The osd paxos machine has to be writeable before we can update it.
Fixes: #1130
Signed-off-by: Sage Weil <sage.weil@dreamhost.com>
|
|\| |
|
| |
| |
| |
| |
| |
| |
| | |
We were calling recovery_item.remove_myself() without holding the
recoveryWQ::lock. Naughty naughty!
Signed-off-by: Greg Farnum <gregory.farnum@dreamhost.com>
|
| | |
|
| | |
|
| |
| |
| |
| | |
Signed-off-by: Tommi Virtanen <tommi.virtanen@dreamhost.com>
|
| |
| |
| |
| |
| |
| | |
for statechart. Partially fixes #1124.
Signed-off-by: Sage Weil <sage@newdream.net>
|
| |
| |
| |
| | |
Signed-off-by: Sage Weil <sage@newdream.net>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
If we get heartbeat messages from old epochs from peers that are not
current, drop them and mark the connection down. Even if they are peers
we _should_ have (because we haven't gotten a notify yet to learn about
a pg we should have but don't yet) we have a newer map epoch and will learn
about them shortly, reopening the connection.
Fixes: #1107
Signed-off-by: Sage Weil <sage@newdream.net>
|
| |
| |
| |
| |
| |
| |
| |
| | |
- share the map with the cluster addr
- use the new {note,get}_peer_epoch helpers to do it sanely
- don't share if we're booting; see 818fa33a661
Signed-off-by: Sage Weil <sage@newdream.net>
|
| |
| |
| |
| | |
Signed-off-by: Sage Weil <sage.weil@dreamhost.com>
|
| |
| |
| |
| | |
Signed-off-by: Colin McCabe <colin.mccabe@dreamhost.com>
|
| |
| |
| |
| |
| |
| | |
Fixes a case where radostool crashed on an error shutdown.
Signed-off-by: Colin McCabe <colin.mccabe@dreamhost.com>
|
| |
| |
| |
| | |
Signed-off-by: Colin McCabe <colin.mccabe@dreamhost.com>
|
|\ \ |
|
| | |
| | |
| | |
| | | |
Signed-off-by: Colin McCabe <colin.mccabe@dreamhost.com>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
This lets OSDMap::create_simple() see g_conf.osd_pool_default_size when
creating the initial data, metadata, and rbd pools.
Signed-off-by: Sage Weil <sage.weil@dreamhost.com>
|
| | |
| | |
| | |
| | | |
Signed-off-by: Sage Weil <sage.weil@dreamhost.com>
|
| | |
| | |
| | |
| | | |
Signed-off-by: Sage Weil <sage.weil@dreamhost.com>
|