]> git.apps.os.sepia.ceph.com Git - ceph.git/log
ceph.git
15 years agokclient: fail con->ops->get() if ref count is zero, and avoid requeueing work
Sage Weil [Thu, 27 Aug 2009 16:14:15 +0000 (09:14 -0700)]
kclient: fail con->ops->get() if ref count is zero, and avoid requeueing work

This fixes a bug where a socket status change races with con_destroy:

ref 1 -> 0
con_destroy()
sock state change, requeue
destroy socket
kfree(con)
...do work and crash...

15 years agokclient: handle osd resets, timeouts, etc.
Sage Weil [Thu, 27 Aug 2009 00:57:42 +0000 (17:57 -0700)]
kclient: handle osd resets, timeouts, etc.

15 years agokclient: remove connection tracking from msgr
Sage Weil [Thu, 27 Aug 2009 00:30:54 +0000 (17:30 -0700)]
kclient: remove connection tracking from msgr

15 years agokclient: use a per-connection ops vector
Sage Weil [Thu, 27 Aug 2009 00:18:47 +0000 (17:18 -0700)]
kclient: use a per-connection ops vector

15 years agokclient: use per-connectino peer_reset callback
Sage Weil [Wed, 26 Aug 2009 22:49:42 +0000 (15:49 -0700)]
kclient: use per-connectino peer_reset callback

15 years agokclient: use connection api for osdc (almost, no kick or timeout)
Sage Weil [Wed, 26 Aug 2009 22:39:20 +0000 (15:39 -0700)]
kclient: use connection api for osdc (almost, no kick or timeout)

15 years agomsgr: handle keepalive
Sage Weil [Wed, 26 Aug 2009 22:38:27 +0000 (15:38 -0700)]
msgr: handle keepalive

15 years agokclient: use connection msgr api for mon client
Sage Weil [Wed, 26 Aug 2009 18:51:58 +0000 (11:51 -0700)]
kclient: use connection msgr api for mon client

15 years agokclient: use connection msgr api for mds
Sage Weil [Wed, 26 Aug 2009 18:02:31 +0000 (11:02 -0700)]
kclient: use connection msgr api for mds

15 years agokclient: add explicit connection-based api
Sage Weil [Wed, 26 Aug 2009 18:02:13 +0000 (11:02 -0700)]
kclient: add explicit connection-based api

15 years agomsgr: fix policy setting
Sage Weil [Wed, 26 Aug 2009 17:42:45 +0000 (10:42 -0700)]
msgr: fix policy setting

15 years agokclient: factor out connection creation; add con_send, con_keepalive
Sage Weil [Tue, 25 Aug 2009 23:49:28 +0000 (16:49 -0700)]
kclient: factor out connection creation; add con_send, con_keepalive

Mmm, much cleaner so far!

15 years agokclient: periodically ping mds's
Sage Weil [Tue, 25 Aug 2009 23:23:47 +0000 (16:23 -0700)]
kclient: periodically ping mds's

15 years agokclient: do not accept connections in messager (client only!)
Sage Weil [Tue, 25 Aug 2009 23:23:35 +0000 (16:23 -0700)]
kclient: do not accept connections in messager (client only!)

This rips out a lot of code, yay!

15 years agomsgr: server flag to avoid connecting to peer
Sage Weil [Tue, 25 Aug 2009 23:23:04 +0000 (16:23 -0700)]
msgr: server flag to avoid connecting to peer

If we have a message and no socket and server=true, just queue it
up.  When they connect to us they'll get it.

15 years agomds: handle ping
Sage Weil [Tue, 25 Aug 2009 23:22:14 +0000 (16:22 -0700)]
mds: handle ping

15 years agokclient: fix bad kfree on kmem_cache cap
Sage Weil [Wed, 26 Aug 2009 19:32:55 +0000 (12:32 -0700)]
kclient: fix bad kfree on kmem_cache cap

16 years agomds: update dir parent pointer on rename
Sage Weil [Tue, 25 Aug 2009 21:56:23 +0000 (14:56 -0700)]
mds: update dir parent pointer on rename

Maintain per-segment list and inode flag for this purpose.
Flush out changes on log segment trim.

