Red Hat Training

A Red Hat training course is available for Red Hat Gluster Storage

Chapter 1. RHBA-2015:1845

The bugs contained in this chapter are addressed by advisory RHBA-2015:21732. Further information about this advisory is available at https://rhn.redhat.com/errata/ RHBA-2015:1845-05.html.

ami

BZ#1250821
Previously, Amazon Machine Images (AMIs) for Red Hat Gluster Storage 3.1 on Red Hat Enterprise Linux 7 were having NFS and Samba repositories enabled by default and Red Hat Enterprise Linux 7 repositories disabled. This issue was fixed in rh-amazon-rhui-client-2.2.124-1.el7 package build and new AMI image was created to include that. Now, a new set of AMIs are uploaded in production, where the Red Hat Enterprise Linux 7 repositories will be enabled by default, and NFS and Samba repositories will be disabled (as expected) and must be manually enabled.
BZ#1253141
Previously, Amazon Machine Images (AMIs) for Red Hat Gluster Storage 3.1 on Red Hat Enterprise Linux 7 were having NFS and Samba repositories enabled by default and Red Hat Enterprise Linux 7 repositories disabled. This issue was fixed in rh-amazon-rhui-client-2.2.124-1.el7 package build and new AMI image was created to include that. Now, a new set of AMIs are uploaded in production, where the Red Hat Enterprise Linux 7 repositories will be enabled by default, and NFS and Samba repositories will be disabled (as expected) and must be manually enabled.

build

BZ#1249989
Previously, a file required by gluster-swift service was moved from glusterfs-api RPM to python-gluster RPM. As a consequence, the gluster-swift service was not started. With this fix, the required RPM (python-gluster) is made as a dependency and the gluster-swift service can be started.

gluster-afr

BZ#1227759
Previously, if a brick in a replica went down, there was a chance of drastic reduction in write speed due to extra fsyncs that happened. With the fix, this issue is resolved.
BZ#1234399
Previously, the split-brain resolution command used to perform conservative merge on directories with both 'bigger- file' and 'source-brick' options. With the fix, for directories, the 'bigger-file' option is disallowed while the 'source-brick' does a conservative merge, informing the user with the appropriate message in both cases.
BZ#1240657
Previously, AFR was logging messages about files and directories going into split-brain even in case of failures that were unrelated to split-brain. As a consequence, for each stat on a file and directory that fails, AFR would wrongly report that it is in split-brain. With this fix, AFR logs messages about split-brain only in case of a true split-brain.
BZ#1238398
Previously, the split-brain-choice was not being considered when a file is only in the metadata split-brain. As a consequence, incorrect file metadata (with fops like ls, stat) was getting displayed for files in split-brain through the mount even after you set replica.split-brain-choice. With this fix, the correct metadata is displayed.
BZ#1239021
Previously, the self-heal daemon was performing a crawl only on the brick that came up after it went down. So the pending heals were not happening immediately after the child is up, but only after the cluster.heal-timeout value. With the fix, index heal will be triggered on all local subvolumes of a replicated volume.

gluster-dht

BZ#1245565
Previously, unsynchronized memory access caused the client process to crash in certain scenarios while reading extended attributes. This has now been fixed by synchronizing access to the variable.
BZ#1234610
Previously, POSIX ACLs set on a file were copied onto the DHT linkto file created when the file was being migrated. This changed the linkto file permissions causing the file to be treated as a data file and file operations to be sent to the wrong file. With this fix, the POSIX ACLs are not set on the DHT linkto files.
BZ#1244527
Previously, the "gluster vol rebalance vol_name start" command might be hung if any nodes in a cluster go down simultaneously. With this fix, this issue is resolved.
BZ#1236038
Previously, a remove-brick start operation was reporting success even if the glusterd service was not running on the node that hosts the removed brick. Due to this, the user could still perform a remove-brick commit even though the rebalance has not been triggered and this was resulting in data loss. With this fix, remove-brick start and commit would fail if the glusterd service is not running on the node that hosts the removed brick.
BZ#1243542
Previously, when a distribute leg of a dist-rep Gluster volume that hosts VM images was removed using the `remove-brick start` Gluster CLI, the VMs went into a paused state. With the fix, they do not go into a paused state.

gluster-quota

