diff options
authorNiels de Vos <>2016-12-12 09:41:22 +0100
committerNiels de Vos <>2016-12-13 09:26:55 -0800
commit7638c2fef0e875d7e3f0cf524c37a9bef6931d81 (patch)
parentd1cb82ef4154c52c8c9b7a95c5016b97d9babf10 (diff)
doc: release-notes for GlusterFS-3.8.7v3.8.7
BUG: 1397911 Change-Id: I7522079ff9fb29588f0b3d716d89f88b04ab7b39 Signed-off-by: Niels de Vos <> Reviewed-on: Smoke: Gluster Build System <> CentOS-regression: Gluster Build System <> NetBSD-regression: NetBSD Build System <>
1 files changed, 76 insertions, 0 deletions
diff --git a/doc/release-notes/ b/doc/release-notes/
new file mode 100644
index 00000000000..5a2fc980297
--- /dev/null
+++ b/doc/release-notes/
@@ -0,0 +1,76 @@
+# Release notes for Gluster 3.8.7
+This is a bugfix release. The [Release Notes for 3.8.0](,
+[3.8.1](, [3.8.2](, [3.8.3](, [3.8.4](,
+[3.8.5]( and [3.8.6]( contain a listing of all the new
+features that were added and bugs fixed in the GlusterFS 3.8 stable release.
+## New CLI option for granular entry heal enablement/disablement
+When there are already existing non-granular indices created that are yet to be
+healed, if granular-entry-heal option is toggled from `off` to `on`, AFR
+self-heal whenever it kicks in, will try to look for granular indices in
+`entry-changes`. Because of the absence of name indices, granular entry healing
+logic will fail to heal these directories, and worse yet unset pending extended
+attributes with the assumption that are no entries that need heal.
+To get around this, a new CLI is introduced which will invoke glfsheal program
+to figure whether at the time an attempt is made to enable granular entry heal,
+there are pending heals on the volume OR there are one or more bricks that are
+down. If either of them is true, the command will be failed with the
+appropriate error.
+ # gluster volume heal <VOL> granular-entry-heal {enable,disable}
+With this change, the user does not need to worry about when to enable/disable
+the option - the CLI command itself performs the necessary checks before
+allowing the "enable" command to proceed.
+What are those checks?
+* Whether heal is already needed on the volume
+* Whether any of the replicas is down
+In both of the cases, the command will be failed since AFR will be switching
+from creating heal indices (markers for files that need heal) under
+`.glusterfs/indices/xattrop` to creating them under
+The moment this switch happens, self-heal-daemon will cease to crawl the
+entire directory if a directory needs heal and instead looks for exact names
+under a directory that need heal under `.glusterfs/indices/entry-changes`. This
+might cause self-heal to miss healing some entries (because before the
+switch directories already needing heal won't have any indices under
+`.glusterfs/indices/entry-changes`) and mistakenly unset the pending heal
+xattrs even though the individual replicas are not in sync.
+When should users enable this option?
+* When they want to use the feature ;)
+* which is useful for faster self-healing in use cases with large number of
+ files under a single directory.
+ For example, it is useful in VM use cases with smaller shard sizes, given
+ that all shards are created under a single directory `.shard`. When a shard
+ is created while a replica was down, once it is back up, self-heal due to its
+ maintaining granular indices will know exactly which shard to recreate on the
+ sync as opposed to crawling the entire `.shard` directory to find out the
+ same information.
+## Bugs addressed
+A total of 16 patches have been merged, addressing 15 bugs:
+- [#1395652]( ganesha-ha.conf --status should validate if the VIPs are assigned to right nodes
+- [#1397663]( libgfapi core dumps
+- [#1398501]( [granular entry sh] - Provide a CLI to enable/disable the feature that checks that there are no heals pending before allowing the operation
+- [#1399018]( on results in processes on client stuck in IO wait
+- [#1399088]( geo-replica slave node goes faulty for non-root user session due to fail to locate gluster binary
+- [#1399090]( [geo-rep]: Worker crashes seen while renaming directories in loop
+- [#1399130]( SEEK_HOLE/ SEEK_DATA doesn't return the correct offset
+- [#1399635]( Refresh config fails while exporting subdirectories within a volume
+- [#1400459]( [USS,SSL] .snaps directory is not reachable when I/O encryption (SSL) is enabled
+- [#1400573]( Ganesha services are not stopped when pacemaker quorum is lost
+- [#1400802]( glusterfs_ctx_defaults_init is re-initializing ctx->locks
+- [#1400927]( Memory leak when self healing daemon queue is full
+- [#1402672]( Getting the warning message while erasing the gluster "glusterfs-server" package.
+- [#1403192]( Files remain unhealed forever if shd is disabled and re-enabled while healing is in progress.
+- [#1403646]( self-heal not happening, as self-heal info lists the same pending shards to be healed