summaryrefslogtreecommitdiffstats
path: root/rpc/rpc-transport
Commit message (Collapse)AuthorAgeFilesLines
* rpc/rpc-transport: fix frame-loss during rdma-reads.v3.1.0qa31Raghavendra G2010-09-242-3/+18
| | | | | | | | | | | | | | | | | | - total no of rdma reads in progress was tracked using refcount of post (refcount = total rdma reads + 1). However doing rdma_post_unref _after_ rdma_do_reads, can result in race condition between execution of rdma_post_unref and procedure handling rdma read completion. This makes it impossible to find out whether the current rdma read was the last rdma-read being done in procedure handling rdma read-completion. The fix to this should either do rdma_post_unref before posting an rdma read or use another variable to track the number of rdma-reads. This patch implements second method. Signed-off-by: Raghavendra G <raghavendra@gluster.com> Signed-off-by: Vijay Bellur <vijay@dev.gluster.com> BUG: 1700 (write fops are bailing out on a distribute setup) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=1700
* rpc-transport/socket: set keepalive socket option.Raghavendra G2010-09-202-0/+91
| | | | | | | | Signed-off-by: Raghavendra G <raghavendra@gluster.com> Signed-off-by: Vijay Bellur <vijay@dev.gluster.com> BUG: 875 (Implement a new protocol to provide proper backward/forward compatibility) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=875
* rdma: do event_unregister() in fini() too.Amar Tumballi2010-09-171-12/+19
| | | | | | | | Signed-off-by: Amar Tumballi <amar@gluster.com> Signed-off-by: Vijay Bellur <vijay@dev.gluster.com> BUG: 1611 (crash in gf_free) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=1611
* cli, mgmt/glusterd: disallow probe to a clusterPranith Kumar K2010-09-151-1/+1
| | | | | | | | Signed-off-by: Pranith Kumar K <pranithk@gluster.com> Signed-off-by: Vijay Bellur <vijay@dev.gluster.com> BUG: 1594 (make probe oneway) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=1594
* socket.c: suppress spurious 'dict_get' logs in glusterd debug modeAmar Tumballi2010-09-151-2/+8
| | | | | | | | Signed-off-by: Amar Tumballi <amar@gluster.com> Signed-off-by: Vijay Bellur <vijay@dev.gluster.com> BUG: 1606 () URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=1606
* rpc-transport.c: handle a double freeAmar Tumballi2010-09-151-3/+0
| | | | | | | | | | * 'this->name' was getting freed in '(transport)->fini()'. Signed-off-by: Amar Tumballi <amar@gluster.com> Signed-off-by: Vijay Bellur <vijay@dev.gluster.com> BUG: 1605 () URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=1605
* socket: add xfer data countsAmar Tumballi2010-09-141-0/+2
| | | | | | | | | | | | * keeping track of data transfered over wire helps to identify the protocol overhead, and also can help us in debugging more on server loads Signed-off-by: Amar Tumballi <amar@gluster.com> Signed-off-by: Vijay Bellur <vijay@dev.gluster.com> BUG: 971 (dynamic volume management) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=971
* rpc-transport/rdma: while notifying a reply, pickup the correct iobref from ↵Raghavendra G2010-09-081-3/+3
| | | | | | | | | | request context. Signed-off-by: Raghavendra G <raghavendra@gluster.com> Signed-off-by: Vijay Bellur <vijay@dev.gluster.com> BUG: 1567 ([rdma] data corruption due to read-ahead) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=1567
* rpc-transport/rdma: change the default listening port to 6968.Raghavendra G2010-09-081-1/+1
| | | | | | | | Signed-off-by: Raghavendra G <raghavendra@gluster.com> Signed-off-by: Vijay Bellur <vijay@dev.gluster.com> BUG: 513 (Introduce 0 copy rdma) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=513
* rpc-transport/rdma: honour port argument sent in rdma_connect.v3.1.0qa17Raghavendra G2010-09-073-21/+26
| | | | | | | | Signed-off-by: Raghavendra G <raghavendra@gluster.com> Signed-off-by: Vijay Bellur <vijay@dev.gluster.com> BUG: 1555 (rdma remote port defaults to 6997) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=1555
* rpc-transport/rdma: fix memory corruptions caused by rdma.Raghavendra G2010-09-071-2/+4
| | | | | | | | | | | | | - disconnect notification should be sent before unrefing transport, since transport might be freed when unrefed. - set trans->listener. This member is used by rpcsvc to decide whether a listener or a new connection is dead. Signed-off-by: Raghavendra G <raghavendra@gluster.com> Signed-off-by: Vijay Bellur <vijay@dev.gluster.com> BUG: 1558 (glusterd hung) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=1558
* socket.c: more detailed info about mismatched msg typeAmar Tumballi2010-09-071-2/+8
| | | | | | | | Signed-off-by: Amar Tumballi <amar@gluster.com> Signed-off-by: Vijay Bellur <vijay@dev.gluster.com> BUG: 875 (Implement a new protocol to provide proper backward/forward compatibility) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=875
* rpc-transport/socket: fix memory leaks.Raghavendra G2010-09-041-18/+28
| | | | | | | | | | | | | - In the course of reading a single rpc-msg, socket_proto_state_machine may be executed multiple times (since sockets are non-blocking), hence wherever memory is allocated or referenced, checks should be added whether the memory is already allocated or referenced. Signed-off-by: Raghavendra G <raghavendra@gluster.com> Signed-off-by: Vijay Bellur <vijay@dev.gluster.com> BUG: 1438 (memory leaks) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=1438
* rpc-transport/rdma: notify rpc when pollerr happens, so that client side can ↵Raghavendra G2010-09-031-2/+2
| | | | | | | | | | try to reconnect. Signed-off-by: Raghavendra G <raghavendra@gluster.com> Signed-off-by: Vijay Bellur <vijay@dev.gluster.com> BUG: 513 (Introduce 0 copy rdma) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=513
* rpc-transport/rdma: when rdma msg of type RDMA_ERROR is recieved, disconnect ↵Raghavendra G2010-09-021-6/+13
| | | | | | | | | | transport. Signed-off-by: Raghavendra G <raghavendra@gluster.com> Signed-off-by: Vijay Bellur <vijay@dev.gluster.com> BUG: 1462 () URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=1462
* rpc-transport/rdma: set whether pollin data is for request/reply.Raghavendra G2010-09-011-0/+2
| | | | | | | | | | | - with implementation of call backs client and server can both recieve request/reply. Signed-off-by: Raghavendra G <raghavendra@gluster.com> Signed-off-by: Vijay Bellur <vijay@dev.gluster.com> BUG: 1488 (rdma client fails to connect to the servers) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=1488
* rpc-transport/socket: use xdr_sizeof instead of sizeof when trying to read ↵Raghavendra G2010-08-311-2/+21
| | | | | | | | | | vectored request/reply Signed-off-by: Raghavendra G <raghavendra@gluster.com> Signed-off-by: Vijay Bellur <vijay@dev.gluster.com> BUG: 875 (Implement a new protocol to provide proper backward/forward compatibility) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=875
* rpc-transport/rdma: By default, enable building of rdma only if libibverbs ↵Raghavendra G2010-08-311-1/+1
| | | | | | | | | | is installed. Signed-off-by: Raghavendra G <raghavendra@gluster.com> Signed-off-by: Vijay Bellur <vijay@dev.gluster.com> BUG: 513 (Introduce 0 copy rdma) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=513
* rpc-transport/rdma: free ioq entry even when churning of message fails.Raghavendra G2010-08-311-1/+1
| | | | | | | | | | | - An ioq entry is added to ioq-list only when it is not processed due to lack of quota. For all other cases, it should be freed to avoid memory leak. Signed-off-by: Raghavendra G <raghavendra@gluster.com> Signed-off-by: Vijay Bellur <vijay@dev.gluster.com> BUG: 513 (Introduce 0 copy rdma) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=513
* Bring in new transport rdma.Raghavendra G2010-08-307-1/+5972
| | | | | | | | | | | | - rdma is new transport and improvement over current ib-verbs. It uses rdma-read and rdma-write for efficiently transferring large buffers. For more details please refer to rfc-5666 and rfc-5667. Signed-off-by: Raghavendra G <raghavendra@gluster.com> Signed-off-by: Vijay Bellur <vijay@dev.gluster.com> BUG: 513 (Introduce 0 copy rdma) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=513
* rpc: server to client callback mechanismAmar Tumballi2010-08-271-0/+2
| | | | | Signed-off-by: Amar Tumballi <amar@gluster.com> Signed-off-by: Vijay Bellur <vijay@dev.gluster.com>
* transport/socket: free priv->incoming.request_info if not already freed ↵Raghavendra G2010-08-261-0/+9
| | | | | | | | | | after reading each message. Signed-off-by: Raghavendra G <raghavendra@gluster.com> Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 1438 (memory leaks) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=1438
* rpc-transport/socket: proper cleanup and NULL deref checks.Amar Tumballi2010-08-181-76/+126
| | | | | | | | Signed-off-by: Amar Tumballi <amar@gluster.com> Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 1326 () URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=1326
* rpc - cleanup and changes related to rdmaRaghavendra G2010-08-181-4/+5
| | | | | | | | | | | | - remove rpc_conn_state structure. - add a member to point struct rpc_req in rpc_transport_req structure. This is needed for rdma to store rdma specific per request data. Signed-off-by: Raghavendra G <raghavendra@gluster.com> Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 875 (Implement a new protocol to provide proper backward/forward compatibility) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=875
* changed GNU General Public License to GNU Affero General Public LicensePranith Kumar K2010-08-174-12/+12
| | | | | | | | Signed-off-by: Pranith Kumar K <pranithk@gluster.com> Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 1388 () URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=1388
* rpc: move handling of fragment headers to socket.Raghavendra G2010-08-162-2/+47
| | | | | | | | | | | - fragment headers are only specific to tcp and hence should be handled in transport-socket instead of by rpc layer. Signed-off-by: Raghavendra G <raghavendra@gluster.com> Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 875 (Implement a new protocol to provide proper backward/forward compatibility) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=875
* rpc-clnt/socket: rpc_clnt_reconfig() API to support overriding of port numbersAnand V. Avati2010-08-121-2/+5
| | | | | | | | Signed-off-by: Anand V. Avati <avati@blackhole.gluster.com> Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 1314 (portmapper functionality) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=1314
* rpc fixesAmar Tumballi2010-08-121-6/+20
| | | | | | | | | | | * set THIS properly so memory accounting works fine. * also check for few pointers before dereferencing them. Signed-off-by: Amar Tumballi <amar@gluster.com> Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 1317 () URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=1317
* rpc: changes to glusterfs programs that can take an optional payload argument.Raghavendra G2010-08-061-0/+5
| | | | | | | | | | | | | | | - The existing interface required the transport to separate the procedure header and procedure payload into two different buffers. Making this separation can prove cumbersome for transports like rdma wherein the header and payload can be received in a single buffer (For eg., header and payload of write fop sent as inline msg using rdma-send). This patch delegates the responsiblity of separating out header and payload to programs. Signed-off-by: Raghavendra G <raghavendra@gluster.com> Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 875 (Implement a new protocol to provide proper backward/forward compatibility) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=875
* changes to rpcRaghavendra G2010-07-282-30/+103
| | | | | | | | | | | | | | | | | | - use mem-pool for requests and saved_frames. - preserve the rpc_req structure till rpc invokes program's reply. This will enable us to store transport specific data that has to last till reply has come (eg., memory regions of chunk lists in case of rdma). - change signature of rpc_clnt_submit to accept rsphdr_vector and rsppayload_vector. The buffers pointed by these vectors will be from iobufs and these iobufs are added to an iobref which should also be passed as an arguement to rpc_clnt_submit. Signed-off-by: Raghavendra G <raghavendra@gluster.com> Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 875 (Implement a new protocol to provide proper backward/forward compatibility) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=875
* some check added to the variables after GF_CALLOCAmar Tumballi2010-07-281-0/+3
| | | | | | | | | | | handles some NULL dereference problems (reported by clang when ran with code where '#define GF_CALLOC NULL'). Signed-off-by: Amar Tumballi <amar@gluster.com> Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 966 (NULL check for avoiding NULL dereferencing of pointers..) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=966
* fix all the clang errors in 'rpc/*'Amar Tumballi2010-07-282-13/+16
| | | | | | | | Signed-off-by: Amar Tumballi <amar@gluster.com> Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 1133 () URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=1133
* protocol/lib: rename files to standardized names and placesAnand Avati2010-07-142-2/+5
| | | | | | | | | | | | - move xlators/protocol/lib/* to rpc/xdr/ - rename CLI and glusterd XDR filenames - remove xlators/protocol/lib (libgfproto1.so) Signed-off-by: Anand V. Avati <avati@blackhole.gluster.com> Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 875 (Implement a new protocol to provide proper backward/forward compatibility) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=875
* Move rpc to top-levelVijay Bellur2010-06-287-0/+3296
Signed-off-by: Vijay Bellur <vijay@gluster.com> Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 875 (Implement a new protocol to provide proper backward/forward compatibility) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=875