BZ#1251425
Previously, the error "patchy-marker: lookup failed for gfid:00000000-0000-0000-0000-000000000001/.glusterfs: Operation not permitted" was seen in the brick logs. Now, the marker is optimized and this error is fixed.
BZ#1229621
Previously, when the disk quota exceeded, "could not read the link from the gfid handle /rhs/brick1/b1/.glusterfs/a3/f3/a3f3664f-df98-448e-b5c8-924349851c7e (No such file or directory)" error was seen in the brick logs. With this fix, these errors are not logged.
BZ#1251457
Previously, a lot of errors were logged in the brick logs. After marker's re-factoring, these errors are fixed.
BZ#1065651
Previously, quota expected users to enter the absolute path, but no proper error was displayed if the absolute path was not provided. With this fix, if the absolute path is not provided, it throws "Please enter the absolute path" error.
BZ#1238071
Previously, upon restarting glusterd, quota daemon was not started when more than one volume was configured and quota is enabled only on the second volume. With this fix, the quota daemon starts on node reboot.
BZ#1027723
Previously, when the 'gluster volume reset VOLNAME' command was executed, the features.quota-deem-statfs option was set to default value. Wtth this fix, when you execute 'gluster volume reset VOLNAME' command, features.quota-deem-statfs option is not changed. Setting and resetting of this option is allowed only through 'gluster volume quota VOLNAME enable/disable' command.
BZ#1064265
Previously, the gluster CLI allowed to set the soft-limit value of quota to greater than 100%. With this fix, soft-limit value is validated to allow only in the range of 1-100%.
BZ#919235
Previously, too many log files were created as ENOENT and ESTALE was set to WARNING log level. After the marker re-factoring, ENOENT and ESTALE was set to DEBUG level and log file creation have reduced drastically.
BZ#1236672
Previously, brick crashed when create, write, and remove operations were performed in parallel on a quota enabled volume. With this fix, brick does not crash even if create, write, and remove operations are performed parallel.
BZ#1238049
Previously, brick crashed during parallel rename and write happens or during continuous rename operation. With this fix, this issue is resolved.
BZ#1245542
Previously, if unlink was performed while the update transaction was still in progress, then it logged an error, which was due to ENOENT. Now, ENOENT errors are not logged.
BZ#1229606
Previously, the error "Failed to check quota size limit" was displayed when the disk quota was exceeded. With this fix, this error is not displayed
BZ#1241807
Previously, brick crashed during parallel rename and write operation on a quota enabled volume. With this fix, brick does not crash even if write and rename operations are performed in parallel.
BZ#1242803
Previously, executing 'gluster volume quota list' command use to hang if quotad was not running. With this fix, "Connection failed. Please check if quota daemon is operational." error message is displayed.

gluster-swift

BZ#1255308
Previously, 'Content-Length' of the object which was stored as metadata in the extended attribute was not validated with actual size of object during processing of a GET request. As a consequence, when an object was modified from file interface and later accessed over Swift interface, the Swift client used to either receive incomplete/inconsistent data or the request used to fail entirely. As a fix, now a check is made if the 'Content-Length' stored as metadata is same as the actual size of the object. If not same, the stored metadata is invalidated and the stored Content-Length is updated. Wit this fix, the entire object data is returned to the client and the request completes successfully.
BZ#1238116
Previously, when there was an error and exception was raised, in some cases, open file descriptors were not closed. This resulted in file descriptors being leaked. With this fix, exceptions raised are caught first, file descriptor are closed and then the original exception caught is re-raised.
BZ#1251925
Previously, .trashcan directory which is always present in the root of the volume was considered to be a container and was returned in the container listing. With this fix, .trashcan directory is no longer returned in the container listing.

glusterfs