Also remove from renamed list if we commit first frag (which also
writes a parent pointer each time).

16 years agomds: factor inode parent pointer encoding out of CDir commit
Sage Weil [Tue, 25 Aug 2009 21:07:23 +0000 (14:07 -0700)]
mds: factor inode parent pointer encoding out of CDir commit

We'll use it to adjust the xattr when a file is renamed, too.

16 years agouclient: don't croak on flush_set_callback on nonexistant ino
Sage Weil [Mon, 24 Aug 2009 22:27:29 +0000 (15:27 -0700)]
uclient: don't croak on flush_set_callback on nonexistant ino

Not sure where this is happening exactly.. :/

16 years agomds: propagate scatterlock data w/o changing lock state in scatter_nudge
Sage Weil [Mon, 24 Aug 2009 21:02:01 +0000 (14:02 -0700)]
mds: propagate scatterlock data w/o changing lock state in scatter_nudge

If we can take the wrlock already, there's no need to adjust the
lock state... just call scatter_writebehind.

16 years agomds: avoid propagating nestlock more frequently than mds_dirstat_min_interval
Sage Weil [Mon, 24 Aug 2009 21:01:14 +0000 (14:01 -0700)]
mds: avoid propagating nestlock more frequently than mds_dirstat_min_interval

Instead, add the lock to the update_scatterlock list, as usual.

16 years agomds: kill SimpleLock::wait_shift
Sage Weil [Mon, 24 Aug 2009 19:45:48 +0000 (12:45 -0700)]
mds: kill SimpleLock::wait_shift

It's a function of lock type.

16 years agotodo
Sage Weil [Mon, 24 Aug 2009 18:41:00 +0000 (11:41 -0700)]
todo

16 years agouclient: warn about stat_precise struct changes
Sage Weil [Mon, 24 Aug 2009 18:33:47 +0000 (11:33 -0700)]
uclient: warn about stat_precise struct changes

16 years agolibceph: no need for frag_info_t
Sage Weil [Mon, 24 Aug 2009 18:32:32 +0000 (11:32 -0700)]
libceph: no need for frag_info_t

16 years agomsgr: add ms_die_on_bad_msg option, make assert(0) conditional
Sage Weil [Mon, 24 Aug 2009 18:28:10 +0000 (11:28 -0700)]
msgr: add ms_die_on_bad_msg option, make assert(0) conditional

16 years agoHadoop: Style fixes.
Greg Farnum [Mon, 24 Aug 2009 18:08:24 +0000 (11:08 -0700)]
Hadoop: Style fixes.

16 years agoHadoop: Move the . and .. elimination
Greg Farnum [Mon, 24 Aug 2009 17:53:21 +0000 (10:53 -0700)]
Hadoop: Move the . and .. elimination
from Java to C++ for less copying.

16 years agouclient: _getdents should *always* return the number of bytes written
Greg Farnum [Sun, 23 Aug 2009 04:50:08 +0000 (21:50 -0700)]
uclient: _getdents should *always* return the number of bytes written
at end of dir, not just assume it's zero!

16 years agoHadoop: Use the new ceph_getdnames instead of getdir
Greg Farnum [Fri, 21 Aug 2009 21:29:26 +0000 (14:29 -0700)]
Hadoop: Use the new ceph_getdnames instead of getdir
Hypertable: fix a nasty not-closing-the-dir bug

16 years agolibceph: Change the C++-only functions to be C-compatible.
Greg Farnum [Fri, 21 Aug 2009 16:31:50 +0000 (09:31 -0700)]
libceph: Change the C++-only functions to be C-compatible.
Hypertable: Change to use ceph_getdnames instead of getdir.

Hadoop: Minor updates to use the new C-style functions in libceph.

16 years agoHadoop: Fix a nasty IO bug.
Greg Farnum [Fri, 21 Aug 2009 16:12:55 +0000 (09:12 -0700)]
Hadoop: Fix a nasty IO bug.
CephInputStream.read() needs to return an int between 0 and 255,
but bytes are signed and casting preserves that. Adjust if needed.

