Commit Graph

26055 Commits

Author SHA1 Message Date
Sage Weil
eb91f41042 messages/MOSDMarkMeDown: fix uninit field
Fixes valgrind warning:
==14803== Use of uninitialised value of size 8
==14803==    at 0x12E7614: sctp_crc32c_sb8_64_bit (sctp_crc32.c:567)
==14803==    by 0x12E76F8: update_crc32 (sctp_crc32.c:609)
==14803==    by 0x12E7720: ceph_crc32c_le (sctp_crc32.c:733)
==14803==    by 0x105085F: ceph::buffer::list::crc32c(unsigned int) (buffer.h:427)
==14803==    by 0x115D7B2: Message::calc_front_crc() (Message.h:441)
==14803==    by 0x1159BB0: Message::encode(unsigned long, bool) (Message.cc:170)
==14803==    by 0x1323934: Pipe::writer() (Pipe.cc:1524)
==14803==    by 0x13293D9: Pipe::Writer::entry() (Pipe.h:59)
==14803==    by 0x120A398: Thread::_entry_func(void*) (Thread.cc:41)
==14803==    by 0x503BE99: start_thread (pthread_create.c:308)
==14803==    by 0x6C6E4BC: clone (clone.S:112)

Backport: cuttlefish
Signed-off-by: Sage Weil <sage@inktank.com>
2013-05-22 14:29:37 -07:00
Sage Weil
b0d64de484 Merge pull request #316 from ceph/wip-sysvinit
Reviewed-by: Dan Mick <dan.mick@inktank.com>
2013-05-22 13:25:42 -07:00
Sage Weil
d81d0ea5c4 sysvinit: fix osd weight calculation on remote hosts
We need to do df on the remote host, not locally.

Simlarly, the ceph command uses the osd key, which exists remotely; run it there.

Signed-off-by: Sage Weil <sage@inktank.com>
2013-05-22 12:39:11 -07:00
Sage Weil
caa15a34cb sysvinit: use known hostname $host instead of (incorrectly) recalculating
We would need to do hostname -s on the remote node, not the local one.
But we already have $host; use it!

Reported-by: Xiaoxi Chen <xiaoxi.chen@intel.com>
Signed-off-by: Sage Weil <sage@inktank.com>
2013-05-22 12:39:10 -07:00
Samuel Just
0289c445be OSDMonitor: skip new pools in update_pools_status() and get_pools_health()
New pools won't be full.  mon->pgmon()->pg_map.pg_pool_sum[poolid] will
implicitly create an entry for poolid causing register_new_pgs() to assume that
the newly created pgs in the new pool are in fact a result of a split
preventing MOSDPGCreate messages from being sent out.

Fixes: #4813
Backport: cuttlefish
Signed-off-by: Samuel Just <sam.just@inktank.com>
Reviewed-by: Sage Weil <sage@inktank.com>
2013-05-22 10:23:25 -07:00
Sage Weil
e9d20ffe19 mon: implement --extract-monmap <filename>
This will make for a simpler process for
  http://ceph.com/docs/master/rados/operations/add-or-rm-mons/#removing-monitors-from-an-unhealthy-cluster

Signed-off-by: Sage Weil <sage@inktank.com>
(cherry picked from commit c0268e2749)
2013-05-21 15:14:47 -07:00
Yehuda Sadeh
d48f1edb07 rgw: protect ops log socket formatter
Fixes: #4905
Ops log (through the unix domain socket) uses a formatter, which wasn't
protected.

Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
2013-05-21 13:05:22 -07:00
Sage Weil
1c7b9c3505 os/LevelDBStore: fix compression selection
We were always disabling compression.

Fixes: #5131
Reported-by: Sylvain Munaut <s.munaut@whatever-company.com>
Signed-off-by: Sage Weil <sage@inktank.com>
2013-05-21 08:16:56 -07:00
Sage Weil
2f193fb931 debian: stop sysvinit on ceph.prerm
Signed-off-by: Sage Weil <sage@inktank.com>
2013-05-20 14:39:16 -07:00
Mike Kelly
d05a4e5574 ceph df: fix si units for 'global' stats
si_t expects bytes, but it was being given kilobytes.

Signed-off-by: Mike Kelly <pioto@pioto.org>
(cherry picked from commit 0c2b738d8d)
2013-05-20 09:06:09 -07:00
Sage Weil
d0a5d3a7f4 Merge pull request #295 from ceph/wip-5077
Reviewed-by: Joao Luis <joao.luis@inktank.com>
2013-05-17 09:26:25 -07:00
Sage Weil
c80c6a032c sysvinit: fix enumeration of local daemons when specifying type only
- prepend $local to the $allconf list at the top
- remove $local special case for all case
- fix the type prefix checks to explicitly check for prefixes

Fugly bash, but works!