BZ#1255471
Previously, on certain occasions, the libgfapi returned incorrect errors. NFS-Ganesha would handle the incorrect error in such a way that the procedures were retried. However, the used file descriptor should have been marked as bad, and no longer used. As a consequence, using a bad file descriptor caused access to memory that was freed and made NFS-Ganesha segfault. With this fix, libgfapi returns correct errors and marks the file descriptor as bad if the file descriptor should not be used again. Now, NFS-Ganesha does not try to reuse bad file descriptors and prevents segmentation faults.
BZ#1244415
Previously, glusterd was not fully initializing its transports when using management encryption. As a consequence, an unencrypted incoming connection would cause glusterd to crash. With this fix, the transports are now fully initialized and additional checks have been added to handle unencrypted incoming connections. Now, glusterd no longer crashes on incoming unencrypted connections when using management encryption.
BZ#1252359
Previously, volumes had to be remounted to benefit from change in the network.ping-timeout value for the respective volume. With this fix, the network.ping-timeout values take effect even without remounting the volume.
BZ#1213893
Previously, the brick processes did not consider rebalance processes to be trusted clients. As a consequence, if the auth.allow option was set for a volume, connections from the rebalance processes for that volume were rejected by the brick processes, causing rebalance to hang. With this fix, the rebalance process is treated as a trusted client by the brick processes. Now, the rebalance works even if the auth.allow option is set for a volume.
BZ#1238977
Previously, if a bad file was detected by scrubber, then the scrubber was marking the bad file information as an INFO message in the scrubber log. With this fix, the scrubber will mark a bad file as an ALERT message in the scrubber log.
BZ#1241385
Previously, the attribute '--output-prefix' specified in 'glusterfind pre' command did not provide the output prefix in case of deleted entry present in the glusterfind output file. With the fix, the output prefix of the deleted entry is present in the glusterfind output file.
BZ#1232569
Previously, the main status file related to the session was maintained in the node where the session was created. As a consequence, when "Glusterfind list" is executed on any node other than the node on which the session was created, the health of the session was shown as "corrupted." With this fix, the glusterfind does not to show "corrupted" when it does not find the status file in any other node except the node where the session is created. Now, the 'Glusterfind list' command will list the sessions only from the main node where the session is created.
BZ#1228135
Previously, all bitrot commands that use the "gluster volume set volname *" command to start or stop bitd and scrub daemon that set any value for bitrot and crubber daemon succeeded. But gluster did not support "gluster volume set volname*" command to reconfigure the BitRot options. Due to this, when the gluster volume set volname command is executed, then the bitrot and scrub daemon crashed. With this fix, gluster accepts only “gluster volume bitrot VOLNAME *” commands for bitrot and scrub operations.
BZ#1234213
Previously, on executing the 'glusterfind delete' command, the user was presented with password prompts for peer nodes. This was due to the peer node SSH key, set up for password-less SSH, getting deleted on local node before the keys got deleted on peer nodes. As a consequence, password prompts got displayed for all peer nodes all at once. The user had to enter passwords for all peer nodes as many times as there are peer nodes in the cluster. With this fix, checks have been added to avoid deleting SSH keys on local node before deleting them on peer node. The SSH keys on local node eventually get deleted as part of session cleanup. Now, the password prompts are no longer presented on executing a 'glusterfind delete' command.

glusterfs-geo-replication

BZ#1232216
Previously, if a meta-volume is configured, there was a small race window, where geo-replication worker access the unreferenced fd of the lock file maintained in shared storage volume. As a consequence, the geo-replication worker died and restarted. A fix is made in worker to always get the right fd. Now, the geo-replication worker does not die and restart.
BZ#1239075
Previously, the geo-replication worker was not re-trying the operation on ESTALE error lstat of an entry. As a consequence, the geo-replication worker was getting crashed and restarted. With this fix, geo-replication worker does not crash on ESTALE during lstat on the entry.
BZ#1236546
Previously, both ACTIVE and PASSIVE geo-replication workers registered to changelog at almost the same time. When PASSIVE worker becomes ACTIVE, the start and end time would be current stime and register_time respectively for history API. Hence register_time would be less then stime for which history API fails. As a consequence, passive worker, which becomes active dies for the first time. With this fix, the passive worker, which becomes active does not die for the first time.

glusterfs-server

