summaryrefslogtreecommitdiffstats
path: root/glusterfs.spec.in
Commit message (Collapse)AuthorAgeFilesLines
* extras/hooks: Install and package newly added post add-brick hook scriptAnoop C S2019-06-191-0/+1
| | | | | | | | | | | | https://review.gluster.org/c/glusterfs/+/22834 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. Change-Id: I67b8f4982c2783c34a4bc749fb4387c19a038225 fixes: bz#1717953 Signed-off-by: Anoop C S <anoopcs@redhat.com>
* build: always build glusterfs-cli to allow monitoring/managing from clientsNiels de Vos2019-06-151-6/+3
| | | | | | Fixes: bz#1720615 Change-Id: I5071f3255ff615113b36b08cd5326be6e37d907d Signed-off-by: Niels de Vos <ndevos@redhat.com>
* performance/decompounder: remove the translator as the feature is not used ↵Amar Tumballi2019-04-291-2/+0
| | | | | | | | anymore updates: bz#1693692 Change-Id: Id5932b11e115ca6da1c2bfff7ae1460787109e06 Signed-off-by: Amar Tumballi <amarts@redhat.com>
* cloudsync/cvlt: Cloudsync plugin for commvault storeAnuradha Talur2019-04-261-0/+1
| | | | | | Change-Id: Icbe53e78e9c4f6699c7a26a806ef4b14b39f5019 updates: bz#1642168 Signed-off-by: Anuradha Talur <atalur@commvault.com>
* rpm: add thin-arbiter packageAmar Tumballi2019-03-111-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#1674389 Signed-off-by: Amar Tumballi <amarts@redhat.com> Signed-off-by: Ashish Pandey <aspandey@redhat.com>
* packaging: remove unnecessary ldconfig in scriptletsKaleb S. KEITHLEY2019-03-081-8/+5
| | | | | | | | | | see https://src.fedoraproject.org/rpms/glusterfs/pull-request/5 Reported-By: Igor Gnatenko Change-Id: I914f36290e96a387cdd64ee633e75c2940ec1e56 updates: bz#1193929 Signed-off-by: Kaleb S. KEITHLEY <kkeithle@redhat.com>
* packaging: s390x has RDMA supportKaleb S. KEITHLEY2019-03-071-2/+5
| | | | | | | | | | Since around fedora27, and in RHEL7 since July 2016. Reported-By: Dan Horák <dan@danny.cz> Change-Id: Idad29425495f9c69bfd84b53b009a607abb418f0 updates: bz#1193929 Signed-off-by: Kaleb S. KEITHLEY <kkeithle@redhat.com>
* 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. Change-Id: I7bea08202dd59ac309de8bc861da920ed3600bc6 Fixes: bz#1680587 Signed-off-by: Niels de Vos <ndevos@redhat.com>
* eventsapi: Fix Python3 compatibility issuesAravinda VK2019-02-251-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#1679406 Change-Id: I3dc38bc92b23387a6dfbcc0ab8283178235bf756 Signed-off-by: Aravinda VK <avishwan@redhat.com>
* build: include gluster/__init__.* files for python packagingNiels de Vos2019-02-221-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. Change-Id: I14fe959778ee3344d7d54ba342c7928a4d8080a2 Fixes: c3fcff9ccbfcec1be242fd5cf210c9995586b078 Fixes: 8293d21280fd6ddfc9bb54068cf87794fc6be207 Updates: bz#1642810 Signed-off-by: Niels de Vos <ndevos@redhat.com>
* packaging: Obsoleting glusterfs-gnfs for upgradeSahina Bose2019-02-221-0/+6
| | | | | | | fixes: bz#1672711 Change-Id: Iad7194e788a8eeecd617614e9f8a1fe3264a384d Signed-off-by: Sahina Bose <sabose@redhat.com> 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>