Backport: cuttlefish, bobtail
Signed-off-by: Sage Weil <sage@inktank.com>
Reviewed-by: Dan Mick <dan.mick@inktank.com>
2013-05-16 20:39:32 -07:00
Sage Weil
d8d7113c35 udev: install disk/by-partuuid rules
Wheezy's udev (175-7.2) has broken rules for the /dev/disk/by-partuuid/
symlinks that ceph-disk relies on.  Install parallel rules that work.  On
new udev, this is harmless; old older udev, this will make life better.

Fixes: #4865
Backport: cuttlefish
Signed-off-by: Sage Weil <sage@inktank.com>
2013-05-16 18:40:29 -07:00
Sage Weil
65072f2e43 mon: clear pg delta after some period
If we have not pg_map updates, the delta doesn't update, and can get stuck
with the velocity right before activity stopped.  This is confusing, and
can cause incorrect health warnings about in-progress recovery.

To fix this, zero the delta if there is no activity for
'mon delta reset interval' seconds.

Fixes: #5077
Signed-off-by: Sage Weil <sage@inktank.com>
2013-05-16 17:58:48 -07:00
Samuel Just
9b9d322c20 test_filestore_idempotent_sequence: unmount prior to deleting store
FileStoreDiff umounts the stores in its destructor.

Also, DeterministicOpSequence handles deletes its passed
object store.

Fixes: #5076
Signed-off-by: Samuel Just <sam.just@inktank.com>
Reviewed-by: David Zafman <david.zafman@inktank.com>
2013-05-16 15:46:11 -07:00
Samuel Just
5a27e85cf1 Revert "test_filejournal.cc: cleanup memory in destructor"
The finish() method for Contexts calls delete this.

This reverts commit 36028916c4.

Fixes: #5075
Signed-off-by: Samuel Just <sam.just@inktank.com>
Reviewed-by: David Zafman <david.zafman@inktank.com>
2013-05-16 15:45:42 -07:00
Sage Weil
604c83ff18 debian: make radosgw require matching version of librados2
...indirectly via ceph-common.  We get bad behavior when they diverge, I
think because of libcommon.la being linked both statically and dynamically.

Fixes: #4997
Backport: cuttlefish, bobtail
Signed-off-by: Sage Weil <sage@inktank.com>
Reviewed-by: Gary Lowell <gary.lowell@inktank.com>
2013-05-16 13:17:45 -07:00
Samuel Just
eaf3abf3f9 FileJournal: adjust write_pos prior to unlocking write_lock
In committed_thru, we use write_pos to reset the header.start value in cases
where seq is past the end of our journalq.  It is therefore important that the
journalq be updated atomically with write_pos (that is, under the write_lock).

The call to align_bl() is moved into do_write in order to ensure that write_pos
is adjusted correctly prior to write_bl().

Also, we adjust pos at the end of write_bl() such that pos \in [get_top(),
header.max_size) after write_bl().

Fixes: #5020
Signed-off-by: Samuel Just <sam.just@inktank.com>
Reviewed-by: Sage Weil <sage@inktank.com>
2013-05-16 11:14:37 -07:00
Sage Weil
64871e0931 mds: avoid assert after suicide()
Fixes: #5079
Signed-off-by: Sage Weil <sage@inktank.com>
2013-05-16 09:42:29 -07:00
Gary Lowell
2ba167be0e Merge branch 'next' 2013-05-14 15:38:24 -07:00
athanatos
5ff703d60a Merge pull request #283 from dachary/wip-5058
internal documentation proofreading

Reviewed-by: Sam Just <sam.just@inktank.com>
2013-05-14 15:28:45 -07:00
Sage Weil
52b0438c66 doc/rados/configuration: fix [mon] osd min down report* config docs
Fix other osd -> mon section name, and note the old config value name prior
to v0.62.

Fixes: #5044.
Signed-off-by: Sage Weil <sage@inktank.com>
2013-05-14 14:02:27 -07:00
Loic Dachary
2a4425af0e reflect recent changes in the pg deletion logic
No need to wait on DeletingStateRef for flush d3dd99b725
Fix typos

http://tracker.ceph.com/issues/5058 refs #5058

Signed-off-by: Loic Dachary <loic@dachary.org>
2013-05-14 22:46:37 +02:00
Loic Dachary
1c53991e4c fix typos and add hyperlink to peering
s/;/:/
s/up_acting_affected/acting_up_affected/
Add relative link to ../../peering

http://tracker.ceph.com/issues/5058 refs #5058

Signed-off-by: Loic Dachary <loic@dachary.org>
2013-05-14 22:46:37 +02:00
Loic Dachary
b7d4012c06 typo s/come/some/
http://tracker.ceph.com/issues/5058 refs #5058