BZ#1243722
Previously, the glusterd was not fully initializing its transports when using management encryption. As a consequence, an unencrypted incoming connection would cause glusterd to crash.As a fix, the transports are now fully initialized and additional checks have been added to handle unencrypted incoming connections.Now, glusterd no longer crashes on incoming unencrypted connections when using management encryption.
BZ#1226665
Previously, when there was no space left on the file system and when user performed any operation resulted to change in /var/lib/glusterd/* files, then the glusterd was failing to write to a temporary file. With this fix, a proper error message is displayed when /var/lib/glusterd/* is full.
BZ#1251409
Previoulsy, brick logs were filled with "server_resolve_inode (resolve_gfid+0x88) (dict_copy_with_ref+0xa4) invalid argument" error. With this fix, these logs are not seen.
BZ#1134288
Previously, on executing “gluster volume status” command, there was an error log seen in the glusterd.log file about “unable to get transaction opinfo”. With this fix, the glusterd service does not log this error.
BZ#1230532
Previously, even though the "gluster reset force" command succeeded, any daemons (bitd, quotad, scrub, shd) that are enabled on the volume were still running. With this fix, these daemons do not run after "gluster reset force" command success.
BZ#1243886
Previously, there was a huge memory leak in bricks and it consumed huge memory. With this fix, this issue is resolved.
BZ#1245536
Previously, on glusterd start, UUID was generated and stored in the /var/lib/glusterd/glusterd.info file. This information was static and identical for every instance created. As a consequence, peer probe between instances failed. With this fix, UUID will only be generated on first probe or during volume creation.
BZ#1246946
Previously, while detaching a peer from a node, the glusterd service was logging a critical message saying that it could not find the peer. With this fix, the glusterd service does not log this error.
BZ#1224163
Previously, even though the "gluster reset force" command succeeded, bitrot and scrub daemons were not stopped. With this fix, these daemons do not run after "gluster reset force" command success.
BZ#1247445
Previously, when a cluster had multiple volumes where the first volume in the volume list is not a replicated volume, and any of the other volumes is a replicated volume, after a reboot of a node, shd does not start. With this fix, shd will start in this scenario.

gstatus

BZ#1250453
The gstatus command is now fully supported. The gstatus command provides an easy-to-use, high-level view of the health of a trusted storage pool with a single command. It gathers information about the health of a Red Hat Gluster Storage trusted storage pool for distributed, replicated, distributed-replicated, dispersed, and distributed-dispersed volumes.

nfs-ganesha

BZ#1241761
Previously, when running high workloads, if the last volume exported via NFS-Ganesha is unexported, there was a memory corruption. As a consequence, the process would crash and failover to another node. Now, the memory corruption issue has been fixed and there will not be any crash.
BZ#1241871
Previously, if the mount path for NFSv3 contained symbolic links, then NFSv3 mount failed. With this fix, NFS server resolves the symbolic links in the mount path before sending to the client, hence mount will succeed.
BZ#1226817
NFS-Ganesha always runs in a subset of nodes in the trusted storage pool. So when a new volume is created, then Gluster-NFS can be started on the nodes outside that subset. As a consequence, same volume is exported via NFS-Ganesha in one node and via Gluster-NFS on another. As a fix, the Gluster-NFS should be disabled when nfs-ganesha option is enabled. Now, either NFS-Ganesha or Gluster-NFS will export the volume in the trusted storage pool.
BZ#1238118
Previously, when DBus signals were sent multiple times in succession for a volume that is already exported, caused NFS-Ganesha service crash. With this fix, NFS-Ganesha service does not crash.
BZ#1235971
Previously, the ganesha-ha.sh --status command printed the output of "pcs status" as is on the screen. The output was not user friendly. With this fix, the output of the pcs status is formatted well and is easily understandable by the user.
BZ#1245636
Previously, one of the APIs used by the User Serviceable snapshots did not get resolved during dynamic loading due to its symbol collision with another API provided by ntirpc library used by NFS-Ganesha. As a consequence, User Serviceable Snapshots did not work with NFS-Ganesha. With this fix, the APIs are made static to avoid the symbol collisions. User Serviceable Snapshots now work with NFS-Ganesha.

redhat-storage-server

BZ#1248899
Gdeploy is a tool which automates the process of creating, formatting, and mounting bricks. When setting-up a fresh cluster, gdeploy could be the preferred choice of cluster set up, as manually executing numerous commands can be error prone. The advantages of using gdeploy includes automated brick creation, flexibility in choosing the drives to configure (sd, vd, ...) and flexibility in naming the logical volumes (LV) and volume groups (VG).
BZ#1251360
In this release, two new tuned profiles, that is, rhgs-sequential-io and rhgs-random-io for RHEL-6 has been added to Red Hat Gluster Storage.