# Release notes for Gluster 5.0
This is a major release that includes a range of code improvements and stability
fixes among a few features as noted below.
A selection of the key features and changes are documented on this page.
A full list of bugs that have been addressed is included further below.
- [Major changes and features](#major-changes-and-features)
- [Major issues](#major-issues)
- [Bugs addressed in the release](#bugs-addressed)
1. Releases that receive maintenance updates post release 5 are, 4.1
**NOTE:** 3.12 long term maintenance release, will reach end of life (EOL) with
the release of 5.0. ([reference](https://www.gluster.org/release-schedule/))
2. Release 5 will receive maintenance updates around the 10th of every month
for the first 3 months post release (i.e Nov'18, Dec'18, Jan'18). Post the
initial 3 months, it will receive maintenance updates every 2 months till EOL.
## Major changes and features
Features are categorized into the following sections,
> **IMP:** GlusterD2 in Gluster-5 is still considered a preview and is
> experimental. It should not be considered ready for production use. Users
> should still expect some breaking changes even though all efforts would be
> taken to ensure that these can be avoided. As GD2 is still under heavy
> development, new features can be expected throughout the Gluster 5 release.
The following major changes have been committed to GlusterD2 since v4.1.0.
1. Volume snapshots : Most snapshot operations are available including create,
delete, activate, deactivate, clone and restore.
2. Volume heal: Support for full heal and index heal for replicate volumes has
3. Tracing with Opencensus: Support for tracing distributed operations has been
implemented in GD2, using the Opencensus API. Tracing instrumentation has been
done for volume create, list and delete operations. Other operations will
4. Portmap refactoring: Portmap in GlisterD2 no longer selects a port for the
bricks to listen on, instead leaving the choice upto the bricks. Portmap only
saves port information provided by brick during signin.
5. Smartvol API merged with volume create API: The smart volume API which allows
user to create a volume by just specifying a size has been merged with the
normal volume create API.
6. Configure GlusterD2 with environment variables: In addition to CLI flags, and
the config file, GD2 configuration options can be set using environment
In addition to the above, many changes have been merged for minor bug-fixes and
to help with testing.
Refer to the user [documentation](https://github.com/gluster/glusterd2#documentation) section for details on how to get started with
#### 1. Entry creation and handling, consistency is improved
The dentry serializer feature was introduced in Gluster 4.0, to strengthen the
consistency handling of entry operations in the Gluster stack. Entry operations
refer to creating, linking, renaming and unlinking of files and directory names
into the filesystem space.
When this feature was first introduced (in 4.0) it was optional, with this
release this feature is enabled by default.
#### 2. Python code in Gluster packages is Python 3 ready
#### 3. Quota fsck script to correct quota accounting
See usage documentation [here](https://github.com/gluster/glusterfs/issues/390#issuecomment-389794575)
#### 4. Added noatime option in utime xlator
Enabling the utime and ctime feature, enables Gluster to maintain consistent
change and modification time stamps on files and directories across bricks.
The utime xlator is enhanced with a noatime option and is set by default to
enabled, when the utime feature is enabled. This helps to ignore atime updates
for operations that change may trigger an atime update on the file system
To enable the feature use,
# gluster volume set <volname> features.utime on
# gluster volume set <volname> features.ctime on
#### 5. Removed last usage of MD5 digest in code, towards better FIPS compliance
In an effort to ensure that Gluster can be installed and deployed on machines
that are compliant with the requirements for FIPS, remaining uses of MD5 digest
is removed from the code base.
Addressing this feature's requirements was initiated during the 4.0 release, at
which point enabling user space snapshots, which still used MD5 for certain
needs, broke the FIPS compliance requirements. This limitation is now addressed
in this release.
#### 6. Code improvements
Over the course of this release, the contributors have been active in addressing
various Coverity issues, GCC and clang warnings, clang formatting of the code
base, micro improvements to GLibC API usage and memory handling around
string handling and allocation routines.
The above are ongoing efforts, but major strides were made during this release
to actively address code quality in these areas.
## Major issues
1. The following options are removed from the code base and require to be unset
before an upgrade from releases older than release 4.1.0,
To check if these options are set use,
# gluster volume info
and ensure that the above options are not part of the `Options Reconfigured:`
section in the output of all volumes in the cluster.
If these are set, then unset them using the following commands,
# gluster volume reset <volname> <option>
**NOTE:** Failure to do the above may result in failure during online upgrades,
and the reset of these options to their defaults needs to be done **prior** to
upgrading the cluster.
## Bugs addressed
Bugs addressed since release-4.1.0 are listed below.