summaryrefslogtreecommitdiffstats
path: root/xlators/protocol/client
Commit message (Collapse)AuthorAgeFilesLines
* client-protocol: fix race-condition encountered while accessing fdctxRaghavendra G2009-09-221-47/+218
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - In protocol/client, fdctx is accessed by two sets of procedures, protocol_client_mark_fd_bad falls in one set whereas the other set consists of all fops which receive fd as an argument. The way these fdctxs are got is different in these two sets. While in the former set, fdctx is accessed through conf->saved_fds, which is a list of fdctxs of fds representing opened/created files. In the latter set, fdctxs are got directly from fd through fd_ctx_get(). Now there can be race conditions between two threads executing one procedure from these two sets. As an example let us consider following scenario: A flush operation is timed out and polling thread executing protocol_client_mark_fd_bad, fuse thread executing client_release. This can happen because, immediately a reply for flush is written to fuse, a release on the same fd can be sent to glusterfs and the polling thread still might be doing cleanup. Consider following set of events: 1. fuse thread does fd_ctx_get (fd). 2. polling thread gets the same fdctx but through conf->saved_fds. 3. Now both threads go ahead and does list_del (fdctx) and eventually free fdctx. In other situations the same set events might occur and the threads executing fops other than flush in the second set might be accessing a fdctx freed in protocol_client_mark_fd_bad. Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 127 (race-condition in accessing fdctx in protocol/client) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=127
* Dumop inodectx addedVijay Bellur2009-09-161-1/+27
| | | | | | | | | | Added dumpop inodectx. Support for dumop inodectx added in dht, locks and client-protocol. Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 213 (Support for process state dump) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=213
* protocol/client: Support for dumpop priv.Vijay Bellur2009-09-161-0/+56
| | | | | | | Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 213 (Support for process state dump) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=213
* protocol/client: 'connecting' event is properly notified.Amar Tumballi2009-08-202-4/+23
| | | | | | | | | | | when there are no servers available to client, and transport init is not successful, send 'connecting' event once to parent so it doesn't hand in there. Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 224 (Client hangs if none of the servers are up) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=224
* protocol/client: fixed registration of saved_fdsAnand Avati2009-08-071-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | In client_open_cbk, client_opendir_cbk the list_add_tail macros were invoked with wrong ordered arguments, causing the existing registered fd list to get unlinked from the saved_fds list. The effects of this is far fetched - when transport disconnects, open fds are no more marked bad as they are not reachable from the saved_fds list. After reconnection, resumed access on this fd causes reference to invalid fds on the server. It could appear in the form of 'unresolved fd' error, readdir happening on a file fd, files reading from other files, etc. Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 192 (sefault in posix-readdir) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=192 BUG: 126 (Immediate segfault when used for rootfs) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=126 BUG: 173 ([ glusterfs 2.0.6rc1 ] - "server SEG fault") URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=173 BUG: 194 (Apache+Booster results in inconsistent download size using wget) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=194
* fix build warnings in 'client-protocol'Amar Tumballi2009-07-201-7/+19
| | | | | | | Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 130 (build warnings) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=130
* protocol/client: use translated flags in protocol/client open and create fopsAnand Avati2009-07-071-2/+2
| | | | Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
* protocol/client - replace ZR_FILENAME_MAX by NAME_MAXBasavanagowda Kanur2009-07-061-1/+1
| | | | Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
* cleanup client_forgetAmar Tumballi2009-07-012-179/+2
| | | | | | | | | | | upon detailed inspection of 'forget' behavior, it became evident that forgets from client should not goto server side, as server keeps its own purging mechanism to forget its inodes. if client sends all forget to server, many highly used required inodes may get freed up (it will surely effect io-cache buffers on server side) Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
* build warning fixesAmar Tumballi2009-06-301-2/+2
| | | | | | integer typecast warnings fixed Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
* client_xattrop: use dict_allocate_and_serialize during serializing xattrRaghavendra G2009-06-301-10/+7
| | | | | | | | - though the previous commit fixes bug #29, this patch fixes bugs arising in similar situations where xattrop is initiated by xlators other than afr. Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
* Fix some trivial typos.Erick Tryzelaar2009-06-291-1/+1
| | | | | | | I noticed that there were some minor spelling mistakes/typos in some of the source files. This patch fixes the ones I've found. Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
* version check between client/server made more specific to protocol only.Amar Tumballi2009-06-291-5/+5
| | | | | | | | | This patch is a step towards giving compatibility between the versions of GlusterFS. Now onwards, the protocol-version won't depend on release versions. In general, multiple glusterfs versions can have common protocol-version. Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
* client: Replace saved_fds dict with listShehjar Tikoo2009-06-152-158/+177
| | | | | | | | | | | Thhie change removes a huge inefficiency in file open path where every open resulted in dictionary operations in order to let the client maintain a list of fd_t's being used over a particular client context. Resolves: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=16 Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
* Implemented LOG MOP in client-protocol.Vikas Gorur2009-06-111-0/+61
| | | | Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
* THIS: protocol/client now uses xlator_notify for setting THISAnand V. Avati2009-05-221-12/+9
| | | | Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
* client-protocol: Fix memory corruption in client_lookupRaghavendra G2009-05-161-13/+7
| | | | | | | | - memory corruption was due to new members being added between allocation of buffer for serializing xattr_req dictionary and dict_serialize of xattr_req. Signed-off-by: Anand V. Avati <avati@amp.gluster.com>
* protocol/client: indentation fixesAnand V. Avati2009-05-071-926/+737
|
* protocol/client: removed conf->childAnand V. Avati2009-05-072-603/+0
|
* transport shortcut b/w client and serverAnand V. Avati2009-05-071-0/+10
| | | | | | This patch makes the server pass back the transport pointer of the client. If the UUID matches, the client makes the local transport 'shortcut' with the remote transport (pointer received from server) The shortcut simulates a socket queue. Instead of serialized messages going over the network and getting queued in the tcp socket queue, the messages get queued in a transport specific queue picked by a polling thread.
* fix log message from transport-timeout to frame-timeoutAnand V. Avati2009-05-061-1/+1
|
* protocol client log cleanupAnand V. Avati2009-04-282-31/+37
|
* Cleaned up log messages in client-protocol.Vikas Gorur2009-04-242-88/+97
| | | | Signed-off-by: Anand V. Avati <avati@amp.gluster.com>
* rename transport-timeout to frame-timeout, and set default to 30mins2.0.0Anand V. Avati2009-04-242-16/+16
|
* client_protocol_reconnect - do not send notify of CHILD_DOWN event if errno ↵Anand V. Avati2009-04-201-1/+1
| | | | | | from transport_connect() was EINPROGRES This bug was racing between a CHILD_UP from poll thread resulting from the event_register() of the new socket called in fuse thread. CHILD_UP would sometimes overtake the CHILD_DOWN for EINPROGRESS. So replicate would receive CHILD_DOWN as the latest event. This resulted in self-heal not happening etc.
* Destroy old ping timer before setting new one.Vikas Gorur2009-04-171-1/+5
| | | | Signed-off-by: Anand V. Avati <avati@amp.gluster.com>
* protocol/client - set remote inode number in inode context for root inode ↵Basavanagowda Kanur2009-04-171-23/+21
| | | | | | also, during lookup_cbk(). Signed-off-by: Anand V. Avati <avati@amp.gluster.com>
* protocol/client - NULL check for loc->inode added in statfs(), before trying ↵Basavanagowda Kanur2009-04-171-8/+10
| | | | | | to retrieve remote inode number from loc->inode's context. Signed-off-by: Anand V. Avati <avati@amp.gluster.com>
* eliminate this_ino_get(), this_ino_set(). handle inode_ctx_{get,set}() at ↵Basavanagowda Kanur2009-04-161-132/+290
| | | | | | | | | | the fop level itself. they used to log ambiguously and was of no use. logging is now more precise and will help in debugging, in case of errors. Signed-off-by: Anand V. Avati <avati@amp.gluster.com>
* client_readv_cbk - when op_ret is 0, iobuf comes NULL from transport, ↵Anand V. Avati2009-04-131-3/+5
| | | | | | handles this case Signed-off-by: Anand V. Avati <avati@amp.gluster.com>
* updated protocol/client with new readv writev prototypesAnand V. Avati2009-04-123-125/+110
| | | | Signed-off-by: Anand V. Avati <avati@amp.gluster.com>
* Enable glusterfs client to exit after a configured number of failed connects ↵Raghavendra G2009-04-011-1/+6
| | | | | | \ while fetching volume specification file from server Signed-off-by: Anand V. Avati <avati@amp.gluster.com>
* Add new type of option type INTERNET_ADDRESS for validationRaghavendra G2009-04-011-1/+1
| | | | | | | | - used to validate options like remote-host, bind-address. - Also validate options of translators created during fetch of volume specification file from remote server. Signed-off-by: Anand V. Avati <avati@amp.gluster.com>
* memory leak (of header) when frame is attempted to be xfer'ed when transport ↵Anand V. Avati2009-03-281-0/+2
| | | | | | is disconnected Signed-off-by: Anand V. Avati <avati@amp.gluster.com>
* ping-pong timer: - share last_sent and last_received between channels so ↵Anand V. Avati2009-03-282-33/+29
| | | | | | that any activity ensures the remote host being alive (useful under heavy loads) - timer expiry disconnects both transports Signed-off-by: Anand V. Avati <avati@amp.gluster.com>
* when the both channels in client protocol is disconnected, fd's are marked ↵Amar Tumballi2009-03-211-35/+64
| | | | | | | | | as bad patch solves the problem of fds being valid even in the case of server disconnection, which causes operations on wrong fd when server comes back up. Signed-off-by: Anand V. Avati <avati@amp.gluster.com>
* Add extra 'volume' parameter to inodelk/entrylk callsVikas Gorur2009-03-121-12/+34
| | | | Signed-off-by: Anand V. Avati <avati@amp.gluster.com>
* ping timer will not timeout if we recently got POLLOUT on the socket i.e if ↵Krishna Srinivas2009-03-101-4/+4
| | | | | | ((cur - (sent|received)) < timeout) Signed-off-by: Anand V. Avati <avati@amp.gluster.com>
* failover to any active transport when requested channel is not connectedAnand V. Avati2009-03-102-2/+30
| | | | Signed-off-by: Anand V. Avati <avati@amp.gluster.com>
* added fgetxattr and fsetxattr FOPsVikas Gorur2009-03-071-0/+170
| | | | Signed-off-by: Anand V. Avati <avati@amp.gluster.com>
* Changed the default transport-timeout to 600Krishna Srinivas2009-03-051-2/+2
| | | | Signed-off-by: Anand V. Avati <avati@amp.gluster.com>
* create fuse thread after setvolume cbk happens, not only in case of successAmar Tumballi2009-03-031-13/+14
| | | | | | | | This patch fixes the 'hang' effect when client protocol fails to authenticate to servers (it may be problem with volume file, or server process would have not started yet). Signed-off-by: Anand V. Avati <avati@amp.gluster.com>
* volumefile modification awareness to make sure there are no inconsistencies.Amar Tumballi2009-02-271-3/+19
| | | | | | Complete (including feature to properly umount) in my sense. Signed-off-by: Anand V. Avati <avati@amp.gluster.com>
* updated copyright header to extend copyright upto 2009Basavanagowda Kanur2009-02-264-4/+4
| | | | | | updated copyright header to include 2009. Signed-off-by: Anand V. Avati <avati@amp.gluster.com>
* Ping timer does not timeout in case there is any activity (cbks) from the ↵Krishna Srinivas2009-02-252-8/+42
| | | | | | server side. Signed-off-by: Anand V. Avati <avati@amp.gluster.com>
* per frame time out - i.e individual frames are unwound instead of the ↵Krishna Srinivas2009-02-253-41/+115
| | | | | | transport point itself being disconnected. timeout is configured using "transport-timeout". Signed-off-by: Anand V. Avati <avati@amp.gluster.com>
* Added all filesVikas Gorur2009-02-186-0/+7115