The randomized write sizes of the modified rbd-mirror stress
test results in a lot of journal object with few entries.
Immediately fetch objects when performing a refetch check prior
to closing an empty object.
Signed-off-by: Jason Dillaman <dillaman@redhat.com>
It's possible that there might be additional entries to prune in
objects that haven't been prefetched yet. Keep the active tag
to allow these entries to be pruned after they have been loaded.
Signed-off-by: Jason Dillaman <dillaman@redhat.com>
Otherwise the recorded object positions might point to an older
object that doesn't contain the actual entry.
Signed-off-by: Jason Dillaman <dillaman@redhat.com>
Clear the refetch required flag while scheduling the watch
and remove the stale object after the watch completes if still
empty. Previously, it was possible for the flag to become
out-of-sync with whether or not it was actually refreshed
and pruned.
Fixes: http://tracker.ceph.com/issues/15993
Signed-off-by: Jason Dillaman <dillaman@redhat.com>
Looks like nose likes to leave references to the test instances around.
This doesn't break anything, but does cause Ioctx/Image objects to stick
around which makes debugging more complicated, as everything gets dealloced
together at the end.
Signed-off-by: Hector Martin <marcan@marcan.st>
When set bluestore_sync_wal_apply = false, the osd must be crashed.
I add some debug message in WALWQ::_dequeue():
// preserve wal ordering for this sequencer by taking the lock
/ while still holding the queue lock
- i->osr->wal_apply_lock.lock();
+ try {
+ i->osr->wal_apply_lock.lock();
+ } catch (const system_error& e) {
+ if (e.code() == std::errc::resource_deadlock_would_occur) {
+ assert(0 == "would deadlock");
+ } else
+ assert(0 == "other system_error");
+ }
return i;
}
2016-05-24 00:02:29.107165 7f0f32ea6700 -1 os/bluestore/BlueStore.h: In
function 'virtual BlueStore::TransContext* BlueStore::WALWQ::_dequeue()'
thread 7f0f32ea6700 time 2016-05-24 00:02:29.103360
os/bluestore/BlueStore.h: 489: FAILED assert(0 == "would deadlock")
ceph version 10.2.0-1232-g21c7599 (21c759936d)
1: (ceph::__ceph_assert_fail(char const*, char const*, int, char const*)+0x80) [0x560196215ac0]
2: (ThreadPool::WorkQueue<BlueStore::TransContext>::_void_dequeue()+0x234)[0x560195e618b4]
3: (ThreadPool::worker(ThreadPool::WorkThread*)+0x654) [0x560196207324]
4: (ThreadPool::WorkThread::entry()+0x10) [0x560196208d70]
5: (()+0x760a) [0x7f0f411d260a]
6: (clone()+0x6d) [0x7f0f3f17a59d]
NOTE: a copy of the executable, or `objdump -rdS <executable>` is
needed to interpret this.
This because the wron usage of std::unique_lock.
Signed-off-by: Jianpeng Ma <jianpeng.ma@intel.com>
As the commit 11cf9bbb29
make rgw_multipart_min_part_size as a config option,
we did not use RGW_MIN_MULTIPART_SIZE anymore.
Signed-off-by: Jiaying Ren <jiaying.ren@umcloud.com>
StrayManager::eval_stray() is called after Server::respond_to_request()
drops locks. So it can race with StrayManager::reintegrate_stray()
Fixes: http://tracker.ceph.com/issues/15920
Signed-off-by: Yan, Zheng <zyan@redhat.com>
BackoffThrottle: fix for freebsd and avoid spinning when full
Reviewed-by: Willem Jan Withagen <wjw@digiware.nl>
Reviewed-by: Josh Durgin <jdurgin@redhat.com>