Signed-off-by: Loic Dachary <loic@dachary.org>
2013-05-14 22:46:36 +02:00
Loic Dachary
dbddffef06 update op added to a waiting queue or discarded
The decision to discard an op happens either in OSD or in PG.
The operation queue goes to a single OpWQ object if waiting_map does not impose a delay op_queue.
The decision to add an op to a waiting queue regardless of its type is updated.
The decision to add a CEPH_MSG_OSD_OP to a waiting queue is described in full.

http://tracker.ceph.com/issues/5058 refs #5058

Signed-off-by: Loic Dachary <loic@dachary.org>
2013-05-14 22:44:58 +02:00
Sage Weil
afeb8f2d52 md/Sever.cc: fix straydn assert
From fb222a0a1c, we only know straydn is
non-null if oldin is non-null.

Signed-off-by: Sage Weil <sage@inktank.com>
2013-05-14 10:31:27 -07:00
Sage Weil
29d8ec4ecd Merge pull request #285 from dalgaaf/wip-da-CID-fixes-2-v3
Reviewed-by: Sage Weil <sage@inktank.com>
2013-05-14 10:30:20 -07:00
Danny Al-Gaaf
e69257eaee rgw/rgw_user.cc: fix possible NULL pointer dereference
CID 1019559 (#1 of 1): Dereference after null check (FORWARD_NULL)
  var_deref_model: Passing null pointer "usr" to function
  "RGWUser::get_store()", which dereferences it.

Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
2013-05-14 19:20:29 +02:00
Danny Al-Gaaf
d69290219d mds/Server.cc: fix possible NULL pointer dereference
Assert if straydn is NULL.

CID 1019554 (#2 of 2): Dereference after null check (FORWARD_NULL)
  var_deref_model: Passing null pointer "straydn" to function
  "MDSCacheObject::is_auth() const", which dereferences it.

Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
2013-05-14 19:15:23 +02:00
Danny Al-Gaaf
fb222a0a1c mds/Server.cc: fix possible NULL pointer dereference
Assert of straydn is NULL here.

CID 1019558 (#1 of 1): Dereference after null check (FORWARD_NULL)
  var_deref_model: Passing null pointer "straydn" to function
  "CDentry::get_dir() const", which dereferences it.

Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
2013-05-14 19:07:29 +02:00
Danny Al-Gaaf
c87788b69b mds/Server.cc: fix possible NULL pointer dereference
Assert if destdn == NULL.

CID 1019557 (#1 of 1): Dereference after null check (FORWARD_NULL)
  var_deref_model: Passing null pointer "destdn" to function
  "CDentry::get_dir() const", which dereferences it.

Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
2013-05-14 19:02:20 +02:00
Danny Al-Gaaf
088455f85e librados/AioCompletionImpl.h: add missing Lock
Add missing Lock around code changing AioCompletionImpl::rval/ack and safe
in C_AioCompleteAndSafe::finish().

CID 1019565 (#1 of 1): Data race condition (MISSING_LOCK)
  missing_lock: Accessing "this->c->rval" ("_ZN8librados17AioCompletionImplE.rval")
  requires the "Mutex._m" lock.

Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
2013-05-14 18:50:09 +02:00
Danny Al-Gaaf
8a52350dd8 src/dupstore.cc: check return value of list_collections()
CID 1019545 (#1 of 1): Unchecked return value (CHECKED_RETURN)
  check_return: Calling function "ObjectStore::list_collections
  (std::vector<coll_t, std::allocator<coll_t> > &)" without
  checking return value (as is done elsewhere 5 out of 6 times).

Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
2013-05-14 18:44:06 +02:00
Danny Al-Gaaf
70a4a971f4 mds/Server.cc: fix possible NULL pointer dereference
CID 1019555 (#1 of 1): Dereference after null check (FORWARD_NULL)
  var_deref_model: Passing null pointer "in" to function
  "Server::_need_force_journal(CInode *, bool)", which dereferences it.

Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
2013-05-14 18:43:37 +02:00
Danny Al-Gaaf
21489acffe src/rbd.cc: use 64-bits to shift 'order'
CID 1019568 (#1 of 1): Unintentional integer overflow (OVERFLOW_BEFORE_WIDEN)
  overflow_before_widen: Potentially overflowing expression "1 << *order" with
  type "int" (32 bits, signed) is evaluated using 32-bit arithmetic before being
  used in a context which expects an expression of type "uint64_t" (64 bits,
  unsigned). To avoid overflow, cast the left operand to "uint64_t" before
  performing the left shift.

Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
2013-05-14 18:39:32 +02:00
Danny Al-Gaaf
3e44682519 mon/Monitor.cc: init 'timecheck_acks' with '0' in constructor
CID 1019623 (#1 of 1): Uninitialized scalar field (UNINIT_CTOR)
  uninit_member: Non-static class member "timecheck_acks" is not
  initialized in this constructor nor in any functions that it calls.

Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
2013-05-14 18:39:31 +02:00
Danny Al-Gaaf
528ec3533a mon/Monitor.h: init 'crc' in constructor with '0'
CID 1019624 (#1 of 1): Uninitialized scalar field (UNINIT_CTOR)
  uninit_member: Non-static class member "crc" is not initialized
  in this constructor nor in any functions that it calls.

Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
2013-05-14 18:39:31 +02:00
Danny Al-Gaaf
988363094a mon/QuorumService.h: remove unused QuorumService::flags
CID 1019626 (#1 of 1): Uninitialized scalar field (UNINIT_CTOR)
  uninit_member: Non-static class member "flags" is not initialized
  in this constructor nor in any functions that it calls.

Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
2013-05-14 18:39:31 +02:00
Danny Al-Gaaf
8df55e0a8b test/test_cors.cc: initialize key_type in constructor
CID 1019635 (#1 of 1): Uninitialized pointer field (UNINIT_CTOR)
  uninit_member: Non-static class member "kt" is not initialized in
  this constructor nor in any functions that it calls.

Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
2013-05-14 18:39:31 +02:00
Danny Al-Gaaf
eac545e12c tools/ceph.cc: cleanup memory allocated for 'buf'
CID 717123 (#1-2 of 2): Resource leak (RESOURCE_LEAK)
  leaked_storage: Variable "buf" going out of scope leaks the storage
  it points to.

Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
2013-05-14 18:39:31 +02:00
Danny Al-Gaaf
c3c140b38c tools/ceph.cc: close file descriptor in error case
CID 717122 (#1 of 1): Resource leak (RESOURCE_LEAK)
  leaked_handle: Handle variable "fd" going out of scope leaks
  the handle.

Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
2013-05-14 18:39:31 +02:00
Danny Al-Gaaf
043ea2ce9b tools/ceph.cc: close file descriptor in error case
CID 717121 (#1 of 1): Resource leak (RESOURCE_LEAK)
  leaked_handle: Handle variable "fd" going out of scope leaks the handle.

Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
2013-05-14 18:39:31 +02:00
Danny Al-Gaaf
36028916c4 test_filejournal.cc: cleanup memory in destructor
CID 716885 (#1 of 1): Resource leak in object (CTOR_DTOR_LEAK)
  alloc_new: Allocating memory by calling "new C_SafeCond(&this->lock,
    &this->cond, &this->done, NULL)".
  ctor_dtor_leak: The constructor allocates field "c" of "C_Sync" but
    the destructor and whatever functions it calls do not free it.

Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
2013-05-14 18:39:30 +02:00
Danny Al-Gaaf
7ea44ee06e librbd/test_librbd.cc: free memory in test_list_children()
CID 719581 (#7 of 7): Resource leak (RESOURCE_LEAK)
CID 719581 (#6 of 7): Resource leak (RESOURCE_LEAK)
  leaked_storage: Variable "pools" going out of scope leaks the
  storage it points to.
CID 719582 (#6-7 of 7): Resource leak (RESOURCE_LEAK)
  leaked_storage: Variable "children" going out of scope leaks
  the storage it points to.

Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
2013-05-14 18:39:30 +02:00
Danny Al-Gaaf
3c285c44bd scratchtool.c: cleanup rados_t on error
Make sure rados_shutdown() get called also in error case.

CID 717106 (#1 of 1): Resource leak (RESOURCE_LEAK)
  leaked_storage: Variable "cl" going out of scope leaks the
  storage it points to.

Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
2013-05-14 18:39:30 +02:00
Danny Al-Gaaf
cab8e9bfcd test/kv_store_bench.cc: fix resource leak
CID 727984 (#5 of 5): Resource leak (RESOURCE_LEAK)
  leaked_storage: Variable "cb_args" going out of scope leaks the storage
  it points to.

Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
2013-05-14 18:39:30 +02:00
Danny Al-Gaaf
d8cb7dfc22 filestore/test_idempotent_sequence.cc: fix FileStore leaks
CID 717107 (#1 of 1): Resource leak (RESOURCE_LEAK)
  leaked_storage: Variable "store" going out of scope leaks the
  storage it points to.

Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
2013-05-14 18:39:30 +02:00
Danny Al-Gaaf
349cfb41d0 ceph-filestore-dump.cc: cleanup on error case
CID 1019589 (#1 of 1): Resource leak (RESOURCE_LEAK)
  leaked_storage: Variable "t" going out of scope leaks the
  storage it points to.

Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
2013-05-14 18:39:30 +02:00
Danny Al-Gaaf
df4c099af4 ceph-filestore-dump.cc: cleanup resource in error case
CID 1019590 (#1 of 1): Resource leak (RESOURCE_LEAK):
 leaked_storage: Variable "rmt" going out of scope leaks the
 storage it points to.

Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
2013-05-14 18:39:30 +02:00