summaryrefslogtreecommitdiffstats
path: root/glusterfs.spec.in
Commit message (Collapse)AuthorAgeFilesLines
* extras/hooks: Install and package newly added post add-brick hook scriptAnoop C S2019-07-161-0/+1
| | | | | | | | | | | | | | | | | | https://review.gluster.org/c/glusterfs/+/22913 added a new SELinux hook script as a post add-brick operation to label new brick paths. But the change failed to install and package new script. Therefore making necessary changes to Makefile and spec file to get it installed and packaged. Backport of: > Change-Id: I67b8f4982c2783c34a4bc749fb4387c19a038225 > fixes: bz#1717953 > Signed-off-by: Anoop C S <anoopcs@redhat.com> Change-Id: I67b8f4982c2783c34a4bc749fb4387c19a038225 fixes: bz#1718227 Signed-off-by: Anoop C S <anoopcs@redhat.com> (cherry picked from commit 647a1b83fa39a635b01fcba38a330485fcd6afdb)
* rpm: add thin-arbiter packagev6.0rc1Ashish Pandey2019-03-131-1/+38
| | | | | | | | | | | | | | | | | | | | Discussion on thin arbiter volume - https://github.com/gluster/glusterfs/issues/352#issuecomment-350981148 Main idea of having this rpm package is to deploy thin-arbiter without glusterd and other commands on a node, and all we need on that tie-breaker node is to run a single glusterfs command. Also note that, no other glusterfs installation needs thin-arbiter.so. Make sure RPM contains sample vol file, which can work by default, and a script to configure that volfile, along with translator image. Change-Id: Ibace758373d8a991b6a19b2ecc60c93b2f8fc489 updates: bz#1672818 Signed-off-by: Amar Tumballi <amarts@redhat.com> Signed-off-by: Ashish Pandey <aspandey@redhat.com> (cherry picked from commit ca9bef7f1538beb570fcb190ff94f86f0b8ba38a)
* packaging: rdma on s390x, unnecessary ldconfig scriptletsKaleb S. KEITHLEY2019-03-081-10/+10
| | | | | | | | | | | | | | | | s390x has rdma since around fedora27, and in RHEL7 since July 2016. see https://src.fedoraproject.org/rpms/glusterfs/pull-request/5 Reported-By: Igor Gnatenko Reported-By: Dan HorĂ¡k <dan@danny.cz> master branch Change-Ids: > Change-Id: Idad29425495f9c69bfd84b53b009a607abb418f0 > Change-Id: I914f36290e96a387cdd64ee633e75c2940ec1e56 Change-Id: I7747700e982b365533ebd031164708b9ad97f18a fixes: bz#1686875 Signed-off-by: Kaleb S. KEITHLEY <kkeithle@redhat.com>
* eventsapi: Fix Python3 compatibility issuesAravinda VK2019-02-261-1/+4
| | | | | | | | | | | | - Fixed Relative import and non-package import related issues. - socketserver import issues fix - Renamed installed directory name to `gfevents` from `events`(To avoid any issues with other global libs) Fixes: bz#1683008 Change-Id: I3dc38bc92b23387a6dfbcc0ab8283178235bf756 Signed-off-by: Aravinda VK <avishwan@redhat.com> (cherry picked from commit cd68f7b88b9a2c9a4e4ff9fca61517384e54130a)
* build: do not install service related files when building --without-serverNiels de Vos2019-02-261-1/+3
| | | | | | | | | | | | | | | It seems that glusterfs-6 disables building the server (./configure --without-server) on el6 and hence the installed but unpackaged files should not get installed in the first place. Backport of commit 30f358bb6b69b8c31da550608a4996a84e8b420b: > Change-Id: I7bea08202dd59ac309de8bc861da920ed3600bc6 > Fixes: bz#1680587 > Signed-off-by: Niels de Vos <ndevos@redhat.com> Change-Id: I7bea08202dd59ac309de8bc861da920ed3600bc6 Fixes: bz#1680586 Signed-off-by: Niels de Vos <ndevos@redhat.com>
* build: include gluster/__init__.* files for python packagingNiels de Vos2019-02-251-0/+3
| | | | | | | | | | | | | | | | | | | | | The gluster/__init__.py file was originaly part of the glupy installation. This file is required to have the python-gluster package function correctly, it is expected to provide the 'gluster' namespace for other python packages (like from the libgfapi-python project). Because glupy does not exist anymore, this file is now added to in a new extras/python directory. Backport of commit b235a56394c09bb1d7308a620053dbe098d15967: > Change-Id: I14fe959778ee3344d7d54ba342c7928a4d8080a2 > Fixes: c3fcff9ccbfcec1be242fd5cf210c9995586b078 > Fixes: 8293d21280fd6ddfc9bb54068cf87794fc6be207 > Updates: bz#1642810 > Signed-off-by: Niels de Vos <ndevos@redhat.com> Change-Id: I04e1e0dc4022b53c02053d5452f305b78e56c389 Updates: bz#1680585 Signed-off-by: Niels de Vos <ndevos@redhat.com>
* packaging: Obsoleting glusterfs-gnfs for upgradeSahina Bose2019-02-221-0/+6
| | | | | | | | | | | | | | Master branch reference >link : https://review.gluster.org/#/c/glusterfs/+/22190/ >fixes: bz#1672711 >Change-Id: Iad7194e788a8eeecd617614e9f8a1fe3264a384d >Signed-off-by: Sahina Bose <sabose@redhat.com> >Signed-off-by: Jiffin Tony Thottan <jthottan@redhat.com> >(cherry picked from commit d3608bd26cbc3e47fc0e60e85bd9f66515e050b1) fixes: bz#1679965 Change-Id: Iad7194e788a8eeecd617614e9f8a1fe3264a384d Signed-off-by: Jiffin Tony Thottan <jthottan@redhat.com>
* extras: New group volume set command for Samba integrationAnoop C S2018-12-141-0/+1
| | | | | | | | | | | | | | | | | | | # gluster volume set <VOLNAME> group samba List of volume set options from group-samba are aimed at improving the below workloads which consumes time and network hops in SMB world: * Listing of large directories * Negative lookups during creation of files Caching the necessary metadata required for these workloads saves us time and network hops. On the other side we have to ensure correctness(avoiding stale cache) in caching(via md-cache) with the help of cache invalidation in an environment where multiple client access is expected. Change-Id: Icdd2d8e5eb290e12bc509105418c668f432f4eae fixes: bz#1656771 Signed-off-by: Anoop C S <anoopcs@redhat.com>
* symlink-cache: remove from the buildAmar Tumballi2018-12-131-3/+0
| | | | | | | | | | | | | | | symlink-cache was written as an experiment to reduce the load on 'build' systems, which keep doing symlink resolution to get the proper header files. But since last 6+ years, there was no way to add it to the volfile using gluster cli, and hence was not supported anymore. As it is not maintained, and as announced on [1], we are planning to remove it from the build system. [1]- https://lists.gluster.org/pipermail/gluster-users/2018-July/034400.html updates: bz#1635688 Change-Id: Iaa25069bceed04cf65f79a4b4a02c05cee848eb5 Signed-off-by: Amar Tumballi <amarts@redhat.com>
* encryption: remove crypt xlator from buildAmar Tumballi2018-12-111-4/+0
| | | | | | | | | | | | | | | | | | Based on the proposal to remove few features as they are not actively maintained [1], removing crypt translator from the build. [1] - https://lists.gluster.org/pipermail/gluster-users/2018-July/034400.html Crypt xlator helped in on-disk / at-rest encryption of data. But currently as there are no maintainers for this, planning to remove it from master codebase. We are planning to host these experimental/ tech-preview xlators in another repository, so people who want to contribute can still use the bits. updates: bz#1635688 Change-Id: I7f2453907a595c34f635a88c49aab0845369c6e7 Signed-off-by: Amar Tumballi <amarts@redhat.com>
* extras: Add group-distributed-virt for single-brick ovirt-gluster use-caseKrutika Dhananjay2018-12-051-0/+4
| | | | | | Change-Id: I930011327332b7ba30cc76f614efaf5932eb4f3d fixes: bz#1654138 Signed-off-by: Krutika Dhananjay <kdhananj@redhat.com>
* build: add option to compile with ThreadSanitizerNiels de Vos2018-11-271-0/+16
| | | | | | | | | | | | ThreadSanitizer is a debugging tool that can detect threads that race for data modifications. These races can result in data corruption and are difficult to track and fix. Change-Id: Ibbdaf17c811e30e79cd5bdcf9cd9ff2d0cdb2abb URL: https://github.com/google/sanitizers/wiki/ThreadSanitizerCppManual Reported-by: Yaniv Kaul <ykaul@redhat.com> Fixes: #543 Signed-off-by: Niels de Vos <ndevos@redhat.com>
* bd: remove from the buildAmar Tumballi2018-11-081-7/+0
| | | | | | | | | | | | Based on the proposal to remove few features as they are not actively maintained [1], removed BD (block device) translator from the build. [1] - https://lists.gluster.org/pipermail/gluster-users/2018-July/034400.html Updates: bz#1635688 Change-Id: Ia96db406c58a7aef355dde6bc33523bb2492b1a9 Signed-off-by: Amar Tumballi <amarts@redhat.com>
* glupy: remove from the buildAmar Tumballi2018-11-081-26/+0
| | | | | | | | | | | | | | | Based on the proposal to remove few features as they are not actively maintained [1], removing 'glupy' translator from the build. [1] https://lists.gluster.org/pipermail/gluster-users/2018-July/034400.html This patch aims at clearing the translator from build and tests. A followup is needed to remove the code from repository. Updates: bz#1642810 Change-Id: I41d0c1956330c3bbca62c540ccf9ab01bbf3a092 Signed-off-by: Amar Tumballi <amarts@redhat.com>
* xlators/experimental: remove from the buildAmar Tumballi2018-11-081-16/+0
| | | | | | | | | | | | | | Based on the proposal to remove few features as they are not actively maintained [1], removing all experimental translators from the build. [1] https://lists.gluster.org/pipermail/gluster-users/2018-July/034400.html Note that as followup patch, there would be a patch to remove the code. Updates: bz#1635688 Change-Id: I8ebc256517feb37fc7580104e8bebe27d047f959 Signed-off-by: Amar Tumballi <amarts@redhat.com>
* tiering: remove the translator from build and glusterdAmar Tumballi2018-11-021-16/+0
| | | | | | | | | | | | | Based on the proposal to remove few features as they are not actively maintained [1], removing tier translator from the build. Also make sure there are no regression tests involving tiering feature are present. [1] https://lists.gluster.org/pipermail/gluster-users/2018-July/034400.html Change-Id: I2c177f711f9b54b7b24e1a13525ff3132bd9a9c5 updates: bz#1642807 Signed-off-by: Amar Tumballi <amarts@redhat.com>
* build/packaging: el-X (x > 7) ismsKaleb S. KEITHLEY2018-10-301-1/+7
| | | | | | | | | | | | | | | | | lvm2(-devel) 2.03.00 no longer has liblvm2app.so. (I expect a similar change in fedora-30 before too much longer, but for now fedora-30 still has lvm2 and lvm2-devel 2.02.181 rpcgen has been removed from glibc-common and unbundled rpcgen is now required. And I guess nobody has ever built rpms with '--without bd' or we would have discovered the attempted inclusion of .../storage/bd.so in the rpm when it hadn't actually been built. Change-Id: I71e26c3d06af5d329ae89cc249a4ad88664ddf53 updates: bz#1193929 Signed-off-by: Kaleb S. KEITHLEY <kkeithle@redhat.com>
* packaging: remove RHEL5-isms from glusterfs.spec(.in)Kaleb S. KEITHLEY2018-10-081-90/+2
| | | | | | | | | | | CentOS5 too It's been a couple of years since we stopped doing anything with RHEL/CentOS 5 Change-Id: I83e78fa84b93fa5baddaf3fab92736d692a9bbca updates: bz#1193929 Signed-off-by: Kaleb S. KEITHLEY <kkeithle@redhat.com>
* python3: assume python3 unless building _packages_ on sys without py3Kaleb S. KEITHLEY2018-09-271-0/+6
| | | | | | | | | | | | | | | The jenkins release-new job runs on a CentOS 7 box, which does not have python3. As a result it runs (autogen.sh and) configure before producing the dist tar file, converting all the python3 shebangs to python2 shebangs in the dist tar file. Then when that tar file is "carried" to, e.g. Fedora koji build system to build packages, the shebangs are incorrect, despite having originally been correct in the git repo. Change-Id: I5154baba3f6d29d3c4823bafc2b57abecbf90e5b updates: #411 Signed-off-by: Kaleb S. KEITHLEY <kkeithle@redhat.com>
* packaging: glusterfs.spec(.in) cleanupKaleb S. KEITHLEY2018-09-171-20/+20
| | | | | | | | | | | | | Someone (not me) once alphabetized all the %package, %files, and etc. sections, with a comment to keep them alphabetized. Move cloudsync sections to their correct locations in the spec. Also reorder testing and playground within %files section, keep testing %dirs together. Change-Id: I79e2e7a82d20275fd61d018880bcb5913c8f75f3 updates: bz#1193929 Signed-off-by: Kaleb S. KEITHLEY <kkeithle@redhat.com>
* rpm: add "--with asan" build optionNiels de Vos2018-09-111-0/+16
| | | | | | | | | | | | RHEL-6 does not have libasan, enabling the "--with asan" option is a no-op there. RHEL-7 has an earlier version of libasan, and that does not have the __asan_init symbol. Test for __asan_report_error in confiure.as instead. Change-Id: I6322e832c5cfbd7d750f5c32c84c28771674ced6 Updates: #492 Signed-off-by: Niels de Vos <ndevos@redhat.com>
* core: python3Kaleb S. KEITHLEY2018-09-031-44/+59
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | see https://review.gluster.org/#/c/19788/, https://review.gluster.org/#/c/19871/, https://review.gluster.org/#/c/19952/, https://review.gluster.org/#/c/20104/, https://review.gluster.org/#/c/20162/, https://review.gluster.org/#/c/20185/, https://review.gluster.org/#/c/20207/, https://review.gluster.org/#/c/20227/, https://review.gluster.org/#/c/20307/, https://review.gluster.org/#/c/20320/, https://review.gluster.org/#/c/20332/, https://review.gluster.org/#/c/20364/, https://review.gluster.org/#/c/20441/, and https://review.gluster.org/#/c/20484 shebangs changed from /usr/bin/python2 to /usr/bin/python3. (Reminder, various distribution packaging guidelines require use of explicit python version and don't allow '#!/usr/bin/env python', regardless of how handy that idiom may be.) glusterfs.spec(.in) package python{2,3}-gluster and python2 or python3 dependencies as appropriate. configure(.ac): + test for and use python2 or python3 as appropriate. If build machine has python2 and python3, use python3. Override by setting PYTHON=/usr/bin/python2 when running configure. + PYTHONDEV_CPPFLAGS from python[23]-config --includes is a better match to the original python sysconfig.get_python_inc(). All those other extraneous flags breaks the build. + Only change the shebangs once. Changing them over and over again, e.g., during a `make glusterrpms` in extras/LinuxRPM just sends make (is it really make that's looping?) into an infinite loop. If you figure out why, let me know. + Oldest python2 is python2.6 on CentOS 6 and Debian 8 (Jessie). Everything else has 2.7 or 3.x + logic from https://review.gluster.org/c/glusterfs/+/21050, which needs to be removed/merged after that patch is merged. Builds on CentOS 6, CentOS 7, Fedora 28, Fedora rawhide, and the mysterious RHEL > 7. Change-Id: Idae21d3b6f58b32372e1daa0d234e491e563198f updates: #411 Signed-off-by: Kaleb S. KEITHLEY <kkeithle@redhat.com>
* xlators/playground: fix the template files with latest requirementsAmar Tumballi2018-08-221-2/+2
| | | | | | | | | | | | | | | * Make use of xlator_api * Make use of gf_msg() * Make use of mem-pool * Add a sample metrics dump function * Provide an dummy option, which can be initialized, and reconfigured * Add a test case to make sure template xlator is built and used with default fops * Make a change in rpc-coverage to run without lock tests. Updates: bz#1193929 Change-Id: I377dd67b656f440f9bc7c0098e21c0c1934e9096 Signed-off-by: Amar Tumballi <amarts@redhat.com>
* rpm: do not build glusterfs-resource-agents on el6Niels de Vos2018-07-291-0/+4
| | | | | | | | | | | glusterfs-resource-agents depends on glusterfs-server and this is not available on el6 with the current Gluster releases. It is not possible to install glusterfs-resource-agents on el6 without running into dependency problems, so do not build the sub-packae at all. Change-Id: Ibe08ad3a1b7882559b4e445603d0508b9282b755 Fixes: bz#1609551 Signed-off-by: Niels de Vos <ndevos@redhat.com>
* build: remove uuid from contrib/Niels de Vos2018-07-271-3/+0
| | | | | | | | | | | | | | Bundling libuuid is not needed anymore, all current distributions provide it now. Some OS's provide their own uuid_*() functions in libc. These may not be fully compatible with libuuid.so found on Linux systems. In that case, either e2fsprogs-libuuid can be installed, or support for the native uuid_*() functions can be added to libglusterfs/src/compat-uuid.h. Change-Id: Icfa48caea81307a3bca549364969c2038911942b Fixes: bz#1607319 Signed-off-by: Niels de Vos <ndevos@redhat.com>
* extras/group : add database workload profileAtin Mukherjee2018-06-281-0/+1
| | | | | | | | | | | | | | | | | Running DB workload patterns with all perf xlators enabled as default has resulted into some inconsistency issues. Based on the internal testing done by Elko Kuric (ekuric@redhat.com) there're certain set of perf xlators which need to be turned off to get these types of workload supported by Gluster. The proposal is to leverage group profile infrastructure to group together all those tunables at one place so that users just need to apply the profile to the volume to use it for the data base workload. Credits : Elko Kuric (ekuric@redhat.com) Change-Id: I8a50e915278ad4085b9aaa3f160a33af7c0b0444 fixes: bz#1596020 Signed-off-by: Atin Mukherjee <amukherj@redhat.com>
* cloudsync: Adding s3 plugin for cloudsyncSusant Palai2018-05-301-0/+19
| | | | | | | | | | | | | | | | | | This is a plugin which provides an interface to retrive files from amazon-s3 which are archived in to s3. Users need to give the above information for cloudsync to retrieve the file from s3. TODO: 1- A separate commit in to developer-guide will detail about the usage of this plugin in more detail. 2- Need to create target file in aws-bucket with "gfid" names. Helps avoiding name collisions. Change-Id: I2e4a586f4e3f86164de9178e37673a07f317e7d9 Updates: #387 Signed-off-by: Susant Palai <spalai@redhat.com>
* add COMMITMENT file as part of GPL cureAmar Tumballi2018-05-251-1/+1
| | | | | | | | | | | | | This is part of more broader commitment Red Hat along with IBM, Google, and Facebook did in November 2017. More on this can be found in the blog @ https://www.redhat.com/en/blog/fostering-greater-open-source-development & https://www.redhat.com/en/about/gplv3-enforcement-statement fixes: bz#1569345 Change-Id: Ia78023540ab587ebe14048a67413029be309413d Signed-off-by: Amar Tumballi <amarts@redhat.com>
* utime: ctime client side xlatorKotresh HR2018-05-061-0/+1
| | | | | | | | | | | | | | The client side utime xlator does two things. 1. Update unix epoch time in frame->root->ctime 2. Update the frame->root->flags based on the fop which indicates time attributes that should be updated for the parent/entry. Credits: Rafi KC <rkavunga@redhat.com> Updates: #208 Change-Id: I9cad297040c70798a0a8468a080eb4aeff73138d Signed-off-by: Kotresh HR <khiremat@redhat.com>
* feature/thin-arbiter: Implement thin-arbiter translatorAshish Pandey2018-04-251-0/+1
| | | | | | | Updates #352 Change-Id: I3d8caa6479dc8e48bec62a09b056971bb061f0cf Signed-off-by: Ashish Pandey <aspandey@redhat.com>
* experimental/cloudsync: Download xlator for archival featureSusant Palai2018-04-101-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | spec-files: https://review.gluster.org/#/c/18854/ Overview: * Cloudsync maintains three file states in it's inode-ctx i.e 1 - LOCAL, 2 - REMOTE, 3 - DOWNLOADING. * A data modifying fop is allowed only if the state is LOCAL. If the state is REMOTE or DOWNLOADING, client will download or wait for the download to finish initiated by other client. * Multiple download and upload from different clients are synchronized by inodelk. * In POSIX a state check is done (part of different commit)before allowing the fop to continue. If the state is remote/downloading the fop is unwound with EREMOTE. The client will then download the file and continue with the fop again. * Basic Algo for fop (let's say write fop): - If LOCAL -> resume fop - If REMOTE -> - INODELK - STAT (this gets state and heal the state if needed) - DOWNLOAD - resume fop Note: * Developers will need to write plugins for download, based on the remote store they choose. In phase-1, support will be added for one remote store per volume. In future, more options for multiple remote stores will be explored. TODOs: - Implement stat/lookup/readdirp to return size info from xattr - Make plugins configurable - Implement unlink fop - Add metrics collection - Add sharding support Design Contributions: Aravinda V K <avishwan@redhat.com> Amar Tumballi <amarts@redhat.com> Ram Ankireddypalle <areddy@commvault.com> Susant Palai <spalai@redhat.com> updates: #387 Change-Id: Iddf711ee7ab4e946ae3e472ff62791a7b85e6d4b Signed-off-by: Susant Palai <spalai@redhat.com>
* hooks: add a script to stat the subdirs in add-brickAmar Tumballi2018-03-061-1/+2
| | | | | | | | | | | | | | | | | | | | | | The subdirectories are expected to be present for a subdir mount to be successful. If not, the client_handshake() itself fails to succeed. When a volume is about to get mounted first time, this is easier to handle, as if the directory is not present in one brick, then its mostly not present in any other brick. In case of add-brick, the directory is not present in new brick, and there is no chance of healing it from the subdirectory mount, as in those clients, the subdir itself will be 'root' ('/') of the filesystem. Hence we need a volume mount to heal the directory before connections can succeed. This patch does take care of that by healing the directories which are expected to be mounted as subdirectories from the volume level mount point. Change-Id: I2c2ac7b7567fe209aaa720006d09b68584d0dd14 BUG: 1549915 Signed-off-by: Amar Tumballi <amarts@redhat.com>
* geo-rep: Remove lazy umount and use mount namespacesKotresh HR2018-02-221-0/+4
| | | | | | | | | | | | | Lazy umounting the master volume by worker causes issues with rsync's usage of getcwd. Henc removing the lazy umount and using private mount namespace for the same. On the slave, the lazy umount is retained as we can't use private namespace in non root geo-rep setup. Change-Id: I403375c02cb3cc7d257a5f72bbdb5118b4c8779a BUG: 1546129 Signed-off-by: Kotresh HR <khiremat@redhat.com>
* xlators/features/namespace: Add namespace xlator and link into brick graphVarsha Rao2018-02-211-0/+1
| | | | | | | | | | | | | | | | | | | | | The following release-3.8-fb branch patch is upstreamed: > features/namespace: Add namespace xlator and link into brick graph > Commit ID: dbd30776f26e > https://review.gluster.org/#/c/18041/ > By Michael Goulet <mgoulet@fb.com> Changes in this patch: Removes extra config.h and namespace.h file in namespace.c Adds default_getspec_cbk to libglusterfs.sym Rename dict_for_each to dict_foreach_inline Remove fd.h header file stack.h Add test case for truncate, open and symlink This patch is required to forward port io-threads namespace patch. Updates: #401 Change-Id: Ib88c95b89eecee9b8957df8a4c8712c899c761d1 Signed-off-by: Varsha Rao <varao@redhat.com>
* build: add --without-server optionNiels de Vos2018-02-191-2/+53
| | | | | | | | | | | | | | | | With Gluster 4.0 we will not provide the server components for EL6 and older. At one point Gluster 4.x will get GlusterD2, which requires Golang tools in the distribution. EL6 does not contain these at the moment. With this change, it is possible to `./configure --without-server` which prevents building glusterd and the xlators for the bricks. Building RPMs can pass `--without server` and the glusterfs-server sub-package will not be created. Change-Id: I97f5ccf9f2c76e60d9af83915fc59fae57ad6d25 BUG: 1074947 Signed-off-by: Niels de Vos <ndevos@redhat.com>
* packaging: python-ctypes only in RHEL <= 7Kaleb S. KEITHLEY2018-01-261-7/+4
| | | | | | | | | And we don't need multiple BuildRequires: python-ctypes for sub-packages when it's (already) set for the base package. Change-Id: I71a2d750f338d360d5f716b1f0c4814e4e617b04 BUG: 1538258 Signed-off-by: Kaleb S. KEITHLEY <kkeithle@redhat.com>
* build: use libtirpc by default, even if ipv6 is not the defaultNiels de Vos2018-01-241-1/+8
| | | | | | | | | | | | | | | | An error sneaked in with Change-Id I86f847dfd. The check for requiring libtirpc-devel should be done regardless of the ipv6-default. Even if IPv6 is not the default, libtirpc-devel should be used unless it is explicitly requested by a --without option. libtirpc can not be used on EL6 and EL7 yet. The EL7 version does not provide xdr_sizeof(), in addition to that, EL6 does not have xdr_uint32_t() and xdr_uint64_t(). BUG: 1536186 Change-Id: I4a8292de2eddad16137df5998334133fc1e11261 Fixes: 0c57232ae07f48bd6483bfe88a182f832377ef52 Signed-off-by: Niels de Vos <ndevos@redhat.com>
* build: glibc has removed rpc headers and rpcgen in Fedora28, use libtirpcKaleb S. KEITHLEY2018-01-241-33/+55
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Other Linux distributions are doing the same; some others have already done so. Switch to libtirpc(-devel) and unbundled rpcgen packages. For now rpcgen is still provided by the glibc-rpcgen RPM, but rpcsvc-proto's rpcgen subpackage is available now but will not be used until glibc-rpcgen is retired. (note, rpcsvc-proto's rpcgen is just named rpcgen-...rpm. I.e. not rpcsvc-proto-rpcgen.) Right now either one will satisfy the BuildRequires: rpcgen. Also, when a .spec file has BuildRequires: foo-devel it is not necessary to also have: BuildRequires: foo or even: BuildRequires: foo foo-devel The foo-devel package has a dependency on foo, which will install foo automatically. It's usually also not necessary to have a corresponding Requires: foo as the rpmbuild process will also automatically determine the install-time dependencies. And other minor glusterfs.spec.in cleanup of ipv6-default, including sorting the argument definitions because the comment says "keep them sorted" (Though nobody appears to have ever sorted them in the first place.) Change-Id: I86f847dfda0fef83e22c6e8b761342d652a2d9ba BUG: 1536186 Signed-off-by: Kaleb S. KEITHLEY <kkeithle@redhat.com>
* dentry fop serializer: added new server side xlator for dentry fop serializationSakshi Bansal2018-01-241-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problems addressed by this xlator : [1]. To prevent race between parallel mkdir,mkdir and lookup etc. Fops like mkdir/create, lookup, rename, unlink, link that happen on a particular dentry must be serialized to ensure atomicity. Another possible case can be a fresh lookup to find existance of a path whose gfid is not set yet. Further, storage/posix employs a ctime based heuristic 'is_fresh_file' (interval time is less than 1 second of current time) to check fresh-ness of file. With serialization of these two fops (lookup & mkdir), we eliminate the race altogether. [2]. Staleness of dentries This causes exponential increase in traversal time for any inode in the subtree of the directory pointed by stale dentry. Cause : Stale dentry is created because of following two operations: a. dentry creation due to inode_link, done during operations like lookup, mkdir, create, mknod, symlink, create and b. dentry unlinking due to various operations like rmdir, rename, unlink. The reason is __inode_link uses __is_dentry_cyclic, which explores all possible path to avoid cyclic link formation during inode linkage. __is_dentry_cyclic explores stale-dentry(ies) and its all ancestors which is increases traversing time exponentially. Implementation : To acheive this all fops on dentry must take entry locks before they proceed, once they have acquired locks, they perform the fop and then release the lock. Some documentation from email conversation: [1] http://www.gluster.org/pipermail/gluster-devel/2015-December/047314.html [2] http://www.gluster.org/pipermail/gluster-devel/2015-August/046428.html With this patch, the feature is optional, enable it by running: `gluster volume set $volname features.sdfs enable` Also the feature is tested for a month without issues in the experiemental branch for all the regression. Change-Id: I6e80ba3cabfa6facd5dda63bd482b9bf18b6b79b Fixes: #397 BUG: 1304962 Signed-off-by: Sakshi Bansal <sabansal@redhat.com> Signed-off-by: Amar Tumballi <amarts@redhat.com> Signed-off-by: Sunny Kumar <sunkumar@redhat.com>
* eventsapi: JWT signing without external dependencyAravinda VK2017-12-281-2/+2
| | | | | | | | | Added support for JWT signing without using python-jwt since it is not available in all the distributions. BUG: 1529463 Change-Id: I95699055442fbf9da15249f5defe8a8b287010f1 Signed-off-by: Aravinda VK <avishwan@redhat.com>
* rpm: Fedora 28 has renamed pyxattrNiels de Vos2017-12-261-0/+7
| | | | | | Change-Id: Ifa60b394986b9c107792a7c2a4baa335d44dc6f7 BUG: 1528975 Signed-off-by: Niels de Vos <ndevos@redhat.com>
* extras: scripts to control CPU/MEMORY for any gluster daemon during runtimeMohit Agrawal2017-11-131-0/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: Sometime gluster daemons like glustershd can consume a lot of cpu and/ or memory if there is a large amount of data/ entries to be healed. Solution: Until we have some form of throttling/ QoS mechanisms built into gluster, we can use control groups for regulating cpu and memory of any gluster daemon using control-cpu-load.sh and control-mem.sh scripts respectively. Test: To test the control-cpu-load.sh script follow below procedure: 1) Setup distribute replica environment 2) Selfheal daemon off 3) Down one node from replica nodes 4) Create millions of files from mount point 5) Start down node 6) Check cpu usage for shd process in top command 7) Run script after provide shd pid with CPU quota value 8) Check again cpu usage for shd process in top command Note: control-mem.sh script can cap the memory usage of the process to the set limit, beyond which the process gets blocked. It resumes either when the memory usage comes down or if the limit is increased. BUG: 1496335 Change-Id: Id73c36b73ca600fa9f7905d84053d1e8633c996f Signed-off-by: Mohit Agrawal <moagrawa@redhat.com>
* gluster: IPv6 single stack supportKevin Vigor2017-10-241-1/+12
| | | | | | | | | | | | | | | | | | | | | | Summary: - This diff changes all locations in the code to prefer inet6 family instead of inet. This will allow change GlusterFS to operate via IPv6 instead of IPv4 for all internal operations while still being able to serve (FUSE or NFS) clients via IPv4. - The changes apply to NFS as well. - This diff ports D1892990, D1897341 & D1896522 to the 3.8 branch. Test Plan: Prove tests! Reviewers: dph, rwareing Signed-off-by: Shreyas Siravara <sshreyas@fb.com> Change-Id: I34fdaaeb33c194782255625e00616faf75d60c33 BUG: 1406898 Reviewed-on-3.8-fb: http://review.gluster.org/16059 Reviewed-by: Shreyas Siravara <sshreyas@fb.com> Tested-by: Shreyas Siravara <sshreyas@fb.com>
* packaging: manual systemctl daemon reload required after installKaleb S. KEITHLEY2017-10-131-51/+48
| | | | | | | | | | | | | | | | | | | | | | | Use the %systemd_{post,preun,postun_with_restart} macros provided. Previous fix failed to build on koji Fedora 27 and 28 despite building successfully in on Fedora 2x and CentOS 6 in jenkins and Fedora 25 and 26 in koji (but with late warnings emitted at the end of the build.) Examination of the scriptlets (e.g. `rpm -qp --scripts glusterfs-server.rpm`) revealed some ugliness that is addressed by the using %{nil} lines instead of " ;" After this, builds on CentOS 6, and old Fedora 27 rawhide, and koji f27 worked without warnings or errors about macro recursion. Visual inspection of the scripts appears correct. Fresh installs on CentOS 6 and Fedora 27 rawhide worked. Updates from glusterfs-3.12.1 worked. Reported-by: Sam McLeod <rhbugs@auto.smcleod.net> Change-Id: I84e9dbc6ccd17cdfc2f7c025bdbf61e92523da79 BUG: 1495384 Signed-off-by: Kaleb S. KEITHLEY <kkeithle@redhat.com>
* eventsapi: Add JWT signing supportAravinda VK2017-10-131-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | New argument added to accept secret to generate JWT token. This patch does not affect the backward compatibility. Usage: gluster-eventsapi webhook-add <url> [-t <TOKEN>] \ [-s SECRET] With `--token` argument, Token header will be added as is. Authorization: Bearer <TOKEN> In case of shared secret, Gluster will generate JWT token using the secret and then add it to Authorization header. Authorization: Bearer <GENERATED_TOKEN> Secret/Token can be updated using `webhook-mod` command. Generated token will include the following payload, { "iss": "gluster", "exp": EXPIRY_TIME, "sub": EVENT_TYPE, "iat": EVENT_TIME } Where: iss - Issuer, exp - Expiry Time, sub - Event Type used as Subject, iat - Event Time used as Issue Time BUG: 1496363 Change-Id: Ib6b6fab23fb212d7f5e9bbc9e1416a9e9813ab1b Signed-off-by: Aravinda VK <avishwan@redhat.com>
* packaging: manual systemctl daemon reload required after installKaleb S. KEITHLEY2017-10-021-6/+6
| | | | | | | | | | | | | Use the %systemd_{post,preun,postun_with_restart} macros provided I tried both install and update from 3.10.x and did not receive any warnings about needing daemon reload Reported-by: Sam McLeod <rhbugs@auto.smcleod.net> Change-Id: Ibb33a748fc4226864019765b59d1a154b7297bae BUG: 1495384 Signed-off-by: Kaleb S. KEITHLEY <kkeithle@redhat.com>
* Use the new URL for the docsMichael Scherer2017-09-071-1/+1
| | | | | | | | | | | | | Change-Id: I0ef5c3980aed24a9fa2dda673f8293771ce81808 BUG: 1487644 Signed-off-by: Michael Scherer <misc@redhat.com> Reviewed-on: https://review.gluster.org/18182 Smoke: Gluster Build System <jenkins@build.gluster.org> Reviewed-by: Nigel Babu <nigelb@redhat.com> Tested-by: Nigel Babu <nigelb@redhat.com> CentOS-regression: Gluster Build System <jenkins@build.gluster.org> Tested-by: Michael Scherer <misc@fedoraproject.org> Reviewed-by: Amar Tumballi <amarts@redhat.com>
* debug/delay-gen: Implement delay-generation featurePranith Kumar K2017-08-311-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Background: I was working on a customer issue where the disks were responding some times after seconds. It was becoming very difficult to recreate the issues in our labs, so had to come up with this feature. Requirements: We need an xlator which can delay x% of ops for y micro seconds. We should be able to enable delays for specific fops. This feature is modeled after error-gen. Most of the logic is borrowed from that xlator. This is a minimum implementation of the feature which satisfied the requirements I had. May be in future with more requirements and understanding of the problem further we can improve upon this implementation. Here are the commands and what they do: Enable delay-gen: (This is similar to how err-gen is enabled on the brick side) - gluster volume set <volname> delay-gen posix Set the percentage of fops that need to be delayed - gluster volume set <volname> delay-gen.delay-percentage 50 Default is 10% Set the delay in micro seconds - gluster volume set <volname> delay-gen.delay-duration 500000 Default is 100000 Set comma separated fops to be delayed - gluster v set r2 delay-gen.enable read,write Default is all fops. Fixes #257 Change-Id: Ib547bd39cc024c9cdb63754d21e3aa62fc9d6473 Signed-off-by: Pranith Kumar K <pkarampu@redhat.com> Reviewed-on: https://review.gluster.org/17591 Smoke: Gluster Build System <jenkins@build.gluster.org> CentOS-regression: Gluster Build System <jenkins@build.gluster.org> Reviewed-by: Jeff Darcy <jeff@pl.atyp.us>
* packaging: /run and /var/run; prefer /runKaleb S. KEITHLEY2017-08-291-2/+1
| | | | | | | | | | | | | | | Fedora packaging guidelines say to use /run. On newer Fedora and el7 /var/run is a symlink to ../run (i.e. /run). /run is a tmpfs file system that is mounted earlier than /var might be. See https://bugzilla.redhat.com/show_bug.cgi?id=1476794 Change-Id: I9631d5aa854d7bc4f4dc0c9cac1a3cb19ea516f2 Signed-off-by: Kaleb S. KEITHLEY <kkeithle@redhat.com> Reviewed-on: https://review.gluster.org/18102 Smoke: Gluster Build System <jenkins@build.gluster.org> CentOS-regression: Gluster Build System <jenkins@build.gluster.org> Reviewed-by: Anoop C S <anoopcs@redhat.com>
* packaging: use rdma-core(-devel) instead of ibverbs, rdmacmKaleb S. KEITHLEY2017-08-221-1/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | Also disable rdma on armv7hl. Starting in Fedora 26 the rdma-core package replaces various (lib)ibverbs and (lib)rdmacm packages. Also apparently rdma never actually worked (even if ibverbs and rdmacm packages were built) for armv7hl. The new rdma-core excludes armv7hl. See https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org/message/WJHXQ3G6H7UMVERDCMUXBYDJTFABTGW3/ and https://bugzilla.redhat.com/show_bug.cgi?id=1483278 Even though rdma-core dates back to Fedora 26 this only makes the switch to rdma-core effective with Fedora 27 and later; rdma-core has Provides: (and Obsoletes:) for all the ibverbs and rdmacm packages which is why we haven't noticed this before now. Change-Id: I3cd4f2becb465569b2c8e5514d28c9adff534d26 BUG: 1483995 Signed-off-by: Kaleb S. KEITHLEY <kkeithle@redhat.com> Reviewed-on: https://review.gluster.org/18088 Smoke: Gluster Build System <jenkins@build.gluster.org> CentOS-regression: Gluster Build System <jenkins@build.gluster.org> Reviewed-by: Niels de Vos <ndevos@redhat.com>