summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* logging: log ENOENT errors in DEBUG mode instead of ERROR or INFORaghavendra Bhat2012-12-122-2/+4
| | | | | | | | | | Change-Id: I08a34e58892a8b2a2fdecc606bed8db292d36332 BUG: 851953 Signed-off-by: Raghavendra Bhat <raghavendra@redhat.com> Reviewed-on: https://code.engineering.redhat.com/gerrit/36 Reviewed-by: Vijay Bellur <vbellur@redhat.com> Tested-by: Vijay Bellur <vbellur@redhat.com> Reviewed-on: https://code.engineering.redhat.com/gerrit/137
* build: Install virt group file as a config file.Vijay Bellur2012-12-122-2/+3
| | | | | | | | | | | | | Additionally copy virt group file to /var/lib/glusterd/groups/ during RPM install. Change-Id: Ie0bedafc4354ac278adfb5cd8a1c1db61512d6a8 BUG: 861369 Reviewed-on: https://code.engineering.redhat.com/gerrit/42 Reviewed-by: Amar Tumballi <amarts@redhat.com> Reviewed-by: Vijay Bellur <vbellur@redhat.com> Tested-by: Vijay Bellur <vbellur@redhat.com> Reviewed-on: https://code.engineering.redhat.com/gerrit/1871
* build: Install glusterfs-logrotate as config fileVijay Bellur2012-12-122-2/+5
| | | | | | | | Change-Id: I8255eb4249503eac0add87444da934256faffc01 BUG: 860037 Reviewed-on: https://code.engineering.redhat.com/gerrit/1870 Reviewed-by: Vijay Bellur <vbellur@redhat.com> Tested-by: Vijay Bellur <vbellur@redhat.com>
* protocol/client: Remember the gfid of opened fdPranith Kumar K2012-12-123-112/+107
| | | | | | | | | | | | | | | This is needed when the fresh lookup triggers self-heal, gfid won't be present in inode yet. Similar situation happens with Rebalance as it does not perform inode_link. Added similar fix for re-opendir. Removed inode from fdctx and removed some duplication of code. Change-Id: I87679df7171bc6a25c4396af3a3fc04534a65c9c BUG: 859387 Signed-off-by: Pranith Kumar K <pranithk@gluster.com> Reviewed-on: https://code.engineering.redhat.com/gerrit/1581 Reviewed-by: Vijay Bellur <vbellur@redhat.com> Tested-by: Vijay Bellur <vbellur@redhat.com>
* write-behind: fix off-by-one bug in wb_requests_overlap()Anand Avati2012-12-121-7/+6
| | | | | | | | | | and backport an upstream review comment Change-Id: If683ee051cc3bd969417d69705bd63343650b541 Signed-off-by: Anand Avati <avati@redhat.com> Reviewed-on: https://code.engineering.redhat.com/gerrit/1869 Reviewed-by: Vijay Bellur <vbellur@redhat.com> Tested-by: Vijay Bellur <vbellur@redhat.com>
* Add libaio-devel in BuildRequires for server packageVijay Bellur2012-12-121-0/+1
| | | | | | | Change-Id: I4230815f44c8367942036f255eecb8d59722c10b Reviewed-on: https://code.engineering.redhat.com/gerrit/1868 Reviewed-by: Vijay Bellur <vbellur@redhat.com> Tested-by: Vijay Bellur <vbellur@redhat.com>
* performance/write-behind: Add missing memory accounting typeVijay Bellur2012-12-121-0/+1
| | | | | | | Change-Id: I578b41b721d1a4aca679e637082737dfcf6a3194 Reviewed-on: https://code.engineering.redhat.com/gerrit/1867 Reviewed-by: Vijay Bellur <vbellur@redhat.com> Tested-by: Vijay Bellur <vbellur@redhat.com>
* write-behind: implement causal ordering and other cleanupAnand Avati2012-12-121-2321/+1212
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Rules of causal ordering implemented: - If request A arrives after the acknowledgement (to the app, i.e, STACK_UNWIND) of another request B, then request B is said to have 'caused' request A. - (corollary) Two requests, which at any point of time, are unacknowledged simultaneously in the system can never 'cause' each other (wb_inode->gen is based on this) - If request A is caused by request B, AND request A's region has an overlap with request B's region, then then the fulfillment of request A is guaranteed to happen after the fulfillment of B. - FD of origin is not considered for the determination of causal ordering. - Append operation's region is considered the whole file. Other cleanup: - wb_file_t not required any more. - wb_local_t not required any more. - O_RDONLY fd's operations now go through the queue to make sure writes in the requested region get fulfilled before getting processed. - O_SYNC fd's operations now go through the queue to make sure previously acknowledged writes on the file (via other fds) are fulfilled before getting processed. - Option to not honor O_SYNC is now removed. - Option to ignore O_DIRECT is added (useful when running a VM and the drive appears with NCQ/TCQ or WCE=1 for the guest.) - Option to disable_first_nbytes is removed (as the cause of the bug which required this was diagnosed to be missing TCP_NODELAY.) - General cleanup and better conformance to coding style and convention. Change-Id: Ib44fb72da3727246b4a85174cb568c2f0231f6de BUG: 857673 Signed-off-by: Anand Avati <avati@redhat.com> Reviewed-on: https://code.engineering.redhat.com/gerrit/1866 Reviewed-by: Vijay Bellur <vbellur@redhat.com> Tested-by: Vijay Bellur <vbellur@redhat.com>
* group-virt: virt template file addedAmar Tumballi2012-12-123-1/+12
| | | | | | | | Change-Id: Ic124e44c3d3068d78e075c9a66ead9ab66ecb241 Signed-off-by: Amar Tumballi <amar@gluster.com> Reviewed-on: https://code.engineering.redhat.com/gerrit/1865 Reviewed-by: Vijay Bellur <vbellur@redhat.com> Tested-by: Vijay Bellur <vbellur@redhat.com>
* fuse: make the 'gid-timeout' default value as 2sec instead of 0Amar Tumballi2012-12-121-1/+1
| | | | | | | | | | | done for the performance benefits. Change-Id: I4788800fb911ac571c4ff636db5d09e95b335a6e BUG: 858469 Signed-off-by: Amar Tumballi <amar@gluster.com> Reviewed-on: https://code.engineering.redhat.com/gerrit/1864 Reviewed-by: Vijay Bellur <vbellur@redhat.com> Tested-by: Vijay Bellur <vbellur@redhat.com>
* storage/posix: Option to set brick(of a volume)'s root dir's uid/gidKrishnan Parthasarathi2012-12-122-5/+45
| | | | | | | | Change-Id: I529d4cd949477a436a5b571b69da9f1c8b33ee8f BUG: 858469 Reviewed-on: https://code.engineering.redhat.com/gerrit/1863 Reviewed-by: Vijay Bellur <vbellur@redhat.com> Tested-by: Vijay Bellur <vbellur@redhat.com>
* cli: Fix double free in cli_add_key_groupKrishnan Parthasarathi2012-12-121-0/+2
| | | | | | | | | Change-Id: I3c2f030ac7c53913612a3fbac5e582c47b005621 BUG: 851237 Signed-off-by: Krishnan Parthasarathi <kparthas@redhat.com> Reviewed-on: https://code.engineering.redhat.com/gerrit/1862 Reviewed-by: Vijay Bellur <vbellur@redhat.com> Tested-by: Vijay Bellur <vbellur@redhat.com>
* core/statedump: statedump enahancementsRaghavendra Bhat2012-12-121-0/+1
| | | | | | | | | | | | | | | | | * append timestamp to the statedump filename to prevent old files getting over written * Add start and end markers to statedump to indicate beginning and finishing of statedump information * Make glusterfs take options through /tmp/glusterdump.options file and treating those options with higher prioriry * do not dump the entire inode table in the statedump. Instead just dump the ltable and the fdtable Change-Id: I9a56a5be9970b58d08de509916f88aa2be56d864 Signed-off-by: Raghavendra Bhat <raghavendra@redhat.com> Reviewed-on: https://code.engineering.redhat.com/gerrit/1861 Reviewed-by: Vijay Bellur <vbellur@redhat.com> Tested-by: Vijay Bellur <vbellur@redhat.com>
* fuse: make background queue length configurableAmar Tumballi2012-12-126-56/+164
| | | | | | | | | | | | | | | * also make 'congestion_threshold' an option * make 'congestion_threshold' as 75% of background queue length if not explicitely specified * in glusterfsd.c, moved all the fuse option dictionary setting code to separate function Change-Id: Ie1680eefaed9377720770a09222282321bd4132e Signed-off-by: Amar Tumballi <amarts@redhat.com> BUG: 845214 Reviewed-on: https://code.engineering.redhat.com/gerrit/1860 Reviewed-by: Vijay Bellur <vbellur@redhat.com> Tested-by: Vijay Bellur <vbellur@redhat.com>
* cli: Added special key "group" for bulk volume set.Krishnan Parthasarathi2012-12-122-33/+146
| | | | | | | | | | | | | | | | | | gluster volume set VOLNAME group group_name - where group_name is a file under /var/lib/glusterd/groups containing one key, value pair per line as below, key1=value1 key2=value2 [...] - the command sets key1 to value1 and so on. Change-Id: Ic4c8dedb98d013b29a74e57f8ee7c1d3573137d2 BUG: 851237 Signed-off-by: Krishnan Parthasarathi <kparthas@redhat.com> Reviewed-on: https://code.engineering.redhat.com/gerrit/1859 Reviewed-by: Vijay Bellur <vbellur@redhat.com> Tested-by: Vijay Bellur <vbellur@redhat.com>
* cluster/afr: post-op-delay supportAnand Avati2012-12-126-1/+173
| | | | | | | | | | | | | | | post-op-delay introduces an artificial delay between the OP and POST-OP-CHANGELOG phases of a write transaction to increase the probability of changelog-piggyback and eager-locking to work more efficiently. Change-Id: I865ca4b68512c44818719c7e388952f15d53e6c2 BUG: 836033 Signed-off-by: Anand Avati <avati@redhat.com> Signed-off-by: Pranith Kumar K <pranithk@gluster.com> Reviewed-on: https://code.engineering.redhat.com/gerrit/1858 Reviewed-by: Vijay Bellur <vbellur@redhat.com> Tested-by: Vijay Bellur <vbellur@redhat.com>
* cluster/afr: cleanup lk_owner and PID messAnand Avati2012-12-123-41/+28
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Historically PID (frame->root->pid) was used by the locks translator to identify a locker (and make decisions about which locks contend or cooperate/merge). Since the introduction of lock_owner parameter the usage of PID (for locks) was deprecated and is now unused. This patch nukes the usage of PID in AFR The usage of lk_owner has also ended up being a mess, because of the differentiation required between ->lk() and ->inodelk(), (->lk() needs to be identified by the process (roughly) and ->inodelk() needs to be identified by the transaction) and also because of optimizations like eager locking (locks are no more identified by the transaction as they now get inherited by the next transaction). The scheme (and technique) now is: - All FOPs (the third phase of the transaction) happen with the lk_owner which is set by the topmost layer (FUSE, NFS etc.) - All entrylks are issued with lk_owner set to the frame->root address. - Inodelks which will not be subject to eager locking are issued with lk_owner set to frame->root. - Inodelks which are subject to eager locking are issued with lk_owner set to the address of fd_t (which are the only type of frames which get subject to the eager locking optimization) - At the start of the transaction, the transaction frame's lk_owner is set to the either frame->root or fd_t (and never unmodified) depending on the type of transaction. - Just before the third phase (FOP phase) the set lk_owner is "saved" away and overwritten by the lk_owner submitted by the top layer (FUSE or NFS) - Right after the third phase, the saved lk_owner is "restored" to resume the transaction into the POST-OP and eventually UNLOCK using the same lk_owner which was used during the LOCK phase. Change-Id: I6ab8e4d6b65ae4185fa85ad3fded8e9188b2f929 BUG: 836033 Signed-off-by: Anand Avati <avati@redhat.com> Reviewed-on: https://code.engineering.redhat.com/gerrit/1857 Reviewed-by: Vijay Bellur <vbellur@redhat.com> Tested-by: Vijay Bellur <vbellur@redhat.com>
* hooks: Modified samba hook scripts to handle user.cifsKrishnan Parthasarathi2012-12-122-4/+147
| | | | | | | | | Change-Id: I079636e2be4bc097df33355b6a60c0e04d69ef57 BUG: 877992 Signed-off-by: Krishnan Parthasarathi <kparthas@redhat.com> Reviewed-on: https://code.engineering.redhat.com/gerrit/1856 Reviewed-by: Vijay Bellur <vbellur@redhat.com> Tested-by: Vijay Bellur <vbellur@redhat.com>
* glusterd: Persisted hooks friendly user.* keysKrishnan Parthasarathi2012-12-123-33/+45
| | | | | | | | | | | | | | | - Fixed validation of user.* keys in presence of multiple key, value pairs in a single volume set command Change-Id: I5b96de2d009fbc79772121308d9b4c0a552bac52 BUG: 825902 Signed-off-by: Krishnan Parthasarathi <kparthas@redhat.com> Reviewed-on: http://review.gluster.com/3715 Tested-by: Gluster Build System <jenkins@build.gluster.com> Reviewed-by: Anand Avati <avati@redhat.com> Reviewed-on: https://code.engineering.redhat.com/gerrit/1855 Reviewed-by: Vijay Bellur <vbellur@redhat.com> Tested-by: Vijay Bellur <vbellur@redhat.com>
* glusterd-hooks: added support for separate namespace for 'volume set' keysKrishnan Parthasarathi2012-12-122-0/+32
| | | | | | | | | | | | | | | | | | | | | | | | | | | [cherry-picked Amar's patch from master] The keys in the above mentioned namespace could be used by hook scripts to peform tasks on 'special' keys as defined by the storage admin. The choice of the key and its semantics of it are outside the scope of glusterd. It is the responsibility of the storage admin to keep the meaning of the key(s) consistent. If a user gives a command like 'gluster volume set <VOLNAME> user.for-this-key do-this" scripts would get 'user.for-this-key=do-this' as argument. Change-Id: I5509e17d99e4ddd8bf5df968dcd51ff9a80dc3ab Signed-off-by: Amar Tumballi <amarts@redhat.com> BUG: 825902 Reviewed-on: http://review.gluster.com/3443 Tested-by: Gluster Build System <jenkins@build.gluster.com> Reviewed-by: Krishnan Parthasarathi <kp@gluster.com> Reviewed-by: Anand Avati <avati@redhat.com> Signed-off-by: Krishnan Parthasarathi <kparthas@redhat.com> Reviewed-on: https://code.engineering.redhat.com/gerrit/1854 Reviewed-by: Vijay Bellur <vbellur@redhat.com> Tested-by: Vijay Bellur <vbellur@redhat.com>
* libglusterfs,mount/fuse: implement gidcache mechanism in fuse-bridgeBrian Foster2012-12-128-4/+88
| | | | | | | | | | | | | | | | | | | | | | | | | This change genericizes the cache mechanism implemented in commit 8efd2845 into libglusterfs/src/gidcache.[ch] and adds fuse-bridge as a client. The cache mechanism is fundamentally equivalent, with some minor changes: - Change cache key from uid_t to uint64_t. - Modify the cache add logic to locate and use an entry with a matching ID, should it already exist. This addresses a bug in the existing mechanism where an expired entry supercedes a newly added entry in lookup, causing repeated adds and flushing of a cache bucket. The fuse group cache is disabled by default. It can be enabled via the 'gid-timeout' fuse-bridge translator option and accompanying mount option (i.e., '-o gid-timeout=1' for a 1s entry timeout). BUG: 800892 Change-Id: I0b34a2263ca48dbb154790a4a44fc70b733e9114 Signed-off-by: Brian Foster <bfoster@redhat.com> Reviewed-on: https://code.engineering.redhat.com/gerrit/1853 Reviewed-by: Vijay Bellur <vbellur@redhat.com> Tested-by: Vijay Bellur <vbellur@redhat.com>
* cli: Proper xml output for "gluster peer status"Kaushal M2012-12-124-5/+165
| | | | | | | | | | | Change-Id: I90952ba2ea606552cf4ad67dd296a440f90592d6 BUG: 847760 Signed-off-by: Kaushal M <kaushal@redhat.com> Reviewed-on: http://review.gluster.org/3870 Tested-by: Gluster Build System <jenkins@build.gluster.com> Reviewed-by: Vijay Bellur <vbellur@redhat.com> Reviewed-on: https://code.engineering.redhat.com/gerrit/1852 Tested-by: Vijay Bellur <vbellur@redhat.com>
* Self-heald: Fix inode leakPranith Kumar K2012-12-121-12/+29
| | | | | | | | | | | | | | | | | | | | | | | | | | | | RCA: There is an inode-leak because inode_link returns linked inode by taking a reference. That needs to be unreffed. Fix: Added the code to perform unrefs. In addition to that updated the loc inode with the linked-inode because that is the best practice. The code to update the input inode's gfid can be removed later, its already removed in master. Tests: Checked that opendir comes with an loc with valid inode Checked that re-opendir happens successfully. Tested index, full self-heal work fine with the fix. BUG: 826580 Change-Id: I0c68192ff98f76152ed112b393d497b8fee93355 Signed-off-by: Pranith Kumar K <pranithk@gluster.com> Reviewed-on: http://review.gluster.org/3518 Tested-by: Gluster Build System <jenkins@build.gluster.com> Reviewed-by: Raghavendra Bhat <raghavendra@redhat.com> Reviewed-by: Vijay Bellur <vbellur@redhat.com> Reviewed-on: https://code.engineering.redhat.com/gerrit/1851 Tested-by: Vijay Bellur <vbellur@redhat.com>
* dht/rebalance: set the correct ownership on the dst file.shishir gowda2012-12-121-0/+8
| | | | | | | | | | | | | | | | | Currently, the dst file created has root:root ownership, till migration is completed. During this phase, open fails on the dst file if uid/gid is non-root. Setting the dst_file to the correct ownership fixes the issue Change-Id: Icfec89eb10dc866cdee38dab17695fe21174ef99 BUG: 852361 Signed-off-by: shishir gowda <sgowda@redhat.com> Reviewed-on: http://review.gluster.org/3862 Tested-by: Gluster Build System <jenkins@build.gluster.com> Reviewed-by: Amar Tumballi <amarts@redhat.com> Reviewed-on: https://code.engineering.redhat.com/gerrit/1850 Reviewed-by: Vijay Bellur <vbellur@redhat.com> Tested-by: Vijay Bellur <vbellur@redhat.com>
* storage/posix: implement native linux AIO supportshishir gowda2012-12-127-6/+100
| | | | | | | | | | | | | | | Configurable via cli with "storage.linux-aio" settable option Backported Avati's patch http://review.gluster.org/#change,3627 BUG: 837495 Change-Id: Ia7c26f5734d34d341debd422a5c59bba31eef844 Signed-off-by: shishir gowda <sgowda@redhat.com> Reviewed-on: http://review.gluster.org/3849 Tested-by: Gluster Build System <jenkins@build.gluster.com> Reviewed-by: Amar Tumballi <amarts@redhat.com> Reviewed-by: Vijay Bellur <vbellur@redhat.com> Reviewed-on: https://code.engineering.redhat.com/gerrit/1849 Tested-by: Vijay Bellur <vbellur@redhat.com>
* cluster/dht: handle percent option for 'min-free-disk'Amar Tumballi2012-12-051-0/+10
| | | | | | | | | | | | | | | | | * with the init option cleanups, setting of 'conf->disk_unit' was reset, which made it not set the '%' in the option. * bring a global check, which makes the option assume its percent, as long as value is < 100. Upstream Patch : http://review.gluster.org/3918 Signed-off-by: Amar Tumballi <amarts@redhat.com> BUG: 858488 Change-Id: I7916d69ba72f0647881062d910bae73884a1b1c7 Reviewed-on: https://code.engineering.redhat.com/gerrit/144 Reviewed-by: Vijay Bellur <vbellur@redhat.com> Tested-by: Vijay Bellur <vbellur@redhat.com>
* mount/fuse: readdir() should return 32-bit inodes when 'enable-ino32' is usedNiels de Vos2012-11-193-4/+21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | From upstream commit 9cc24de746ce0e616fa09120b89aaa9a626f33cb: > The glusterfs mount option 'enable-ino32' does not change the behaviour > of readdir(). fuse_readdir_cbk() uses entry->d_ino directly, and this > was missed in commit c13823bd16b26bc471d3efb15f63b76fbfdf0309. > > By adding the function gf_fuse_fill_dirent(), the fuse_dirent structure > is filled in a similar way as the fuse_attr structure. This helper uses > the same function to squash the 64-bit inode in a 32-bit attribute. > > Change-Id: Ia20e7144613124a58691e7935cb793b6256aef79 > BUG: 850352 > URL: http://lists.nongnu.org/archive/html/gluster-devel/2012-09/msg00051.html > Tested-by: Steve Bakke <sbakke@netzyn.com> > Signed-off-by: Niels de Vos <ndevos@redhat.com> > Reviewed-on: http://review.gluster.org/3955 > Tested-by: Gluster Build System <jenkins@build.gluster.com> > Reviewed-by: Brian Foster <bfoster@redhat.com> > Reviewed-by: Anand Avati <avati@redhat.com> > Signed-off-by: Niels de Vos <ndevos@redhat.com> BUG: 876679 Change-Id: I0d6514fa6d118805b66cb942d94f40bb09045326 Signed-off-by: Niels de Vos <ndevos@redhat.com> Reviewed-on: https://code.engineering.redhat.com/gerrit/1586 Reviewed-by: Vijay Bellur <vbellur@redhat.com> Tested-by: Vijay Bellur <vbellur@redhat.com>
* mount/fuse: add mount-option "enable-ino32" for the native clientNiels de Vos2012-11-197-30/+70
| | | | | | | | | | | | | | | | | | | | | | | | From upstream commit c13823bd16b26bc471d3efb15f63b76fbfdf0309: > By default the GlusterFS-native client uses 64-bit inodes. Some 32-bit > applications can not handle these correctly. Introduce a client-side > mount option "enable-ino32" which causes the FUSE-client to squash the > 64-bit inodes into a 32-bit value. > > Change-Id: I3296d16528bfb50457b9675f6b8701234ed82ff0 > BUG: 850352 > Signed-off-by: Niels de Vos <ndevos@redhat.com> > Reviewed-on: http://review.gluster.org/3885 > Tested-by: Gluster Build System <jenkins@build.gluster.com> > Reviewed-by: Anand Avati <avati@redhat.com> > Signed-off-by: Niels de Vos <ndevos@redhat.com> BUG: 876679 Change-Id: Ie52ebc7d08f69a11cfa892a057bc9faf71446dcc Signed-off-by: Niels de Vos <ndevos@redhat.com> Reviewed-on: https://code.engineering.redhat.com/gerrit/1585 Reviewed-by: Vijay Bellur <vbellur@redhat.com> Tested-by: Vijay Bellur <vbellur@redhat.com>
* protocol/server: check bound_xl for NULL before dumping ltableRaghavendra Bhat2012-11-192-2/+9
| | | | | | | | | | | | | * If bound_xl in the setvolume is NULL, then put the connection back otherwise it might result in segfault when bound_xl from that connection object is accessed. Change-Id: I2805e8b45e5767121f323b0f6fed4084dfc020c0 BUG: 874913 Signed-off-by: Raghavendra Bhat <raghavendra@redhat.com> Reviewed-on: https://code.engineering.redhat.com/gerrit/1544 Reviewed-by: Vijay Bellur <vbellur@redhat.com> Tested-by: Vijay Bellur <vbellur@redhat.com>
* NFS is picking up geo-rep's already open (read-only) file descriptorKaleb S. KEITHLEY2012-11-143-27/+31
| | | | | | | | | | | | Add anonymous member to fd_t and use it instead of over-loading pid for geo-rep and self heal Change-Id: I53a3becb6ee72498bab889654547ca7422bc0a59 Signed-off-by: Kaleb S. KEITHLEY <kkeithle@redhat.com> BUG: 874272 Reviewed-on: https://code.engineering.redhat.com/gerrit/1531 Reviewed-by: Vijay Bellur <vbellur@redhat.com> Tested-by: Vijay Bellur <vbellur@redhat.com>
* mgmt/glusterd: Remove inner function to prevent execstack markingPranith Kumar K2012-11-081-16/+32
| | | | | | | | | Change-Id: I1f318fb4388ee3499e3bfab5c8f8f6c837a7d934 BUG: 840122 Signed-off-by: Pranith Kumar K <pkarampu@redhat.com> Reviewed-on: https://code.engineering.redhat.com/gerrit/1512 Reviewed-by: Vijay Bellur <vbellur@redhat.com> Tested-by: Vijay Bellur <vbellur@redhat.com>
* mgmt/glusterd: Use correct api for percent conversionPranith Kumar K2012-11-071-2/+3
| | | | | | | | | | Change-Id: I66968366b6533562dd5f9bf14c26a58316487d0a BUG: 862033 Signed-off-by: Pranith Kumar K <pkarampu@redhat.com> Reviewed-on: https://code.engineering.redhat.com/gerrit/45 Reviewed-by: Amar Tumballi <amarts@redhat.com> Reviewed-by: Vijay Bellur <vbellur@redhat.com> Tested-by: Vijay Bellur <vbellur@redhat.com>
* mgmt/glusterd: Trigger quorum action on peer deletionPranith Kumar K2012-11-071-0/+5
| | | | | | | | | | Change-Id: I8f44a921d7df3e7409e5cc5ffd206c7fc2baca17 BUG: 862017 Signed-off-by: Pranith Kumar K <pkarampu@redhat.com> Reviewed-on: https://code.engineering.redhat.com/gerrit/46 Reviewed-by: Amar Tumballi <amarts@redhat.com> Reviewed-by: Vijay Bellur <vbellur@redhat.com> Tested-by: Vijay Bellur <vbellur@redhat.com>
* nfs: resolve parent inode during inode_loc_fillRajesh Amaravathi2012-11-071-0/+2
| | | | | | | | | | | | | This commit resolves the parent inode in nfs_inode_loc_fill if the inode has a resolved path. Change-Id: I2159df3406c632477719bad9574180a002514301 BUG: 872923 Signed-off-by: Rajesh Amaravathi <rajesh@redhat.com> Reviewed-on: https://code.engineering.redhat.com/gerrit/1484 Reviewed-by: Jeffrey Darcy <jdarcy@redhat.com> Reviewed-by: Vijay Bellur <vbellur@redhat.com> Tested-by: Vijay Bellur <vbellur@redhat.com>
* geo-rep / gsyncd,glusterd: do not hardcode socket pathCsaba Henk2012-10-316-5/+16
| | | | | | | | | | | | ... in gsyncd python code. Indeed, use the configuration mechanism to set it suitably from glusterd. Change-Id: I9fe2088b14d28588d1e64fe892740cc5755b8365 BUG: 868877 Signed-off-by: Csaba Henk <csaba@redhat.com> Reviewed-on: https://code.engineering.redhat.com/gerrit/173 Reviewed-by: Vijay Bellur <vbellur@redhat.com> Tested-by: Vijay Bellur <vbellur@redhat.com>
* geo-rep / gsyncd: fixes to communication with child processesCsaba Henk2012-10-311-7/+11
| | | | | | | | | | | | due to not using the proper Python keyword, errhandler thread was possible to run into empty select Signed-off-by: Csaba Henk <csaba@redhat.com> BUG: 870502 Change-Id: I3c39e718e72545c27d50fd73aa6daf54062331b0 Reviewed-on: https://code.engineering.redhat.com/gerrit/167 Reviewed-by: Vijay Bellur <vbellur@redhat.com> Tested-by: Vijay Bellur <vbellur@redhat.com>
* geo-rep / gsyncd: sanitize error log of external commandsCsaba Henk2012-10-311-2/+10
| | | | | | | | | | | | | | If a command invoked by gsyncd fails, gsyncd makes a log of what comes out on its stderr. So far the log indeterministically broke lines at random places. Now put some effort into reconstructing original lines and having a faithful log. BUG: 870502 Change-Id: I16fcc75d3e0f624c10c71d9b37c937ca677087cc Signed-off-by: Csaba Henk <csaba@redhat.com> Reviewed-on: https://code.engineering.redhat.com/gerrit/166 Reviewed-by: Vijay Bellur <vbellur@redhat.com> Tested-by: Vijay Bellur <vbellur@redhat.com>
* geo-rep / gsyncd: further cleanup refinementsCsaba Henk2012-10-314-5/+23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - Regarding issue of leftover ssh control dirs: If master side worker is stuck in connection establishment phase, have the monitor kill it softly (ie. first by SIGTERM, to let it cleanup). This is trickier than sounds on first hearing, because if worker is stuck in waiting for a RePCe answer (in threading.Condition().wait()), then SIGTERM is ignored (more precisely, Python holds it back for the wait and resends it to itself when wait is over). So instead of signalling the worker only, we send TERM to the whole process group -- that brings down the ssh connection, which wakes up the waiting worker, which then can cleanup. Only problem is that monitor is also in the process group and it should not coomit a suicide. That is taken care by setting up a one-time SIGTERM handler in the monitor. - Regarding slave gsyncd stuck in chdir: Slave gsyncd is usually well behaved: if master does not send keepalives, it takes care to exit. However, if a hang occurs in early phase, when slave is to change to the gluster mountpoint, no timeout is set up for that (and unlike on master side, neither is there an external actor like the monitor to do that). So, to manage this scenario, we do the chdir in a (supposedly) short lived thread, and in the main thread we wait for the termination of this thread. If that does not happen within the time limit, main thread calls for cleanup and exit. (This logic explicitely takes the appropriate action in the cases when chdir succeeds or when hangs; but what about the remaining case, when chdir fails? Well in that case the chdir thread's exception handler will put the process to cleanup and exit route.) Change-Id: I6ad6faa9c7b1c37084d171d1e1a756abaff9eba8 BUG: 870503 Signed-off-by: Csaba Henk <csaba@redhat.com> Reviewed-on: https://code.engineering.redhat.com/gerrit/165 Reviewed-by: Vijay Bellur <vbellur@redhat.com> Tested-by: Vijay Bellur <vbellur@redhat.com>
* nfs: do lookup on getattr after brick-status changeKrishna Srinivas2012-10-198-40/+171
| | | | | | | | | | | | | | (ported from Jeff Darcy's upstream commit) By doing a lookup, we get a chance to do all of the self-heal checks that would occur if we were using native protocol, and return proper status if the self-heal fails. Best of all, we don't need to misrepresent times. BUG: 830134 Change-Id: I9f4f0ab58373c0a8d7a880cc96a29ece2cc4f668 Signed-off-by: Krishna Srinivas <ksriniva@redhat.com> Reviewed-on: https://code.engineering.redhat.com/gerrit/125 Reviewed-by: Vijay Bellur <vbellur@redhat.com> Tested-by: Vijay Bellur <vbellur@redhat.com>
* glusterfs: add gf_mkostemp api and use it instead of mkostemp if libcRaghavendra Bhat2012-10-193-0/+113
| | | | | | | | | Change-Id: I6d72be95d304d2506204159f6533a8e3d6631cc2 BUG: 852041 Signed-off-by: Raghavendra Bhat <raghavendra@redhat.com> Reviewed-on: https://code.engineering.redhat.com/gerrit/121 Reviewed-by: Vijay Bellur <vbellur@redhat.com> Tested-by: Vijay Bellur <vbellur@redhat.com>
* core/statedump: dump the information in a temporary file andRaghavendra Bhat2012-10-192-14/+12
| | | | | | | | | | | then rename Change-Id: Id35fd5b3801f46db75660a26d1f3011883c293a7 BUG: 852041 Signed-off-by: Raghavendra Bhat <raghavendra@redhat.com> Reviewed-on: https://code.engineering.redhat.com/gerrit/120 Reviewed-by: Vijay Bellur <vbellur@redhat.com> Tested-by: Vijay Bellur <vbellur@redhat.com>
* common-utils: valid_host_name() should allow (sub)domains starting/ending ↵Niels de Vos2012-10-101-23/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | with a digit Some (sub)domains start or end with a digit. If this is the case, it will not be possible to 'gluster peer probe' hosts in that (sub)domain. This is overly restrictive, and RFC 1912 contains a note that describes the common use of start/end digits in (sub)domains: > > Allowable characters in a label for a host name are only ASCII > letters, digits, and the `-' character. Labels may not be all > numbers, but may have a leading digit (e.g., 3com.com). Labels must > end and begin only with a letter or digit. See [RFC 1035] and [RFC > 1123]. (Labels were initially restricted in [RFC 1035] to start with > a letter, and some older hosts still reportedly have problems with > the relaxation in [RFC 1123].) Note there are some Internet > hostnames which violate this rule (411.org, 1776.com). > This change will also allow (sub)domains to consist out of digits only, like the example of 411.org above. It is still not allowed to start or and a (sub)domain with a `-' (dash) character. Change-Id: Ia2b338b1f727c86ffcc3984d877b63c8476367e7 BUG: 863908 Signed-off-by: Niels de Vos <ndevos@redhat.com> Reviewed-on: http://review.gluster.org/4017 Tested-by: Gluster Build System <jenkins@build.gluster.com> Reviewed-by: Kaleb KEITHLEY <kkeithle@redhat.com> Reviewed-by: Jeff Darcy <jdarcy@redhat.com> Reviewed-by: Anand Avati <avati@redhat.com> Reviewed-on: https://code.engineering.redhat.com/gerrit/60 Reviewed-by: Amar Tumballi <amarts@redhat.com> Reviewed-by: Vijay Bellur <vbellur@redhat.com> Tested-by: Vijay Bellur <vbellur@redhat.com>
* extras: hook scripts should not start Samba if it is not runningNiels de Vos2012-10-102-2/+2
| | | | | | | | | | | | | | | | | | | If the smb service was turned off by the administrator, the hook scripts should not start the service on starting/stopping a volume. By calling the service script with "condrestart" instead of plain "start", the service script checks if samba actually was running. Change-Id: I6ad8519ff1f344450e569f9de7adc1e61da2c498 BUG: 863907 Signed-off-by: Niels de Vos <ndevos@redhat.com> Reviewed-on: http://review.gluster.org/4015 Reviewed-by: Amar Tumballi <amarts@redhat.com> Tested-by: Gluster Build System <jenkins@build.gluster.com> Reviewed-by: Anand Avati <avati@redhat.com> Reviewed-on: https://code.engineering.redhat.com/gerrit/59 Reviewed-by: Vijay Bellur <vbellur@redhat.com> Tested-by: Vijay Bellur <vbellur@redhat.com>
* geo-rep/gsyncd: work around rsync argument overflowCsaba Henk2012-10-101-3/+8
| | | | | | | | | | | | instead of passing the files to be synced as args to rsync, have rsync read them on stdin with '-0 --files-from=-' Change-Id: Ic3f71a0269941ce50051af8adfad183a52a79b01 BUG: 859173 Signed-off-by: Csaba Henk <csaba@redhat.com> Reviewed-on: https://code.engineering.redhat.com/gerrit/62 Tested-by: Venky Shankar <vshankar@redhat.com> Reviewed-by: Vijay Bellur <vbellur@redhat.com>
* mgmt/glusterd: Inject events only on first disconnectPranith Kumar K2012-10-011-25/+33
| | | | | | | | | Change-Id: I31a46186c7d519057992c6111528acc666babb28 BUG: 861596 Signed-off-by: Pranith Kumar K <pkarampu@redhat.com> Reviewed-on: https://code.engineering.redhat.com/gerrit/43 Reviewed-by: Vijay Bellur <vbellur@redhat.com> Tested-by: Vijay Bellur <vbellur@redhat.com>
* mgmt/glusterd: start-brick if volume not in server-quorumPranith Kumar K2012-10-011-1/+1
| | | | | | | | | Change-Id: I94a38c436bd149301f8375471fa36b52dccdd6e6 BUG: 861596 Signed-off-by: Pranith Kumar K <pkarampu@redhat.com> Reviewed-on: https://code.engineering.redhat.com/gerrit/41 Reviewed-by: Vijay Bellur <vbellur@redhat.com> Tested-by: Vijay Bellur <vbellur@redhat.com>
* Merge "mgmt/glusterd: Avoid rounding off error in quorum calculation"Vijay Bellur2012-10-011-2/+7
|\
| * mgmt/glusterd: Avoid rounding off error in quorum calculationPranith Kumar K2012-09-281-2/+7
| | | | | | | | | | | | Change-Id: I399bae87dc0731ee9a828306c5c411f269fb6760 BUG: 861327 Signed-off-by: Pranith Kumar K <pkarampu@redhat.com>
* | mgmt/glusterd: Don't show opt-version count in volume infoPranith Kumar K2012-09-281-0/+2
| | | | | | | | | | | | Change-Id: Ia889753c59dde4cdaf4486781fde883b5d153e76 BUG: 861289 Signed-off-by: Pranith Kumar K <pkarampu@redhat.com>
* | mgmt/glusterd: volume set help should not be affected by quorumPranith Kumar K2012-09-281-1/+28
|/ | | | | | Change-Id: I47e96be696891f802e9e52dd8e177573e666fd68 BUG: 861289 Signed-off-by: Pranith Kumar K <pkarampu@redhat.com>