in hope to fix the mysterious test failure where cli/crushtool/build.t
prints nothing when error message is expected.
Fixes: http://tracker.ceph.com/issues/21758
Signed-off-by: Kefu Chai <kchai@redhat.com>
1) Different filesystem will have different behavior to
allocate extents. Therefore, even if write 4000 extents,
the filesystem may not really allocate 4000 extents.
2) kstore always return [0, xxx] even if offset ~= 0. Therefore,
the whole non-zero offset FiemapHoles test should be skipped
3) enable fiemap test for filestore, bluestore, memstore again
Fixes: http://tracker.ceph.com/issues/21716
Signed-off-by: Ning Yao <yaoning@unitedstack.com>
Signed-off-by: Kefu Chai <kchai@redhat.com>
so we can have better understanding of failures like
[ RUN ] BufferList.write_fd_offset
/home/jenkins-build/build/workspace/ceph-pull-requests-arm64/src/test/bufferlist.cc:2609:
Failure
Expected: 1024 * 2 + offset
Which is: 2248
To be equal to: (unsigned)st.st_size
Which is: 0
[ FAILED ] BufferList.write_fd_offset (4 ms)
Signed-off-by: Kefu Chai <kchai@redhat.com>
os/bluestore/BlueStore: ASAP wake up _kv_finalize_thread.
Reviewed-by: xie xingguo <xie.xingguo@zte.com.cn>
Reviewed-by: Varada Kari <varada.kari@sandisk.com>
If we export a PG, it later splits, and then we try to import a
post-split portion of it, we need to generate the PastIntervals
properly (instead of crashing).
Fixes: http://tracker.ceph.com/issues/21753
Signed-off-by: Sage Weil <sage@redhat.com>
Use "union" merge to automatically resolve trivial append merge conflicts from
using ptl-tool.py.
Signed-off-by: Patrick Donnelly <pdonnell@redhat.com>
I added this originally to prevent a deadlock when reading a new-style
configuration variable from a called observer. I didn't realize at the
time that the config mutex was recursive, so this change was
superfluous.
Signed-off-by: Adam C. Emerson <aemerson@redhat.com>
This commit will allow PGScrub, PGRecovery, PGSnapTrim
to be created anywhere (e.g. TestMClockClientQueue.cc)
Signed-off-by: Myoungwon Oh <omwmw@sk.com>
this pave the road to generalize OpWQ
We're going to want to be able to queue things that are not ordered by
the PG lock. To that end, this patch genearlizes OSD::ShardedOpWQ to
use a type which can specify an ordering token and locking structure
other than a PG.
There is a lot of collateral damage which I didn't feel was worth
separating out into other commits. The code in ShardedOpWQ itself got
some superficial cleanup. Also, the item being queued has been switched
to not use a boost::variant. It was a cute way before to make the type
easily copyable, but adding more visitors for the locking support would
have been annoying. Instead, the variant is a unique_ptr to an
interface. This makes the queue item type no longer copyable, which is
just as well since we don't really want to be copying queue items anyway
(duplicates would be most likely a bug)
Signed-off-by: Samuel Just <sjust@redhat.com>
Signed-off-by: Kefu Chai <kchai@redhat.com>
Signed-off-by: Myoungwon Oh <omwmw@sk.com>
better to be specific, so we don't run into the same problem even we
are using the MSB of uint64_t for a pg state bit in future. we could,
however use uint64_t(-1) to indicate the pg_string_state()'s failure to
parse the state string, because pg_string_state() only translate a
single state a time. but it's always better to be explicit than
implicit.
Fixes: http://tracker.ceph.com/issues/21609
Signed-off-by: Kefu Chai <kchai@redhat.com>
enable the WorkQueue to support move-only template types.
Signed-off-by: Samuel Just <sjust@redhat.com>
Signed-off-by: Kefu Chai <kchai@redhat.com>
Signed-off-by: Myoungwon Oh <omwmw@sk.com>
the second param of enable_launage() is not used, we should call it
multiple times to enable more than one language. switch to project()
command for simplicity.
Signed-off-by: Kefu Chai <kchai@redhat.com>
session opened by Server::prepare_force_open_sessions() has no
client metadata.
Fixes: http://tracker.ceph.com/issues/21746
Signed-off-by: "Yan, Zheng" <zyan@redhat.com>
null instance and olh share rados object. Null instance using the rados object mtime as its mtime. When olh updated, the rados object mtime will change.
Thus the null instance will be incorrect. When list objects in bucket, the mtime is correct, down the null instance the last modified time is incorrect.
So when update olh, using the previous mtime, thus the null instance mtime will be correct.
Fixes: http://tracker.ceph.com/issues/21743
Signed-off-by: Shasha Lu <lu.shasha@eisoo.com>
we can not assume that the the `rep` type is identical to `time_t` and
`susecond_t`, on osx they are `int`, not `int64_t`. so cast they as
necessary.
this fixes the error and warning of
LogClock.h:112:7: error: non-constant-expression cannot be narrowed from type 'rep' (aka 'long long') to '__darwin_suseconds_t' (aka 'int') in initializer list [-Wc++11-narrowing]
std::chrono::duration_cast<std::chrono::microseconds>(
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/kefu/dev/ceph/src/log/LogClock.h:112:7: note: insert an explicit cast to silence this issue
std::chrono::duration_cast<std::chrono::microseconds>(
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
LogClock.h:139:46: warning: format specifies type 'long' but the argument has type 'int' [-Wformat]
bdt.tm_hour, bdt.tm_min, bdt.tm_sec, tv.tv_usec / 1000);
^~~~~~~~~~~~~~~~~
Signed-off-by: Kefu Chai <kchai@redhat.com>