make parsing 8601 more flexible by not restricting the length of seconds
to 5, this allows timestamp to be specified both as ms or us. Newer
keystone backends such as fernet token backend default to microseconds
when publishing iso8601 timestamps, so this allows these timestamps to
be allowed when specifying the token expiry time.
Fixes: #12761 Reported-by: Ian Unruh <ianunruh@gmail.com> Signed-off-by: Abhishek Lekshmanan <abhishek.lekshmanan@ril.com>
xinxin shu [Thu, 13 Aug 2015 03:57:58 +0000 (11:57 +0800)]
fix print error of rados bench
Total time run: 12.279167
Total writes made: 92
Write size: 4194304
Bandwidth (MB/sec): 30
Stddev Bandwidth: 23.4
Max bandwidth (MB/sec): 64
Min bandwidth (MB/sec): 2
Average IOPS: 7
Stddev IOPS: 6
Max IOPS: 32767
Min IOPS: -1537890352
Average Latency: 2.12
Stddev Latency: 1.35
Max latency: 6.05
Min latency: 0.501
Sage Weil [Thu, 13 Aug 2015 18:49:40 +0000 (14:49 -0400)]
test/encoding/check-generated: test sorted json dumps for nondeterministic objects
Nondeterministic objects dump nondeterministically (usually due
to unordered_map or _set). Compare their sorted output. This
is a weaker test but is better than nothing.
we may create a CephContext without calling common_init_finish(), then
delete the CephContext. In this case, ceph::crypto:init() is not called,
so CephContext::~CephContext() should not call ceph::crypto::shutdown().
Fixes: #12598 Signed-off-by: Yan, Zheng <zyan@redhat.com> Reviewed-by: John Spray <john.spray@redhat.com>
Nathan Cutler [Thu, 13 Aug 2015 13:36:02 +0000 (15:36 +0200)]
ceph.spec.in: test %preun argument is zero for removal-only operations
The %preun section now contains logic for disabling and stopping all the
Ceph systemd units when the ceph package is removed. However, there is no
conditional around it, so the units are disabled and stopped on RPM upgrade
as well as removal.
Loic Dachary [Wed, 12 Aug 2015 12:59:01 +0000 (14:59 +0200)]
tests: be more generous with mon tests timeouts
Change the timeouts of the TEST_mon_add_to_single_mon tests to be 120
seconds. They have value to guard against blocking forever. The exact
timing does not matter as long as the operation completes.
When a timeout is too short, it will create false negatives when running
on slow machines. It could be argued that being too generous with
timeout in general may hide problems. But not in this specific case.
Kefu Chai [Thu, 6 Aug 2015 14:32:42 +0000 (22:32 +0800)]
doc/rados/operations/add-or-rm-mons: simplify the steps to add a mon
this change removes the step to "ceph mon add" before starting a new
monitor. because the existing leader will start an election at seeing
the MMonJoin message sent by the new joiner, after the quorum is
archieved, the monmap will be updated with the new monitor.
so, "ceph mon add" is not necessary to add a new monitor.
moreover, this command will be blocked until a new quorum is formed,
and the proposed monmap is accepted. but in case of adding a monitor
to a single monitor cluster, the leader will wait until at least two
of the monitors reply to it. apparently, this does not happen unless
the new monitor starts. so from the user's point of view, this
command hangs until timesout, if he/she does not start the mon.b
beforehand. but this is an expected behaviour.
so, to avoid this confusion and simplify the steps to add a new
monitor. we'd better simply remove this "ceph mon add" step.
Jason Dillaman [Tue, 11 Aug 2015 13:26:33 +0000 (09:26 -0400)]
librbd: prevent race condition between resize requests
It was possible that the same resize request could be sent twice
if a completed resize op started a newly created resize op while
it was also being concurrently started by another thread.
Fixes: #12664
Backport: hammer Signed-off-by: Jason Dillaman <dillaman@redhat.com>
John Spray [Fri, 17 Jul 2015 14:32:03 +0000 (15:32 +0100)]
librados: partially expose PGLS filter interface
Not bothering with this for non-namespaced object iterator
or the C interface. Expect to replace this with
the new-style pgls, so just exposing it enough for
cephfs-data-scan to touch the new osd-side pgls filtering
on forward scrub tags.
Jason Dillaman [Mon, 10 Aug 2015 23:10:19 +0000 (19:10 -0400)]
WorkQueue: add/remove_work_queue methods now thread safe
These methods were not acquiring the ThreadPool lock when
manipulating the work_queue collection. This was causing
occasional crashes within librbd when opening and closing
images.
Fixes: #12662
Backport: hammer, firefly Signed-off-by: Jason Dillaman <dillaman@redhat.com>
Otherwise, when the MonmapMonitor's PaxosService::dispatch() handles the
message, it will assert (as it should) because the op is marked as being
a monitor op. And this function should never handle monitor ops.
Jason Dillaman [Thu, 21 May 2015 18:43:20 +0000 (14:43 -0400)]
librbd: execute multiple object diffs in parallel
Issue up to 'concurrent_management_ops' list_snap ops to the
OSDs concurrently. The iterate callbacks will continue to be
serialized -- clients that wish higher throughput should avoid
blocking to maximum performance.
Fixes: #11625 Signed-off-by: Jason Dillaman <dillaman@redhat.com>
Jason Dillaman [Mon, 10 Aug 2015 13:34:42 +0000 (09:34 -0400)]
common: bit_vector extent calculation incorrect for last page
It's highly probable that the last page in the bit vector will not
be a full page size. As a result, the computed extents will extend
beyond the data portion of the bit vector, resulting in a end_of_buffer
exception.
Fixes: #12611
Backport: hammer Signed-off-by: Jason Dillaman <dillaman@redhat.com>
John Spray [Mon, 3 Aug 2015 14:47:24 +0000 (15:47 +0100)]
init-ceph.in: set executable bit
Scripts expect the generated init-ceph script
to be +x, and CMake does that if the file you
feed into it is +x. This matches what we already
do with ceph.in.
John Spray [Wed, 5 Aug 2015 12:08:21 +0000 (13:08 +0100)]
CMake: build dencoder at src/ceph-dencoder
...instead of in src/test/dencoder.
While the source lives in test/, the dencoder tool is built
and distributed as a first class binary, so it's awkward for
paths in dev/test to have it in a unique location.