16 years agoHadoop: Clean up ceph_delete code as it's redundant.
Greg Farnum [Fri, 21 Aug 2009 01:32:05 +0000 (18:32 -0700)]
Hadoop: Clean up ceph_delete code as it's redundant.

16 years agoHadoop: Fixed time modification in getFileStatus.
Greg Farnum [Thu, 20 Aug 2009 20:39:52 +0000 (13:39 -0700)]
Hadoop: Fixed time modification in getFileStatus.
No wonder I hadn't noticed an issue with statting!

16 years agoHadoop: Add package.html;
Greg Farnum [Wed, 19 Aug 2009 17:54:43 +0000 (10:54 -0700)]
Hadoop: Add package.html;
fix a NULL instead of null error (Java)

16 years agoHadoop: Put guards up to prevent
Greg Farnum [Tue, 18 Aug 2009 23:30:11 +0000 (16:30 -0700)]
Hadoop: Put guards up to prevent
a nasty bug in case of unspecified preferences, and the unlikely case
that initialize is called twice.

16 years agoupload tarball with 'stable' deb
Sage Weil [Mon, 24 Aug 2009 17:56:35 +0000 (10:56 -0700)]
upload tarball with 'stable' deb

16 years agov0.13 v0.13
Sage Weil [Mon, 24 Aug 2009 17:45:14 +0000 (10:45 -0700)]
v0.13

16 years agotodo
Sage Weil [Fri, 21 Aug 2009 23:35:01 +0000 (16:35 -0700)]
todo

16 years agokclient: cleanup msgpool pr_err
Sage Weil [Fri, 21 Aug 2009 21:36:54 +0000 (14:36 -0700)]
kclient: cleanup msgpool pr_err

16 years agokclient: update ctime on 'no-op' ->setattr(.., ATTR_CTIME)
Sage Weil [Fri, 21 Aug 2009 21:28:26 +0000 (14:28 -0700)]
kclient: update ctime on 'no-op' ->setattr(.., ATTR_CTIME)

If kernel wants ctime updated but nothing else, pick a cap to
dirty, or set a no-op setattr req to the mds.

With this patch, we pass the full pjd fstest with mode ext3.

16 years agokclient tests: fix dir names
Sage Weil [Fri, 21 Aug 2009 20:49:46 +0000 (13:49 -0700)]
kclient tests: fix dir names

16 years agouclient: small _getdents cleanup
Sage Weil [Fri, 21 Aug 2009 20:44:13 +0000 (13:44 -0700)]
uclient: small _getdents cleanup

16 years agouclient: let's do getdents() too, while we're at it
Sage Weil [Fri, 21 Aug 2009 20:27:31 +0000 (13:27 -0700)]
uclient: let's do getdents() too, while we're at it

16 years agocrush: put temp arrays on the stack
Sage Weil [Fri, 21 Aug 2009 20:20:42 +0000 (13:20 -0700)]
crush: put temp arrays on the stack

40 ints on the stack.. not too much I hope?

16 years agouclient: remove readdirplus, readdirlite cruft
Sage Weil [Fri, 21 Aug 2009 20:14:50 +0000 (13:14 -0700)]
uclient: remove readdirplus, readdirlite cruft

Ancient!

16 years agouclient: add getdnames()
Sage Weil [Fri, 21 Aug 2009 20:11:44 +0000 (13:11 -0700)]
uclient: add getdnames()

16 years agokclient: better info in cap msg debug prints
Sage Weil [Fri, 21 Aug 2009 19:32:01 +0000 (12:32 -0700)]
kclient: better info in cap msg debug prints

16 years agomds: debug show cap issued/pending/wanted or issued/wanted, depending
Sage Weil [Fri, 21 Aug 2009 19:31:35 +0000 (12:31 -0700)]
mds: debug show cap issued/pending/wanted or issued/wanted, depending

16 years agomds: clean out old revocation history on racing release
Sage Weil [Fri, 21 Aug 2009 19:28:01 +0000 (12:28 -0700)]
mds: clean out old revocation history on racing release

If a release and revoke are racing, we need to make sure the MDS
behaves even though the revoke msg will be ignored.  For example:

mds                    client
1 pAs                  pAs
                       release(last_issue 1)
