| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
with the option, the idea is all client-side caching will be disabled,
where as on server side process, the fd will be treated as a regular
fd, thus helping the performance better.
"gluster volume set <VOLNAME> remote-dio enable" would set
this option in client protocol volumes.
Change-Id: I08f3d1f6fed6da58501b5b94e5572216593c2847
Signed-off-by: Amar Tumballi <amarts@redhat.com>
BUG: 856156
Reviewed-on: https://code.engineering.redhat.com/gerrit/1685
Reviewed-by: Vijay Bellur <vbellur@redhat.com>
Tested-by: Vijay Bellur <vbellur@redhat.com>
Reviewed-on: https://code.engineering.redhat.com/gerrit/1885
|
|
|
|
|
|
|
|
|
|
| |
Change-Id: I47b93a5e72f06bda016b5b9ab820cbc8f99fab28
BUG: 871323
Signed-off-by: Pranith Kumar K <pkarampu@redhat.com>
Reviewed-on: https://code.engineering.redhat.com/gerrit/182
Reviewed-by: Vijay Bellur <vbellur@redhat.com>
Tested-by: Vijay Bellur <vbellur@redhat.com>
Reviewed-on: https://code.engineering.redhat.com/gerrit/1884
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
should help VM hosting performance when there are more VMs are
hosted from a single data store.
Change-Id: I0f2df352e410e10845cfade5f27fe1b0b5b06250
Signed-off-by: Amar Tumballi <amarts@redhat.com>
BUG: 859589
Reviewed-on: https://code.engineering.redhat.com/gerrit/1504
Reviewed-by: Vijay Bellur <vbellur@redhat.com>
Tested-by: Vijay Bellur <vbellur@redhat.com>
Reviewed-on: https://code.engineering.redhat.com/gerrit/1883
|
|
|
|
|
|
|
|
|
|
| |
Change-Id: Id057606c2882584310119a1e7dd8674943857841
BUG: 866565
Signed-off-by: Krutika Dhananjay <kdhananj@redhat.com>
Reviewed-on: https://code.engineering.redhat.com/gerrit/178
Reviewed-by: Vijay Bellur <vbellur@redhat.com>
Tested-by: Vijay Bellur <vbellur@redhat.com>
Reviewed-on: https://code.engineering.redhat.com/gerrit/1882
|
|
|
|
|
|
|
|
|
|
| |
Change-Id: I4c170464cb9aa013588d615c2916bf87c370e9dc
BUG: 861015
Signed-off-by: Pranith Kumar K <pkarampu@redhat.com>
Reviewed-on: https://code.engineering.redhat.com/gerrit/162
Reviewed-by: Vijay Bellur <vbellur@redhat.com>
Tested-by: Vijay Bellur <vbellur@redhat.com>
Reviewed-on: https://code.engineering.redhat.com/gerrit/1881
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Problem:
When posix-aio is enabled to perform aio fd is set with O_DIRECT
whenever possible in read, writev fops. Rchecksum does not take
this into account. If either offset/size/memory-buf passed to
pread in rchecksum fop is not aligned, pread fails with EINVAL.
Fix:
Before doing pread necessary O_DIRECT manipulation is done when
aio is enabled. Memory buffer passed to pread is now page-aligned.
Test:
1) Create replica volume with aio enabled.
2) dd if=/dev/urandom of=a bs=1M count=1
3) kill one of the bricks in the replica pair
4) dd if=/dev/urandom of=a bs=1M count=1
5) bring back the brick. Self-heal succeeds after the change.
The test above checks both rchecksum, writev fops that were
changed in this patch.
Change-Id: I5126e20ca1d6aeb71d4d66d14de277729fc8e89f
BUG: 866459
Signed-off-by: Pranith Kumar K <pkarampu@redhat.com>
Reviewed-on: https://code.engineering.redhat.com/gerrit/156
Reviewed-by: Vijay Bellur <vbellur@redhat.com>
Tested-by: Vijay Bellur <vbellur@redhat.com>
Reviewed-on: https://code.engineering.redhat.com/gerrit/1880
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Problem:
Eager locking lk-owner decision is taken before transaction
type is set. Default transaction type is DATA so all transactions
are treated as DATA transactions at the time of eager-locking
decision.
Fix:
Move the code that takes lk-owner decision after the transaction
type is set.
Test:
Checked that the transaction type is set properly in gdb at
the time of the lk-owner decision.
Change-Id: Icb1464bc572cf0be73bdd4d5803a2326b5d22655
BUG: 865321
Signed-off-by: Pranith Kumar K <pkarampu@redhat.com>
Reviewed-on: https://code.engineering.redhat.com/gerrit/85
Reviewed-by: Vijay Bellur <vbellur@redhat.com>
Tested-by: Vijay Bellur <vbellur@redhat.com>
Reviewed-on: https://code.engineering.redhat.com/gerrit/1879
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
'gluster volume set <volname> subvols-per-directory <value> ' will
control to how many (value) subvolume's the directories layout
will be spread.
Change-Id: I0aed937f6bbc66629e36b6a856432e51b180747c
BUG: 865669
Signed-off-by: shishir gowda <sgowda@redhat.com>
Reviewed-on: https://code.engineering.redhat.com/gerrit/122
Reviewed-by: Krishnan Parthasarathi <kparthas@redhat.com>
Reviewed-by: Vijay Bellur <vbellur@redhat.com>
Tested-by: Vijay Bellur <vbellur@redhat.com>
Reviewed-on: https://code.engineering.redhat.com/gerrit/1877
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Problem:
The problem is observed when kernel untar is done. One file untar
happens every second. The reason for this is, setattr lock is blocked
on the prev fd data-transaction full-lock (because of eager-lock).
Because of post-op-delay the post-op (xattrop + unlock) of the prev
data-transaction happens after 1 sec.
Until this the setattr is blocked resulting in performance problems
in untar.
Fix:
Whenever an loc data, meta-data transaction comes, it should wakeup
the prev-post-op on the same process' fd.
Tests:
The performance problem in untar went away. I put a breakpoint in
client_finodelk for a 2G file dd and the inodelk is hit only 4 times.
This confirms that the change does not affect post-op-delay in a
-ve way.
Change-Id: I32e272727f8ea03ae8768509695bbae183aff17d
BUG: 853679
Signed-off-by: Pranith Kumar K <pkarampu@redhat.com>
Reviewed-on: https://code.engineering.redhat.com/gerrit/83
Reviewed-by: Vijay Bellur <vbellur@redhat.com>
Tested-by: Vijay Bellur <vbellur@redhat.com>
Reviewed-on: https://code.engineering.redhat.com/gerrit/1876
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* In general use buf->ia_gfid for gfid instead of inode's gfid
in the callbacks of the fops where new inode is created (such
as create, mkdir, mknod, symlink). In the callback path inode
would not be having the gfid within it, if it is not yet linked
to the inode table which happens in protocol/server.
Change-Id: Ie2e5ce6d25181e13d32c1ab99ee488a55fe64117
BUG: 848318
Signed-off-by: Raghavendra Bhat <raghavendra@redhat.com>
Reviewed-on: https://code.engineering.redhat.com/gerrit/64
Reviewed-by: Vijay Bellur <vbellur@redhat.com>
Tested-by: Vijay Bellur <vbellur@redhat.com>
Reviewed-on: https://code.engineering.redhat.com/gerrit/1875
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Linux AIO needs O_DIRECT to be set for effective operation. O_DIRECT
in turn has constraints on when it can work (offset, size alignment)
So use O_DIRECT (unless instructed by application) only when offset
and size alignments match. Else, io_submit() will happen over
non-O_DIRECT fd, effectively blocking till the completion of the IO.
Also fix a multithreading bug where detection/setting of O_DIRECT
for a request was not atomic with io_submit() of that request.
Change-Id: I190017e8bc78217429aff0714dca224cbe6f251d
BUG: 859406
Signed-off-by: Amar Tumballi <amarts@redhat.com>
Reviewed-on: http://review.gluster.org/4006
Tested-by: Amar Tumballi <amarts@redhat.com>
Original-Author: Anand Avati <avati@redhat.com>
Reviewed-on: https://code.engineering.redhat.com/gerrit/61
Reviewed-by: Vijay Bellur <vbellur@redhat.com>
Tested-by: Vijay Bellur <vbellur@redhat.com>
Reviewed-on: https://code.engineering.redhat.com/gerrit/1874
|
|
|
|
|
|
|
|
| |
Change-Id: Iad1acb3fb744d0a30498bddbee32e64fa0413f66
BUG: 858469
Reviewed-on: https://code.engineering.redhat.com/gerrit/1873
Reviewed-by: Vijay Bellur <vbellur@redhat.com>
Tested-by: Vijay Bellur <vbellur@redhat.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* If parent inode is NULL (nameless lookups which uses gfid for looking up the
inode), then try to get it by inode_parent, instead of returning which results
in the inode's contribution not being added to the list.
* Prevent exceesive logging while adding the inode's contribution to the list
if the operation fails. (Check if the inode's gfid is null which indicates
that the inode is not yet linked to the inode table and hence addition
of its contribution to the list can fail).
BUG: 851953
Change-Id: I4539b0534894e9d9cf5036c12fbf591ecad586bb
Signed-off-by: Raghavendra Bhat <raghavendra@redhat.com>
Reviewed-on: https://code.engineering.redhat.com/gerrit/35
Reviewed-by: Vijay Bellur <vbellur@redhat.com>
Tested-by: Vijay Bellur <vbellur@redhat.com>
Reviewed-on: https://code.engineering.redhat.com/gerrit/138
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Also no need to free the xlator object after rebalance is over, as the process
is about to be killed.
Change-Id: Id13cc74edf367660eef96ce215878e4dac7b4ba1
BUG: 862981
Signed-off-by: Raghavendra Bhat <raghavendra@redhat.com>
Reviewed-on: https://code.engineering.redhat.com/gerrit/53
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/1872
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* 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>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- 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>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
[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>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* 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>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* 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>
|
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
|
|
|
| |
... 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>
|
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- 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>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
(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>
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
| |
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>
|