| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
| |
A EACCES error also should not trigger a selfheal.
Only if rmdir succeeded on any subvol, a selfheal should be triggered
Change-Id: I1dd39db830e9396b1dc6d6edbaa6de6ea83e9070
BUG: 3786
Reviewed-on: http://review.gluster.com/715
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Amar Tumballi <amar@gluster.com>
|
|
|
|
|
|
|
|
| |
Change-Id: I9888d8a0b86fdaf6589885766f2de7222d8c8ba2
BUG: 3802
Reviewed-on: http://review.gluster.com/705
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Pranith Kumar Karampuri <pranithk@gluster.com>
|
|
|
|
|
|
|
|
| |
Change-Id: I17e40beb2c6e77a802fb987bed6f0e4be8010ef6
BUG: 3803
Reviewed-on: http://review.gluster.com/707
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Amar Tumballi <amar@gluster.com>
|
|
|
|
|
|
|
|
| |
Change-Id: I058ed91494e1a9bbcf5e6e6c49e8ee4f7e014e23
BUG: 3796
Reviewed-on: http://review.gluster.com/695
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Anand Avati <avati@gluster.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Possible situation is a forget call which unref's the inode, and the
layout gets freed before we access it in stat.
By taking a ref before we call ctx get, the layout is going to be
persistent till we unref it.
Also use local call_cnt var instead of layout->cnt when wind is
involved
Change-Id: Ie04a7afd9e2c89cc14c08dd923d06c5f0193beb8
BUG: 3730
Reviewed-on: http://review.gluster.com/687
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Amar Tumballi <amar@gluster.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
If mkdir fails on a subvolume, layout is set taking into account
only the subvols where it was successful. stat does not trigger
selfheal, as its layout based.
Revalidate on directories needs to be sent to all subvols, to fix
the error, and not just on the layout.
Change-Id: Ia3ce2e5a042b2d55cddd7bd8cf31a94de6023234
BUG: 3793
Reviewed-on: http://review.gluster.com/688
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Amar Tumballi <amar@gluster.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
If the read request, does not fall to the subvolume with the largest
file size set, then we never return the correct size. This leads to
clients seeing a truncated file error.
The work around is to wipe stat being returned as part of read call.
Change-Id: I4e76d09d7919fd0be616fe140e08f89a0dbcc444
BUG: 3774
Reviewed-on: http://review.gluster.com/682
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Amar Tumballi <amar@gluster.com>
|
|
|
|
|
|
|
|
|
|
| |
as posix layer itself sends inode numbers based on gfid now
Change-Id: I184d4598cf541eadb0471c39e598f14d6ac9390a
BUG: 3042
Reviewed-on: http://review.gluster.com/632
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Vijay Bellur <vijay@gluster.com>
|
|
|
|
|
|
|
|
| |
Change-Id: I57fe8db82425a064ca01b23a47baca297c67560c
BUG: 3783
Reviewed-on: http://review.gluster.com/676
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Vijay Bellur <vijay@gluster.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
any child
Currently if no open is required on any child of replicate, we are
returning directly instead of unwinding and returning. This is leading
to the frame loss, which results in application hang. Unwind and then
return if no open is to be done on any child.
Change-Id: Ib59535b63751d9e98a4ceca39b4b73b14d850680
BUG: 3443
Reviewed-on: http://review.gluster.com/674
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Vijay Bellur <vijay@gluster.com>
|
|
|
|
|
|
|
|
|
|
|
| |
*) removed uuid_generate usage in pump and afr
*) filled the gfids for the fops which were sending no gfid in loc
Change-Id: Id6780da76c3ae18ae5130368b687ea026e338ac0
BUG: 3760
Reviewed-on: http://review.gluster.com/673
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Vijay Bellur <vijay@gluster.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
We were passing the stbuf returned by the first child/index, which
can be different to the size/blocks returned by stat. This led to
applications viewing the file as being truncated.
The stbuf size needs to be the largest of all results, and blocks
the aggregation from all subvolumes. (similar to stat)
Change-Id: I0782f2d0d48b53c5c507a2b1fc62a6132a31ce12
BUG: 3774
Reviewed-on: http://review.gluster.com/664
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Amar Tumballi <amar@gluster.com>
|
|
|
|
|
|
|
|
| |
Change-Id: Ic7a7b344bc62bf4c78e092c34c4c9cb3e0ba6cdc
BUG: 3770
Reviewed-on: http://review.gluster.com/660
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Amar Tumballi <amar@gluster.com>
|
|
|
|
|
|
|
|
|
| |
Change-Id: I1d3b2028f1db7db32266827bd0ba9b2a73474e3e
BUG: 3770
Reviewed-on: http://review.gluster.com/659
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Amar Tumballi <amar@gluster.com>
Reviewed-by: Vijay Bellur <vijay@gluster.com>
|
|
|
|
|
|
|
|
|
|
| |
Removes a wrong and unneeded log message in afr-open.c
Change-Id: I682c9e1281867e6ccbed7099268e4015f9783ccd
BUG: 3443
Reviewed-on: http://review.gluster.com/648
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Pranith Kumar Karampuri <pranithk@gluster.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Fixes self-heal of special files like device files, fifo files, socket files
etc. Does it by doing the following:
* Prevent setting of pending data xattr on a special file during entry self-heal
when a new file is created.
* Allow data self-heal to be started on all file types other than directories.
During data self-heal, for special files just erase pending xattrs, if those
xattrs were set by previous releases of glusterfs.
Change-Id: I1a36670b7287292d579b53852e25cdd452d55605
BUG: 3525
Reviewed-on: http://review.gluster.com/647
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Pranith Kumar Karampuri <pranithk@gluster.com>
|
|
|
|
|
|
|
|
| |
Change-Id: I41e6f39c5d0621942a310f550250034fd520ec76
BUG: 3761
Reviewed-on: http://review.gluster.com/644
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Amar Tumballi <amar@gluster.com>
|
|
|
|
|
|
|
|
| |
Change-Id: I895574dd6fa411784eb5282c799ccf3ff7c65625
BUG: 3747
Reviewed-on: http://review.gluster.com/635
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Vijay Bellur <vijay@gluster.com>
|
|
|
|
|
|
|
|
|
|
|
|
| |
Afr needs to send the xattr_req without gfid so instead of modifying
the xattr_req that comes from parent xlators take a copy and then
modify.
Change-Id: I7ee9e941eb931d67f3c89feb664a257edd01803b
BUG: 3747
Reviewed-on: http://review.gluster.com/634
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Vijay Bellur <vijay@gluster.com>
|
|
|
|
|
|
|
|
| |
Change-Id: I9bbdfe79664c1339b66819a6c7ea4b7698beb5c6
BUG: 3757
Reviewed-on: http://review.gluster.com/640
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Amar Tumballi <amar@gluster.com>
|
|
|
|
|
|
|
|
|
|
|
|
| |
This prevents a possible race between mknod(REGULUAR files) and remove.
mknod first creates on the first_child, and only if successful, on other
subvolumes.
Change-Id: I73822a9518a2e80685eff6446506d2c56783d47f
BUG: 3727
Reviewed-on: http://review.gluster.com/623
Reviewed-by: Amar Tumballi <amar@gluster.com>
Tested-by: Gluster Build System <jenkins@build.gluster.com>
|
|
|
|
|
|
|
|
| |
Change-Id: Ie831ae8542c1382c17fb7837cd18b0e4e4d3db75
BUG: 3734
Reviewed-on: http://review.gluster.com/619
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Vijay Bellur <vijay@gluster.com>
|
|
|
|
|
|
|
|
| |
Change-Id: Ib759befe1800bc6fd93bdf44f3a7f89bfffff46e
BUG: 3734
Reviewed-on: http://review.gluster.com/612
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Vijay Bellur <vijay@gluster.com>
|
|
|
|
|
|
|
|
| |
Change-Id: I771045aca9f9a811744aeec0d844609a37ae4792
BUG: 3734
Reviewed-on: http://review.gluster.com/611
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Vijay Bellur <vijay@gluster.com>
|
|
|
|
|
|
|
|
| |
Change-Id: Ibc23fef417bcf613850e03dc4dadcc88f89e2b6f
BUG: 2586
Reviewed-on: http://review.gluster.com/59
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Vijay Bellur <vijay@gluster.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
gfid mismatch issue-
rmdir- first remove from non first child (FC), and then last from FC. If one
fails, FC entry is not removed and op is failed.
mkdir- first create dir from FC, followed by other childs. If FC is success
then, we succeed, banking on entry self heal
ENOTEMPTY issue-
unlink: remove from non FC and then on success remove from FC. If non FC remove
fails, fail unlink
create- Create first on FC, and on success create on non FC.
Change-Id: I89cb6e069762a1d45669335330e9381c23de3197
BUG: 3663
Reviewed-on: http://review.gluster.com/566
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Amar Tumballi <amar@gluster.com>
|
|
|
|
|
|
|
|
| |
Change-Id: I8a0a91c2ddb7c487d06a9d5aeaed593b5e84abef
BUG: 2591
Reviewed-on: http://review.gluster.com/569
Reviewed-by: Amar Tumballi <amar@gluster.com>
Tested-by: Gluster Build System <jenkins@build.gluster.com>
|
|
|
|
|
|
|
|
|
|
|
| |
this will be destroyed in cbk. Porting commit
d7642fb9bc13bb9c2da35bd8e80c311d5fc5096c from master.
Change-Id: I46ea53433e782af48f06dda1ab1390b900966e8a
BUG: 3505
Reviewed-on: http://review.gluster.com/524
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Amar Tumballi <amar@gluster.com>
|
|
|
|
|
|
|
|
|
| |
This reverts commit 81456ec2dfb312ae60c5c4e6f960a3cbf8aaaa4c.
Change-Id: Id03335117f5137f5d09781850bf4fba6eca0f73d
Reviewed-on: http://review.gluster.com/492
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Vijay Bellur <vijay@gluster.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This patch is a change in the way write transactions hold a lock
which optimizes the case of sequential writes from a single writer.
Lock phase of a transaction has two sub-phases. First is an attempt
to acquire locks in parallel by broadcasting non-blocking lock
requests. If lock aquistion fails on any server, then the held locks
are unlocked and revert to a blocking locked mode sequentially on
one server after another.
The change in this patch is to make the initial broadcasting lock
request attempt to acquire lock on the entire file. If this fails,
we revert back to the sequential "regional" blocking lock as before.
In the case where such an "eager" lock is granted in the non-blocking
phase, it gives rise to an opportunity for optimization. i.e, if
the next write transaction on the same FD arrives before the unlock
phase of the first transaction, it "takes over" the full file lock.
Similarly if yet another transaction arrives before the unlock phase
of the "optimized" transaction, that in turn "takes over" the lock
as well. The actual unlock now happens at the end of the last
"optimzed" transaction.
Any operation which arrives before the unlock phase of the previous
transaction is a potential candidate to become an "optimized"
transaction. In cases where the previous transaction had aquired
lock as a "regional" blocking lock, and the next transaction comes
in before its unlock phase, then it would not be an "optimized"
transaction.
Implied assumption
------------------
Since two or more transactions can now operate within the same
large lock, there is a possibility that overlapping transactions
can arrive at oppoosite orders on the servers. However in the
larger picture this is not possible as write-behind already
ensures that no two overlapping writes on an inode are in transit
at the same time. Overlapping writes across clients are not a
problem as they compete at locks anyways.
Theoretical benefits and potential harms
----------------------------------------
In case of a single writer: The benefits are large for sequential
writes. In the best case the entire file write can happen with just
one lock and unlock per server, provided writes are coming in fast
enough and getting pipelined by write-behind soon enough (which is
usually the case). If the writes are not coming in fast enough, then
the optimization "kicks in" for only those subsets of writes which
are close enough to get "piggybacked". For random writes the benefits
are the same as well. In any case the overall performance is better
than or equal to the performance without this optimization for a single
writer.
In case of multiple writers: When multiple writers are not writing
concurrently, there is no negative performance impact. When multiple
writers are writing concurrently to the same region, there is no
negative impact either, as they were previously getting arbitrated
at the locks translator too. In the case of multiple writers writing
to different regions concurrently, there will be an increased number
of "failovers" from failed parallel non-blocking to sequential blocking
regional locks. This above "worst case" has a simple workaround that
as soon as we detect > 1 open-fd-count in lookup xattr, we can disable
this optimization on those fds.
Beneficial side-effects
-----------------------
There is another similar optimization in AFR for changelogs which goes
by the name of "changelog-piggybacking". That works in a similar way where
pending flags get 'taken over' or 'piggybacked' by the next transaction
if its 'pre-op' phase kicks in before the 'post-op' phase of the
previous transaction. It has been observed that this changelog-piggybacking
optimization gives a saving of about ~55% savings of xattr calls hitting
the wire, measured across various types of network interfaces. The side
effect of this eager-lock optimization is that it gives an almost 100%
saving of xattr calls by making the optimistic-changelog work much more
efficiently as it gives a wider overlap of the xattr phases of two
consecutive transactions.
Change-Id: I41c02eb3b64c14c68ef66a344610ec3f024cd59d
BUG: 3409
Reviewed-on: http://review.gluster.com/243
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Anand Avati <avati@gluster.com>
|
|
|
|
|
|
|
|
| |
Change-Id: Iec8b609e66ef21f4fdd6ee2ff3060f0b71d47ca0
BUG: 3046
Reviewed-on: http://review.gluster.com/237
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Amar Tumballi <amar@gluster.com>
|
|
|
|
|
|
|
| |
Change-Id: I0c54fd1c15550e5e5551e95ed32adb14d8029fab
Reviewed-on: http://review.gluster.com/238
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Anand Avati <avati@gluster.com>
|
|
|
|
|
|
|
|
| |
Change-Id: Ie67c4da49876555c3162909e474b9089a85f99a6
BUG: 3182
Reviewed-on: http://review.gluster.com/256
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Anand Avati <avati@gluster.com>
|
|
|
|
|
|
|
|
|
|
|
|
| |
so stripe is more acl friendly
Porting patch ded0a9a2a0a9024def7a4b199ac3bbfa5d66485a from master
Change-Id: I0c7d8fb90714a4d92620646d940a58be58a3cf66
BUG: 3368
Signed-off-by: Amar Tumballi <amar@gluster.com>
Reviewed-on: http://review.gluster.com/202
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Anand Avati <avati@gluster.com>
|
|
|
|
|
|
|
|
| |
Change-Id: Id1f1a91cf15d933d5621a0073ddaebe02df0f159
BUG: 3348
Reviewed-on: http://review.gluster.com/198
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Anand Avati <avati@gluster.com>
|
|
|
|
|
|
|
|
| |
Change-Id: Ibf5f45431d7a55b70d7304649af652d6f25bb688
BUG: 3348
Reviewed-on: http://review.gluster.com/183
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Anand Avati <avati@gluster.com>
|
|
|
|
|
|
|
|
|
|
|
|
| |
The presence of local->cached_subvol makes dht_lookup_everywhere_done behave
as though it was a lookup on a file where linkfile needs to be recreated. In
a fresh lookup, local->cached_subvol should be NULL.
Change-Id: Ie6bd6ad536def03d970526d51e20c6daeb00922b
BUG: 3317
Reviewed-on: http://review.gluster.com/186
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Anand Avati <avati@gluster.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This is done, so that there is no gfid mismatch. Unlink the older
linkfile if it exists, and recreate it with the correct gfid.
Also removed unused rename related code.
BUG: 2522
Change-Id: Ia880adda5a94351f30971576b4faa861fac4682d
Reviewed-on: http://review.gluster.com/144
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Anand Avati <avati@gluster.com>
|
|
|
|
|
|
|
|
| |
Change-Id: Ib9cac6ed1635203802f089986f8acb1ce416265d
BUG: 3215
Reviewed-on: http://review.gluster.com/97
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Anand Avati <avati@gluster.com>
|
|
|
|
|
|
|
|
|
|
| |
also do some cleanups
Change-Id: Id792ac11b61627201ca08b9f271724dc3e9c5cd7
BUG: 3253
Reviewed-on: http://review.gluster.com/111
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Anand Avati <avati@gluster.com>
|
|
|
|
|
|
|
|
|
|
|
|
| |
In the pre-GFID era, the linkfile of the destination file could be reused
the linkfile for the renamed file when dst_cached == src_cached.
This patch handles this situation and reverts the previous (wrong) fix.
Change-Id: Iba57b5eb91cf8b1fb40e74f6399cdf99b8b00410
BUG: 2464
Reviewed-on: http://review.gluster.com/89
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Amar Tumballi <amar@gluster.com>
|
|
|
|
|
|
|
|
|
|
|
|
| |
when the code path enters the 'subvol_filled()' case, local->params is set,
which contains the 'gfid-req' value, but the linkfile creation was not
checking for its existance.
Signed-off-by: Amar Tumballi <amar@gluster.com>
Signed-off-by: Anand Avati <avati@gluster.com>
BUG: 3159 (mknod (linkfile creation) with no 'gfid-req' key)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=3159
|
|
|
|
|
|
|
|
|
| |
let the race get arbitrated at the dst_hashed subvolume.
Signed-off-by: Anand Avati <avati@gluster.com>
BUG: 2522 ([glusterfs-3.1.3qa8]: rm -rf shows invalid argument)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=2522
|
|
|
|
|
|
|
|
|
|
| |
Return the values received from the subvol
Signed-off-by: shishir gowda <shishirng@gluster.com>
Signed-off-by: Anand Avati <avati@gluster.com>
BUG: 3057 (acl permissions don't work on nfs mount)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=3057
|
|
|
|
|
|
|
|
| |
Signed-off-by: Pranith Kumar K <pranithk@gluster.com>
Signed-off-by: Vijay Bellur <vijay@gluster.com>
BUG: 3138 ([release-3.2]: ls shows 2 entries)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=3138
|
|
|
|
|
|
|
|
|
|
|
|
| |
Lookup uses the sources array to decide if a child is read_child or not.
So if afr_mark_sources returns 0 i.e. all children are sources,
explicitly mark them as sources.
Signed-off-by: Pranith Kumar K <pranithk@gluster.com>
Signed-off-by: Vijay Bellur <vijay@gluster.com>
BUG: 3138 ([release-3.2]: ls shows 2 entries)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=3138
|
|
|
|
|
|
|
| |
Signed-off-by: Anand Avati <avati@gluster.com>
BUG: 2815 (Server-enforced ACLs)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=2815
|
|
|
|
|
|
|
|
| |
Signed-off-by: Pranith Kumar K <pranithk@gluster.com>
Signed-off-by: Anand Avati <avati@gluster.com>
BUG: 3072 (Crash in afr_access_cbk)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=3072
|
|
|
|
|
|
|
|
| |
Signed-off-by: Pranith Kumar K <pranithk@gluster.com>
Signed-off-by: Anand Avati <avati@gluster.com>
BUG: 3077 (afr [f]truncate locks wrong region in transaction)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=3077
|
|
|
|
|
|
|
|
| |
Signed-off-by: Krishnan Parthasarathi <kp@gluster.com>
Signed-off-by: Anand Avati <avati@gluster.com>
BUG: 3050 ('replace-brick' hangs on vm's)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=3050
|