summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* librados: add explicit remove_expiration() call to libradoshistoric/wip-objs-expireYehuda Sadeh2012-01-314-4/+43
| | | | | | also, time is converted to utc. Signed-off-by: Yehuda Sadeh <yehuda@hq.newdream.net>
* rados tool: add expire/unexpire commandsYehuda Sadeh2012-01-311-1/+34
| | | | | | | expire sets in how many seconds (in the future) object may be expired. Unexpire removes the expiration that was set on the object. Signed-off-by: Yehuda Sadeh <yehuda@hq.newdream.net>
* librados: define api for object expirationYehuda Sadeh2012-01-313-0/+67
| | | | | | added new set_expiration call Signed-off-by: Yehuda Sadeh <yehuda@hq.newdream.net>
* objecter: define op for object expirationYehuda Sadeh2012-01-311-0/+12
| | | | | | part of the new object expiration operation. Signed-off-by: Yehuda Sadeh <yehuda@hq.newdream.net>
* osd: handle set-expire opYehuda Sadeh2012-01-313-0/+12
| | | | | | A new osd op to set expiration time on an object Signed-off-by: Yehuda Sadeh <yehuda@hq.newdream.net>
* rgw: should remove bucket dir instead of sending intentYehuda Sadeh2012-01-303-19/+28
| | | | | | that was really useless, and also bucket cleanup was broken anyway. Signed-off-by: Yehuda Sadeh <yehuda@hq.newdream.net>
* librados: fix a leakYehuda Sadeh2012-01-301-0/+2
| | | | | | watch notification message was missing a ->put() Signed-off-by: Yehuda Sadeh <yehuda.sadeh@dreamhost.com>
* osd: disable clone overlap for push/pullSage Weil2012-01-302-0/+6
| | | | | | | | | | | | | There is a bug in the push/pull code. Disable the recovery smarts by default until we fix #2002. There is currently a race (in the callers) where: - an adjacent clone is missing - we (calculate some clone overlap? and) start pulling - we get adjacent clone - we get push, calc a different overlap, and then get confused. Signed-off-by: Sage Weil <sage@newdream.net>
* Merge remote branch 'gh/wip-warnings'Sage Weil2012-01-306-26/+26
|\
| * qa: encoding: silence warningSage Weil2012-01-291-1/+1
| | | | | | | | | | | | | | | | | | This is cheating, but we always use this class with int types, so it makes this go away: warning: test/encoding.cc:79:20: ‘*((void*)(& tu)+4).ConstructorCounter::data’ may be used uninitialized in this function [-Wuninitialized] Signed-off-by: Sage Weil <sage.weil@dreamhost.com>
| * qa: test/gather fix warningSage Weil2012-01-291-1/+1
| | | | | | | | | | | | warning: test/gather.cc:29:222: passing NULL to non-pointer argument 3 of ‘static testing::AssertionResult testing::internal::EqHelper::Compare(const char*, const char*, const T1&, T2*) [with T1 = long int, T2 = C_Gather]’ [-Wconversion-null] Signed-off-by: Sage Weil <sage.weil@dreamhost.com>
| * qa: test/rados-api/list fix warningSage Weil2012-01-291-1/+1
| | | | | | | | | | | | warning: test/rados-api/list.cc:43:156: converting ‘false’ to pointer type for argument 1 of ‘char testing::internal::IsNullLiteralHelper(testing::internal::Secret*)’ [-Wconversion-null] Signed-off-by: Sage Weil <sage.weil@dreamhost.com>
| * test_ipaddr: reverse ASSERT_EQ orderSage Weil2012-01-291-20/+20
| | | | | | | | | | | | | | | | Make these warnings go away: warning: test/test_ipaddr.cc:217:156: converting ‘false’ to pointer type for argument 1 of ‘char testing::internal::IsNullLiteralHelper(testing::internal::Secret*)’ [-Wconversion-null] Signed-off-by: Sage Weil <sage.weil@dreamhost.com>
| * osd: remove unused varSage Weil2012-01-291-1/+0
| | | | | | | | | | | | warning: osd/PG.cc:1331:20: variable 'plu' set but not used [-Wunused-but-set-variable] Signed-off-by: Sage Weil <sage.weil@dreamhost.com>
| * admin_socket: fix uninit warningSage Weil2012-01-291-2/+3
| | | | | | | | | | | | warning: common/admin_socket_client.cc:166:19: 'socket_fd' may be used uninitialized in this function [-Wuninitialized] Signed-off-by: Sage Weil <sage.weil@dreamhost.com>
* | mon: make 'osd [out|in|down]' succeed if already whateverSage Weil2012-01-301-0/+3
|/ | | | | | | If we want something out and it is already out, succeed. This makes the client command succeed if there is a transient error and it gets resent. Signed-off-by: Sage Weil <sage@newdream.net>
* mon: trim old auth statesSage Weil2012-01-291-0/+5
| | | | | | | | | These aren't exposed outside the monitor, so we really only keep them around to assist in mon recovery. Give ourselves a healthy margin over the max join drift for that. Fixes: #2000 Signed-off-by: Sage Weil <sage.weil@dreamhost.com>
* filestore: fix rollback when current/ missing entirelySage Weil2012-01-291-1/+1
| | | | | | | | | | | This can happen when we are starting, rolling back, remove current/, and then fail before we snapshot a snap_ into place. Most of the logic was already in place for this; we tried to fix it in cd2dedd7d190a43a6be50a7f18849fe0123c72bc but missed this piece. Fixes: #1999 Signed-off-by: Sage Weil <sage@newdream.net>
* osd: reset pgstats timer when we reopen monitor sessionSage Weil2012-01-281-1/+2
| | | | | | | Otherwise we'll reopen every second from here on out, without giving the new session a chance to start up and do it's thing. Signed-off-by: Sage Weil <sage@newdream.net>
* clock: ignore clock_offset if cct is NULLSage Weil2012-01-281-2/+4
| | | | | | This is helpful e.g. from assert. Signed-off-by: Sage Weil <sage@newdream.net>
* client: do not send release to down mdsSage Weil2012-01-281-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We can have a session with state where the mds is not up; don't blindly send a message or we can get ./mds/MDSMap.h: In function 'const entity_inst_t MDSMap::get_inst(int)', in thread '0x7f092aad1910' ./mds/MDSMap.h: 465: FAILED assert(up.count(m)) ceph version 0.35-6-g6eb8862 (commit:6eb8862e91d142451e256aaa02b34c81a4f21dea) 1: (ceph::__ceph_assert_fail(char const*, char const*, int, char const*)+0x70) [0x71f11a] 2: (MDSMap::get_inst(int)+0x4b) [0x6dc191] 3: (Client::flush_cap_releases()+0x94) [0x677e60] 4: (Client::tick()+0x1f0) [0x690adc] 5: (C_C_Tick::finish(int)+0x1c) [0x6f3fbe] 6: (SafeTimer::timer_thread()+0x2c5) [0x6fbfe5] 7: (SafeTimerThread::entry()+0x19) [0x6fe399] 8: (Thread::_entry_func(void*)+0x20) [0x72e944] 9: /lib/libpthread.so.0 [0x7f092dea573a] 10: (clone()+0x6d) [0x7f092cba169d] with a map like $ ./ceph mds dump 85 2012-01-28 09:37:19.251946 mon <- [mds,dump,85] 2012-01-28 09:37:19.252618 mon.1 -> 'dumped mdsmap epoch 85' (0) epoch 85 flags 0 created 2012-01-28 09:24:42.411202 modified 2012-01-28 09:28:45.093301 tableserver 0 root 0 session_timeout 60 session_autoclose 300 last_failure 0 last_failure_osd_epoch 18 compat compat={},rocompat={},incompat={1=base v0.20,2=client writeable ranges,3=default file layouts on dirs,4=dir inode in separate object} max_mds 1 in 0 up {} failed 0 stopped data_pools [0] metadata_pool 1 Signed-off-by: Sage Weil <sage.weil@dreamhost.com>
* Merge branch 'stable'Sage Weil2012-01-282-1/+7
|\
| * v0.41v0.41Sage Weil2012-01-272-1/+7
| |
* | signal: use _exit() on SIGTERMSage Weil2012-01-281-1/+1
| | | | | | | | | | | | | | | | No need to call onexit handlers, static dtors, whatever. This may help with #1996 and #1549. Signed-off-by: Sage Weil <sage.weil@dreamhost.com>
* | test: add script for checking admin socket 'objecter_requests' outputJosh Durgin2012-01-271-0/+60
| | | | | | | | | | | | | | Just a couple internal consistency checks for now. More specific ones would depend on workload. Signed-off-by: Josh Durgin <josh.durgin@dreamhost.com>
* | objecter: add an admin socket command to get in-flight requestsJosh Durgin2012-01-272-0/+182
| | | | | | | | | | Fixes: #1881 Signed-off-by: Josh Durgin <josh.durgin@dreamhost.com>
* | admin socket: increase debug level for successful requestsJosh Durgin2012-01-271-2/+2
| | | | | | | | Signed-off-by: Josh Durgin <josh.durgin@dreamhost.com>
* | admin socket: add include guardJosh Durgin2012-01-271-1/+4
| | | | | | | | Signed-off-by: Josh Durgin <josh.durgin@dreamhost.com>
* | CephContext: add method for retrieving admin socketJosh Durgin2012-01-272-2/+15
| | | | | | | | | | | | | | This is needed to allow higher layers in the stack to add admin socket commands. Signed-off-by: Josh Durgin <josh.durgin@dreamhost.com>
* | Merge branch 'wip-pg-stale'Sage Weil2012-01-274-1/+72
|\ \ | |/ |/|
| * mon: stale pgs -> HEALTH_WARNSage Weil2012-01-271-0/+2
| | | | | | | | Signed-off-by: Sage Weil <sage.weil@dreamhost.com>
| * mon: mark pgs stale in pg_map if primary osd is downSage Weil2012-01-272-1/+67
| | | | | | | | | | | | | | | | | | This alerts the administrator when all OSDs for a PG have failed and the monitor doesn't receive any further updates. Otherwise we may continue to think a pg is active+clean when it is in fact offline. Fixes: #1993 Signed-off-by: Sage Weil <sage.weil@dreamhost.com>
| * osd: add STALE pg state bitSage Weil2012-01-272-0/+3
|/ | | | Signed-off-by: Sage Weil <sage.weil@dreamhost.com>
* objector: document Objecter::init_ops()Sage Weil2012-01-271-1/+10
| | | | Signed-off-by: Sage Weil <sage.weil@dreamhost.com>
* objecter: fix out_* initializationSage Weil2012-01-271-0/+10
| | | | | | | This looks more like the real cause for #1986. Op ctor gets a vector of ops but out_* aren't initialized to match. Signed-off-by: Sage Weil <sage.weil@dreamhost.com>
* filestore: dump offending transaction on any errorSage Weil2012-01-271-33/+45
| | | | | | | | | Clean this code up to explicitly whitelist what is ok so that the flow is less annoying to follow/maintain, and so that we dump the transaction contents on whitelisted errors. Signed-off-by: Sage Weil <sage@newdream.net> Reviewed-by: Josh Durgin <josh.durgin@dreamhost.com>
* objecter: warn when OSD returns mismatched op vectorSage Weil2012-01-271-0/+6
| | | | | | | The osd shouldn't do this (even though we should tolerate it). Signed-off-by: Sage Weil <sage@newdream.net> Reviewed-by: Greg Farnum <gregory.farnum@dreamhost.com>
* objecter: fix bounds checking on op reply demuxingSage Weil2012-01-271-22/+23
| | | | | | | | | | | | | We can't assume that the size of out_ops (from the reply) matches the op->out_* vectors from our request state. In particular, the out_ops might be shorter than what we sent the OSD if the OSD was sloppy. Check them. We can assume that op->ops and op->out_* all match; assert as much in op_submit(). Fixes: #1986 Signed-off-by: Sage Weil <sage.weil@dreamhost.com> Reviewed-by: Greg Farnum <gregory.farnum@dreamhost.com>
* mds: remove test assertSage Weil2012-01-271-1/+0
| | | | | | Grr! Signed-off-by: Sage Weil <sage@newdream.net>
* assert: include timestampSage Weil2012-01-272-2/+8
| | | | | | Also drop quotes around thread id. Signed-off-by: Sage Weil <sage.weil@dreamhost.com>
* filestore: fix typoSage Weil2012-01-251-2/+2
| | | | | | Grr Signed-off-by: Sage Weil <sage.weil@dreamhost.com>
* Merge branch 'wip-kb'Sage Weil2012-01-259-46/+22
|\ | | | | | | Reviewed-by: Samuel Just <samuel.just@dreamhost.com>
| * mon: num_kb -> num_bytes in cluster perfcountersSage Weil2012-01-253-3/+3
| | | | | | | | Signed-off-by: Sage Weil <sage.weil@dreamhost.com>
| * osd: remove num_kb from object_stat_sum_t statsSage Weil2012-01-257-44/+20
| | | | | | | | | | | | | | | | | | | | | | | | | | This is redundant--we can just use num_bytes. If we're worried about the per-object overhead or rounding, we can factor in some overhead based on num_objects. And, the kb accounting has a bug (#1988). Avoid changing the encoding at all for now. Next time the encoding changes we'll drop the old field. Signed-off-by: Sage Weil <sage.weil@dreamhost.com>
* | filestore: zero btrfs vol_args prior to ioctlSage Weil2012-01-251-1/+8
| | | | | | | | | | | | | | | | | | Just to be paranoid. Nothing we haven't set *should* affect the ABI, but... Always do this immediately after declaration so that we catch everything. Signed-off-by: Sage Weil <sage.weil@dreamhost.com>
* | Merge remote branch 'upstream/wip-osd-clone-obc'Samuel Just2012-01-252-12/+21
|\ \ | |/ |/|
| * osd: track obc for clone from log replaySage Weil2012-01-242-12/+21
| | | | | | | | | | | | | | | | We need to keep an in-memory obc to track the state of the in-flight io to disk. This is analogous to when an object is pushed + written, and we can share the same completion function. Signed-off-by: Sage Weil <sage@newdream.net>
* | osd: improve object context debug outputSage Weil2012-01-251-3/+3
|/ | | | | | Include pointer. This may help with #1979. Signed-off-by: Sage Weil <sage@newdream.net>
* osd: set object_info_t::oid properly when recovering clonesSage Weil2012-01-241-0/+1
| | | | | | | I saw a case (#1973) where the clone had the oid set to the head. That is clearly wrong. Not sure what damage this caused. Signed-off-by: Sage Weil <sage@newdream.net>
* Merge remote branch 'gh/wip-filestore-errors'Sage Weil2012-01-241-88/+101
|\