2 p                    p (*** ignored ***)
3 pAs (issue)          pAs
4 p                    p
5 pXs (issue)          pXs
release(last_issue 1)  *** (was completely) ignored ***

We fix this by including both seq AND last_issue in revoke_info.
The cap state for the above is thus:

mds cap state:
 last_issue = 5
 _pending = pXs
 _revokes = [ p seq=2 li=1, p seq=4 li=3 ]

and the MDS will trim any old revokes for which li <= its
last_issue.  For anything after that, the client will have seen a
new issue and will have stopped ignoring cap messages.

16 years agomount.ceph: block same signals as /sbin/mount
Sage Weil [Fri, 21 Aug 2009 18:00:33 +0000 (11:00 -0700)]
mount.ceph: block same signals as /sbin/mount

16 years agomds: remove mdstable ino cruft; version all ondisk encoding
Sage Weil [Fri, 21 Aug 2009 17:32:48 +0000 (10:32 -0700)]
mds: remove mdstable ino cruft; version all ondisk encoding

16 years agomds: do not save cap_push_seq on disk [disk format change]
Sage Weil [Fri, 21 Aug 2009 17:28:41 +0000 (10:28 -0700)]
mds: do not save cap_push_seq on disk [disk format change]

The cap_push_seq is purely associated with the current instance
of the session.  On MDS restart and client reconnect, it resets
to zero.  Don't save it.

16 years agokclient: make msgpools blocking or non-blocking
Sage Weil [Fri, 21 Aug 2009 16:32:51 +0000 (09:32 -0700)]
kclient: make msgpools blocking or non-blocking

16 years agokclient: stop using msgpools for incoming msgs
Sage Weil [Thu, 20 Aug 2009 23:48:07 +0000 (16:48 -0700)]
kclient: stop using msgpools for incoming msgs

Even though we may only dispatch N messages at a time (if we
have N cores), we may have many more connections, and be
reading the same message types in parallel from multiple
peers.  Msgpool_alloc blocks when teh pool is empty, which
will make the messenger thread hang, and stall forward.

Badness.

There is no easy solution here.

16 years agokclient: be smarter about osd reply message refs
Sage Weil [Thu, 20 Aug 2009 23:46:06 +0000 (16:46 -0700)]
kclient: be smarter about osd reply message refs

16 years agoconfigure: check for expat for radosgw
Sage Weil [Thu, 20 Aug 2009 23:02:46 +0000 (16:02 -0700)]
configure: check for expat for radosgw

16 years agoMakefile: add missing MOSDPGTemp.h
Sage Weil [Thu, 20 Aug 2009 22:52:24 +0000 (15:52 -0700)]
Makefile: add missing MOSDPGTemp.h

16 years agomds: clean up loner set/drop logic
Sage Weil [Thu, 20 Aug 2009 21:48:10 +0000 (14:48 -0700)]
mds: clean up loner set/drop logic

Track what loner we _want_ separately from what loner we have, so
that locks can move toward the right state.

Centralize loner set/drop call points.

Move out of EXCL in simple_eval if our target loner is -1(none).

16 years agokclient: don't keep reply ref in osd_request; just parse out the result
Sage Weil [Thu, 20 Aug 2009 21:45:51 +0000 (14:45 -0700)]
kclient: don't keep reply ref in osd_request; just parse out the result

This requires a few new flags: r_prepared_pages, so we only do that
once, and r_got_reply, so we only parse the result once.

16 years agokclient: add iozone, kernel tar+compile tests
Sage Weil [Thu, 20 Aug 2009 18:48:30 +0000 (11:48 -0700)]
kclient: add iozone, kernel tar+compile tests

16 years agokclient: remove ancient crufty test code
Sage Weil [Thu, 20 Aug 2009 18:23:31 +0000 (11:23 -0700)]
kclient: remove ancient crufty test code

16 years agokclient: use msgpool for client_caps
Sage Weil [Wed, 19 Aug 2009 23:15:37 +0000 (16:15 -0700)]
kclient: use msgpool for client_caps

16 years agokclient: clean up msgr debug output a bit
Sage Weil [Wed, 19 Aug 2009 20:51:19 +0000 (13:51 -0700)]
kclient: clean up msgr debug output a bit

