IF YOU WOULD LIKE TO GET AN ACCOUNT, please write an
email to Administrator. User accounts are meant only to access repo
and report issues and/or generate pull requests.
This is a purpose-specific Git hosting for
BaseALT
projects. Thank you for your understanding!
Только зарегистрированные пользователи имеют доступ к сервису!
Для получения аккаунта, обратитесь к администратору.
conn->ltable address keeps changing in
server_connection_cleanup every time it is called.
i.e. New ltable is created every time it is called.
Here is the race that happened:
---------------------------------------------------
thread-1 | thread-2
add_locker is called with |
conn->ltable. lets call the |
ltable address lt1 |
| connection cleanup is called
| and do_lock_table_cleanup is
| triggered for lt1. locker
| lists are splice_inited under
| the lt1->lock
lt1 adds the locker under |
lt1->lock (lets call this l1) |
| GF_FREE(lt1) happens in
| do_lock_table_cleanup
The locker l1 that is added just before lt1 is freed will never
be cleared in the subsequent server_connection_cleanups as there
does not exist a reference to the locker. The stale lock remains
in the locks xlator even though the transport on which it was
issued is destroyed.
Change-Id: I0a02f16c703d1e7598b083aa1057cda9624eb3fe
BUG: 787601
Signed-off-by: Pranith Kumar K <pranithk@gluster.com>
Reviewed-on: http://review.gluster.com/2957
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Jeff Darcy <jdarcy@redhat.com>
Reviewed-by: Amar Tumballi <amarts@redhat.com>
Reviewed-by: Anand Avati <avati@redhat.com>
currently this is implemented as a command line option, and not
as an easier translator option. this is because as of now, before
even the volume files are parsed, we would need memory accounting
enabled. there is scope for improving this behavior, but for now,
this approach solves the problem.
Also, this feature's major consumers are the testers who are
looking for leaks, hence option is hidden from usage output.
Change-Id: I09a5b13743ae43ff42c251989f921319e94cabe3
Signed-off-by: Amar Tumballi <amarts@redhat.com>
BUG: 799199
Reviewed-on: http://review.gluster.com/2856
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Vijay Bellur <vijay@gluster.com>
Comma can be used in the value of a "mountbroker-geo-replication.*" option
with semantics as of these examples:
option mountbroker-geo-replication.foolabel vol1,vol2,vol3:geouser
and
option mountbroker-geo-replication.geouser vol1,vol2,vol3
will allow geouser to mount any of the volumes vol{1,2,3} with params of a
geo-rep aux mount under label foolabel, resp. geouser
Also fix memleak in parsing of this option.
Change-Id: I5311388812f503a078a52a14f2679f5ddb33b248
BUG: 765214
Signed-off-by: Csaba Henk <csaba@redhat.com>
Reviewed-on: http://review.gluster.com/2818
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Amar Tumballi <amarts@redhat.com>
Reviewed-by: Venky Shankar <vshankar@redhat.com>
Was building payload only for node types GD_NODE_BRICK & GD_NODE_NFS.
Payload wasn't being built for nodes GD_NODE_SHD & GD_NODE_REBALANCE, which made
glusterd crash when those operations were performed.
Also fix a compile warning.
Change-Id: Id33e21c84901d4d112c54514b7f16add31aeb950
BUG: 803313
Signed-off-by: Kaushal M <kaushal@redhat.com>
Reviewed-on: http://review.gluster.com/2946
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Shishir Gowda <shishirng@gluster.com>
so there is no need for admin to worry about logrotate configs.
Change-Id: Iec6def870d0c3550f2642ade023c03de52d6d530
Signed-off-by: Amar Tumballi <amarts@redhat.com>
BUG: 801372
Reviewed-on: http://review.gluster.com/2935
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Vijay Bellur <vijay@gluster.com>
While resolving, for building the path into the loc, inode_find
is called with gfid as argument to get the inode from the inode
table. If the inode is not found, then a new inode is created.
Then the path is build using inode_path. But if the inode is
not linked to inode table (newly created inode), then gfid will
be null and inode_path returns null gfid as the path. Suppose the
lookup operation on that gfid fails, then we print the null gfid
in the log message.
To avoid it, build the path using the gfid only if inode_path
fails.
Change-Id: I2506fa8675761ddb0bc02980cd3583d9d068fc85
BUG: 802424
Signed-off-by: Raghavendra Bhat <raghavendrabhat@gluster.com>
Reviewed-on: http://review.gluster.com/2930
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Amar Tumballi <amarts@redhat.com>
Reviewed-by: Vijay Bellur <vijay@gluster.com>
without a cbk, syntask_new returns only after the task is complete.
Hence we don't have to wait on a conditional variable in the caller.
Change-Id: Ie83894aa6fc02cc3a973930e67ae2b35de3b7647
BUG: 767862
Signed-off-by: Raghavendra G <raghavendra@gluster.com>
Reviewed-on: http://review.gluster.com/2870
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Amar Tumballi <amarts@redhat.com>
Reviewed-by: Vijay Bellur <vijay@gluster.com>
* Without the dentry name, dentry cannot be created in inode_link, which
leads to trying to access the null dentry to check if it is cyclic and
thus segfault. So send the parent inode also NULL, which just returns
the proper inode after assigning the gfid and type to the inode without
trying to create dentry.
* Handle failures such as dentry_create returning NULL, in inode_link
properly and return NULL in such cases.
* Increase the lru limit of inode table of self-heal-daemon to 2048
Change-Id: I7ae0e0e9be279d1694b6aafb5e054585e43f03ff
BUG: 801149
Signed-off-by: Raghavendra Bhat <raghavendrabhat@gluster.com>
Reviewed-on: http://review.gluster.com/2893
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Amar Tumballi <amarts@redhat.com>
Reviewed-by: Vijay Bellur <vijay@gluster.com>
this can be triggered by "gluster volume set <VOLNAME> read-only on",
which adds read-only translator on server graph, thus making the
volume read-only.
Change-Id: Iee32e6b2f3022d16016534914a5198d1cd327e25
Signed-off-by: Amar Tumballi <amarts@redhat.com>
BUG: 798877
Reviewed-on: http://review.gluster.com/2915
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Kaushal M <kaushal@redhat.com>
Reviewed-by: Jeff Darcy <jdarcy@redhat.com>
Reviewed-by: Vijay Bellur <vijay@gluster.com>
This will enable us to pass appropriate op_errno indicating EOF even
during cache-hits.
Signed-off-by: Raghavendra G <raghavendra@gluster.com>
Change-Id: Ib239b5de9b8fca2bd8eb5ec87c93f2cb1c11a99c
BUG: 795789
Signed-off-by: Raghavendra G <raghavendra@gluster.com>
Reviewed-on: http://review.gluster.com/2939
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Amar Tumballi <amarts@redhat.com>
Reviewed-by: Vijay Bellur <vijay@gluster.com>
due to this, we were missing the entries from the last subvolume of
distribute for all the rebalance or remove-brick operations
Change-Id: I486f15c1d3d17cbf6f353f6179b2623af61f4868
Signed-off-by: Amar Tumballi <amarts@redhat.com>
BUG: 770346
Reviewed-on: http://review.gluster.com/2933
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Shishir Gowda <shishirng@gluster.com>
so that we won't even have a GFID set on the GFID dir itself.
Change-Id: I65be7d675a308f51f4c62a86499341412b20c47f
Signed-off-by: Amar Tumballi <amarts@redhat.com>
BUG: 802726
Reviewed-on: http://review.gluster.com/2936
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Vijay Bellur <vijay@gluster.com>
in comparing ip addresses during authentication,
we need to take only the ip address of the client
instead of the transport endpoint (ip:port).
Change-Id: If48eca37edea1d69deb150720fbaea0ea2443a00
BUG: 771845
Signed-off-by: Rajesh Amaravathi <rajesh@redhat.com>
Reviewed-on: http://review.gluster.com/2929
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Amar Tumballi <amarts@redhat.com>
Reviewed-by: Vijay Bellur <vijay@gluster.com>
it is guaranteed to be sent properly from posix layer itself now
Change-Id: Ifbbf558f3bcfa609bf107a75c692003ca261ac0a
Signed-off-by: Amar Tumballi <amarts@redhat.com>
BUG: 800831
Reviewed-on: http://review.gluster.com/2923
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Vijay Bellur <vijay@gluster.com>
This patch,
* Enables missing inodectx, fdctx dumpops for cli statedump command.
* Reintroduce changes introduced in statedump.c by 489a7a10 which were
overwritten by db20a0f8.
* Change strncasecmp() in gf_proc_dump_parse_set_option() to strcasecmp()
to properly parse similar options like fd-fdctx, inode-inodectx
Change-Id: I85ad854dce73048617b933d29cf360af9d0ed90a
BUG: 797788
Signed-off-by: Kaushal M <kaushal@redhat.com>
Reviewed-on: http://review.gluster.com/2914
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Amar Tumballi <amarts@redhat.com>
while filling a loc structure, marker should not error out if loc->name
is NULL or loc->path is just a gfid.
Change-Id: Ie3a9cffde2d17da0377f1e41de93b099a9133abe
BUG: 801364
Signed-off-by: Raghavendra G <raghavendra@gluster.com>
Reviewed-on: http://review.gluster.com/2938
Reviewed-by: Amar Tumballi <amarts@redhat.com>
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Enables usage of volume monitoring operations "volume status", "volume top" and
"volume profile" for nfs servers. These operations can be performed on
nfs-servers by passing "nfs" as an option in cli. The output is similar to the
normal brick outputs for these commands.
The new syntaxes for the changed commands are as below,
#gluster volume profile <VOLNAME> {start|info|stop} [nfs]
#gluster volume top <VOLNAME> {[open|read|write|opendir|readdir [nfs]]
|[read-perf|write-perf [nfs|{bs <size> count <count>}]]}
[brick <brick>] [list-cnt <count>]
#gluster volume status [all | <VOLNAME> [nfs|<BRICK>]]
[detail|clients|mem|inode|fd|callpool]
Change-Id: Ia6eb50c60aecacf9b413d3ea993f4cdd90ec0e07
BUG: 795267
Signed-off-by: Kaushal M <kaushal@redhat.com>
Reviewed-on: http://review.gluster.com/2820
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Krishnan Parthasarathi <kp@gluster.com>
If an entry includes no ACL returned via dictionary, it is possible
to skip down to acl_set without updating acl_access and/or
acl_default. If either are set from the previous iteration, the
unrelated ACLs are set to the current entry. Use a single set of
pointers to ensure that valid ACLs are always set.
Change-Id: Ia94887ded91845bc39d4d5e95ef00d190681e517
BUG: 801183
Signed-off-by: Brian Foster <bfoster@redhat.com>
Reviewed-on: http://review.gluster.com/2903
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Jeff Darcy <jdarcy@redhat.com>
Reviewed-by: Amar Tumballi <amarts@redhat.com>
1) Adding the connection to conf->conns used to
happen in conf->mutex, but removing happened under conn->lock.
Fixed that as below.
When the connection object is created conn's ref, bind_ref count
is set to '1'. For bind_ref ref/unref happens under conf->mutex
whenever server_connection_get, put is called.
When bind_ref goes to '0' connection object is removed from
conf->conns under conf->mutex. After it is removed from the list,
conn_unref is called outside the conf->mutex.
conn_ref/unref still happens under conn->lock.
2) Fixed races in server_connection_cleaup in grace_timer_handler
and server_setvolume.
Change-Id: Ie7b63b10f658af909a11c3327066667f5b7bd114
BUG: 801675
Signed-off-by: Pranith Kumar K <pranithk@gluster.com>
Reviewed-on: http://review.gluster.com/2911
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Amar Tumballi <amarts@redhat.com>
Reviewed-by: Vijay Bellur <vijay@gluster.com>
Updates about members of cluster must be sent to the peer to-be friended.
Change-Id: I56745885d75af7c609227ba8582da1bb07c1b894
BUG: 801731
Signed-off-by: Krishnan Parthasarathi <kp@gluster.com>
Reviewed-on: http://review.gluster.com/2934
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Vijay Bellur <vijay@gluster.com>
* Added xml output for "volume quota" which was missing.
* Fixed xml output for "volume info all" so that it contains only one xml
document
* Fixed no xml output for normal "volume status"
* Fixed normal output for "volume set"
Change-Id: I3d85b6800e428226f2970d669e38e4331c99a218
BUG: 799957
Signed-off-by: Kaushal M <kaushal@redhat.com>
Reviewed-on: http://review.gluster.com/2868
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Amar Tumballi <amarts@redhat.com>
Reviewed-by: Vijay Bellur <vijay@gluster.com>
requests can be denied if the size of the request is higher than the
available sizes.
Change-Id: Id1bf2a56de799ccb94f3791899f2e33f68cd1e2b
Signed-off-by: Amar Tumballi <amarts@redhat.com>
BUG: 802047
Reviewed-on: http://review.gluster.com/2913
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Vijay Bellur <vijay@gluster.com>
'last_sent', and 'last_recieved' variables were not used anymore
after having RPC layer. Hence removed it from the code.
Change-Id: I1ba74d47f909406ebde43476ccfed724e6c7e77f
Signed-off-by: Amar Tumballi <amarts@redhat.com>
BUG: 801721
Reviewed-on: http://review.gluster.com/2916
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Vijay Bellur <vijay@gluster.com>
If the {f}xattrop operation succeeds on one of the subvolumes and fails
on another (thus the xattr dict obtained from the failed subvolume in
the callback will be NULL), then afr would be unwinding with op_ret = 0
(since the operation was successful on one subvolume), but the xattr dict
would be NULL (afr is not saving the xattr it has received in the callback
in its local structure and will send the xattr it has received in the last
callback). xlators above afr might segfault when they access the xattr since
they would have assumed that xattr would be present as op_ret is 0.
Change-Id: I50761a302150285f31dfdaa397f890c9370a989a
BUG: 797119
Signed-off-by: Raghavendra Bhat <raghavendrabhat@gluster.com>
Reviewed-on: http://review.gluster.com/2813
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Amar Tumballi <amarts@redhat.com>
Reviewed-by: Vijay Bellur <vijay@gluster.com>
Also, peerinfo is added to peers list synchoronous with the request triggering
it. This ensures that atmost one request sees that the peer (in question) is
not in peers list. Earlier, 'concurrent' handle_friend_update requests would
see that a particular peer is not in the peers list yet, as the addition of the
'peer' into the list happened asynchronously, on the 'connect' event of the
'peer'.
Change-Id: I6f017fb43079862fbe5ae7db8f9f4e4fefaa091d
BUG: 801731
Signed-off-by: Krishnan Parthasarathi <kp@gluster.com>
Reviewed-on: http://review.gluster.com/2918
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Amar Tumballi <amarts@redhat.com>
Reviewed-by: Vijay Bellur <vijay@gluster.com>
A grace timer is registered on a disconnect, but a reconnect timer sends a
connect request after every 3sec and if the server is down, the client protocol
receives disconnect and a grace timer will be registered which on timeout will
increase the lk-version value. Its enough to register the grace timer once after
the disconnect and later just ignore other psuedo disconnects.
Change-Id: I36a153aa86b350d87fe50d014ee0297f558a7fb6
BUG: 795386
Signed-off-by: Mohammed Junaid <junaid@redhat.com>
Reviewed-on: http://review.gluster.com/2906
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Amar Tumballi <amarts@redhat.com>
Reviewed-by: Vijay Bellur <vijay@gluster.com>
VOLUME_NAME used earlier in option definitions are confusing with
glusterd specific volumes. It should be translator name in volume
file.
Change-Id: Id4d86c8def65aa6ff1346ef49f8b20ea428de615
BUG: 788437
Signed-off-by: Amar Tumballi <amarts@redhat.com>
Reviewed-on: http://review.gluster.com/2789
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Vijay Bellur <vijay@gluster.com>
Ref when the object is allocated.
Unref after the response is submitted to that inodelk.
Ref when the lock is granted.
Unref when the lock is unlocked.
Change-Id: I2bfe9182b67bea7dc7b9d0ed9f99f1c7fa0b8a3c
BUG: 783449
Signed-off-by: Pranith Kumar K <pranithk@gluster.com>
Reviewed-on: http://review.gluster.com/2891
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Vijay Bellur <vijay@gluster.com>
this is needed for Micrsoft Windows-based Nfs clients
which do not ignore ACCESS3_DELETE permission not being
granted, while linux/unix systems ignore the same.
behaviour on linux/unix systems remains unchanged
Change-Id: I67f5f66a7486b93163aebedec5fbaa303173964e
BUG: 790781
Signed-off-by: Rajesh Amaravathi <rajesh@redhat.com>
Reviewed-on: http://review.gluster.com/2875
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Krishna Srinivas <krishna@gluster.com>
Reviewed-by: Vijay Bellur <vijay@gluster.com>