16 years agokclient: fix data skip arithmetic
Sage Weil [Wed, 19 Aug 2009 20:51:07 +0000 (13:51 -0700)]
kclient: fix data skip arithmetic

16 years agokclient: drop middle, data in ceph_msg_put
Sage Weil [Wed, 19 Aug 2009 20:44:49 +0000 (13:44 -0700)]
kclient: drop middle, data in ceph_msg_put

And not msgpool reclaim.

This fixes bug where a reused message has nr_pages != 0 and
gets confused.

16 years agoauth: auth scheme notes
Sage Weil [Wed, 19 Aug 2009 17:18:29 +0000 (10:18 -0700)]
auth: auth scheme notes

16 years agoMerge branch 'unstable' of ssh://ceph.newdream.net/git/ceph into unstable
Sage Weil [Wed, 19 Aug 2009 17:15:34 +0000 (10:15 -0700)]
Merge branch 'unstable' of ssh://ceph.newdream.net/git/ceph into unstable

16 years agokclient: requeue cap if cap send fails
Sage Weil [Wed, 19 Aug 2009 17:14:49 +0000 (10:14 -0700)]
kclient: requeue cap if cap send fails

16 years agokclient: don't reuse message for revoke_ack
Sage Weil [Wed, 19 Aug 2009 16:53:17 +0000 (09:53 -0700)]
kclient: don't reuse message for revoke_ack

This is error prone (multiple paths for sending caps) and screws
up the msg pools.

16 years agomds: shut up cap sanity check
Sage Weil [Tue, 18 Aug 2009 21:59:20 +0000 (14:59 -0700)]
mds: shut up cap sanity check

16 years agokclient: use reference counted ceph_buffer for xattr blob, msg middle
Sage Weil [Tue, 18 Aug 2009 21:59:06 +0000 (14:59 -0700)]
kclient: use reference counted ceph_buffer for xattr blob, msg middle

16 years agofix client caps encoding
Sage Weil [Tue, 18 Aug 2009 20:36:30 +0000 (13:36 -0700)]
fix client caps encoding

16 years agouclient/hadoop: Implement lstat_precise.
Greg Farnum [Tue, 18 Aug 2009 20:31:25 +0000 (13:31 -0700)]
uclient/hadoop: Implement lstat_precise.

libceph: Some functions were getting C bindings where it
didn't make sense (having string parameters. Fixed now.

16 years agouClient: Whoops, apparently I thought stat's atime was in millis, but it's in seconds.
Greg Farnum [Tue, 18 Aug 2009 19:52:51 +0000 (12:52 -0700)]
uClient: Whoops, apparently I thought stat's atime was in millis, but it's in seconds.

16 years agomsgr: handle 'middle' section of message
Sage Weil [Tue, 18 Aug 2009 19:16:42 +0000 (12:16 -0700)]
msgr: handle 'middle' section of message

16 years agoHadoop: What's with all these unused variables?
Greg Farnum [Tue, 18 Aug 2009 17:33:59 +0000 (10:33 -0700)]
Hadoop: What's with all these unused variables?

16 years agoHadoop: Javadoc and cleanup in CephInput/OutputStream.
Greg Farnum [Tue, 18 Aug 2009 15:41:40 +0000 (08:41 -0700)]
Hadoop: Javadoc and cleanup in CephInput/OutputStream.

16 years agoHadoop: Javadoc and cleanup in CephInputStream.
Greg Farnum [Tue, 18 Aug 2009 00:15:01 +0000 (17:15 -0700)]
Hadoop: Javadoc and cleanup in CephInputStream.

16 years agokclient: alloc 'middle' section of messages via callback
Sage Weil [Mon, 17 Aug 2009 23:51:13 +0000 (16:51 -0700)]
kclient: alloc 'middle' section of messages via callback

16 years agokclient: fix up msgpool some
Sage Weil [Mon, 17 Aug 2009 23:50:45 +0000 (16:50 -0700)]
kclient: fix up msgpool some

16 years agouclient: A Sage-given fix for something Sage broke.
Greg Farnum [Mon, 17 Aug 2009 22:56:04 +0000 (15:56 -0700)]
uclient: A Sage-given fix for something Sage broke.

16 years agomsgr: add 'middle' section to msgs
Sage Weil [Mon, 17 Aug 2009 21:57:42 +0000 (14:57 -0700)]
msgr: add 'middle' section to msgs

16 years agokclient: use msgpools for some messages
Sage Weil [Mon, 17 Aug 2009 20:36:15 +0000 (13:36 -0700)]
kclient: use msgpools for some messages

16 years agoHadoop: cleanup compile bugs from previous cleanup work.
Greg Farnum [Mon, 17 Aug 2009 19:38:00 +0000 (12:38 -0700)]
Hadoop: cleanup compile bugs from previous cleanup work.

16 years agokclient: add msgpools
Sage Weil [Mon, 17 Aug 2009 19:36:47 +0000 (12:36 -0700)]
kclient: add msgpools

16 years agoHadoop: Remove an exists call by checking return codes on mkdirs
Greg Farnum [Sat, 15 Aug 2009 00:29:45 +0000 (17:29 -0700)]
Hadoop: Remove an exists call by checking return codes on mkdirs

16 years agoHadoop: Remove references to uid and gid.
Greg Farnum [Sat, 15 Aug 2009 00:07:39 +0000 (17:07 -0700)]
Hadoop: Remove references to uid and gid.

16 years agoHadoop: Remove unused getLength and supporting C stuff.
Greg Farnum [Sat, 15 Aug 2009 00:04:29 +0000 (17:04 -0700)]
Hadoop: Remove unused getLength and supporting C stuff.

16 years agoHadoop: uses the new stat_precise.
Greg Farnum [Fri, 14 Aug 2009 23:58:13 +0000 (16:58 -0700)]
Hadoop: uses the new stat_precise.

16 years agouclient/libceph: setattr and _setattr now use a stat_precise struct
Greg Farnum [Fri, 14 Aug 2009 23:55:27 +0000 (16:55 -0700)]
uclient/libceph: setattr and _setattr now use a stat_precise struct
that handles both seconds and microseconds.
stat_precise has a stat_precise(struct stat) constructor.
ll_setattr still uses struct stat.

16 years agotestceph: Clarify use of endl so it's non-ambiguous when the includes change.
Greg Farnum [Fri, 14 Aug 2009 22:20:48 +0000 (15:20 -0700)]
testceph: Clarify use of endl so it's non-ambiguous when the includes change.

16 years agoHadoop: More Javadoc, indentation fixes, etc.
Greg Farnum [Fri, 14 Aug 2009 20:37:14 +0000 (13:37 -0700)]
Hadoop: More Javadoc, indentation fixes, etc.

16 years agoHadoop: Convert bytes to kb in statfs
Greg Farnum [Fri, 14 Aug 2009 20:36:36 +0000 (13:36 -0700)]
Hadoop: Convert bytes to kb in statfs

16 years agoHadoop: Javadoc and consistency.
Greg Farnum [Thu, 13 Aug 2009 20:56:13 +0000 (13:56 -0700)]
Hadoop: Javadoc and consistency.

16 years agoHadoop: Adds the getStatus method introduced by Hadoop .21;
Greg Farnum [Wed, 12 Aug 2009 23:54:47 +0000 (16:54 -0700)]
Hadoop: Adds the getStatus method introduced by Hadoop .21;
currently commented out since it doesn't compile in .20, but it's tested.

16 years agokclient: zero pages we did readahead on
Sage Weil [Fri, 14 Aug 2009 21:37:36 +0000 (14:37 -0700)]
kclient: zero pages we did readahead on

If we get -ENOENT or a short read on readahead, we should still
zero the pages and add them to the page cache, to avoid a future
readpage on each one.

16 years agokclient: zero page on ->readpage() ENOENT
Sage Weil [Fri, 14 Aug 2009 21:31:30 +0000 (14:31 -0700)]
kclient: zero page on ->readpage() ENOENT

16 years agokclient: fix bad up_read(snap_rwsem) on readpage failure in write_begin
Sage Weil [Fri, 14 Aug 2009 21:31:05 +0000 (14:31 -0700)]
kclient: fix bad up_read(snap_rwsem) on readpage failure in write_begin