summaryrefslogtreecommitdiffstats
path: root/doc/release-notes/3.9.0.md
blob: ca4020d4af81dbdc6b3d9a9892054d21dce7e54b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
# Release notes for Gluster 3.9.0

This is a major release that includes a huge number of changes. Many
improvements contribute to better support of Gluster with containers and
running your storage on the same server as your hypervisors. Lots of work has
been done to integrate with other projects that are part of the Open Source
storage ecosystem.

The most notable features and changes are documented on this page. A full list
of bugs that has been addressed is included further below.

## Major changes and features

### Introducing reset-brick command
*Notes for users:*
The reset-brick command provides support to reformat/replace the disk(s)
represented by a brick within a volume. This is helpful when a disk goes bad etc

Start reset process -
```bash
gluster volume reset-brick VOLNAME HOSTNAME:BRICKPATH start
```
The above command kills the respective brick process. Now the brick can be reformatted.

To restart the brick after modifying configuration  -
```bash
gluster volume reset-brick VOLNAME HOSTNAME:BRICKPATH HOSTNAME:BRICKPATH commit
```
If the brick was killed to replace the brick with same brick path, restart with following command -
```bash
gluster volume reset-brick VOLNAME HOSTNAME:BRICKPATH HOSTNAME:BRICKPATH commit force
```

*Limitations:*
1. resetting a brick kills a brick process in concern. During this
period the brick will not be available for IO's.
2. Replacing a brick with this command will work only if both the brick paths
are same and belong to same volume.

### Get node level status of a cluster

*Notes for users:*
The get-state command provides node level status of a trusted storage pool from
the point of view of glusterd in a parseable format. Using get-state command,
external applications can invoke the command on all nodes of the cluster, and
parse and collate the data obtained from all these nodes to get a complete
picture of the state of the cluster.

```bash
# gluster get-state <glusterd> [odir <path/to/output/dir] [file <filename>]
```
This would dump data points that reflect the local state representation of the
cluster as maintained in glusterd (no other daemons are supported as of now)
to a file inside the specified output directory. The default output directory
and filename is /var/run/gluster and glusterd_state_<timestamp> respectively.

Following are the sections in the output:
1. `Global`: UUID and op-version of glusterd
2. `Global options`: Displays cluster specific options that have been set
explicitly through the volume set command.
3. `Peers`: Displays the peer node information including its hostname and
connection status
4. `Volumes`: Displays the list of volumes created on this node along with
detailed information on each volume.
5. `Services`: Displays the list of the services configured on this node along
with their corresponding statuses.

*Limitations:*
1. This only supports glusterd.
2. Does not provide complete cluster state. Data to be collated from all nodes
by external application to get the complete cluster state.

### Multi threaded self-heal for Disperse volumes
*Notes for users:*
Users now have the ability to configure multi-threaded self-heal in disperse volumes using the following commands:
```bash
Option below can be used to control number of parallel heals in SHD
# gluster volume set <volname> disperse.shd-max-threads [1-64] # default is 1
Option below can be used to control number of heals that can wait in SHD
# gluster volume set <volname> disperse.shd-wait-qlength [1-65536] # default is 1024
```

### Hardware extention acceleration in Disperse volumes
*Notes for users:*
If the user has hardware that has special instructions which can be used in erasure code calculations on the client it will be automatically used. At the moment this support is added for cpu-extentions: `x64`, `sse`, `avx`

### Lock revocation feature
*Notes for users:*
1. Motivation: Prevents cluster instability by mis-behaving clients causing bricks to OOM due to inode/entry lock pile-ups.
2. Adds option to strip clients of entry/inode locks after N seconds
3. Adds option to clear ALL locks should the revocation threshold get hit
4. Adds option to clear all or granted locks should the max-blocked threshold get hit (can be used in combination w/ revocation-clear-all).
5. Adds logging to indicate revocation event & reason
6. Options are:
```bash
# gluster volume set <volname> features.locks-revocation-secs <integer; 0 to disable>
# gluster volume set <volname> features.locks-revocation-clear-all [on/off]
# gluster volume set <volname> features.locks-revocation-max-blocked <integer>
```

### On demand scrubbing for Bitrot Detection:
*Notes for users:* With 'ondemand' scrub option, you don't need to wait for the scrub-frequency
to expire. As the option name itself says, the scrubber can be initiated on demand to detect
the corruption. If the scrubber is already running, this option is a no op.
```bash
# gluster volume bitrot <volume-name> scrub ondemand
```
 ### Improvements in Gluster NFS-Ganesha integration
*Notes for users:*
With this release the major change done is to store all the ganesha related configuration files in the shared storage volume mount point instead of having separate local copy in '/etc/ganesha' folder on each node.

For new users, before enabling nfs-ganesha

1. create a directory named *nfs-ganesha* in the shared storage mount point (*/var/run/gluster/shared_storage/*)

2. Create *ganesha.conf* & *ganesha-ha.conf* in that directory with the required details filled in.

For existing users, before starting nfs-ganesha service do the following :

1. Copy all the contents of */etc/ganesha* directory (including *.export_added* file) to */var/run/gluster/shared_storage/nfs-ganesha* from any of the ganesha nodes

2. Create symlink using */var/run/gluster/shared_storage/nfs-ganesha/ganesha.conf* on */etc/ganesha* one each node in ganesha-cluster

3. Change path for each export entry in *ganesha.conf* file

```sh
Example: if a volume "test" was exported, then ganesha.conf shall have below export entry -
 %include "/etc/ganesha/exports/export.test.conf" export entry.
Change that line to
 %include "/var/run/gluster/shared_storage/nfs-ganesha/exports/export.test.conf"
```

In addition, following changes have been made -
* The entity "HA_VOL_SERVER= " in *ganesha-ha.conf* is no longer required.
* A new resource-agent called portblock (available in >= *resource-agents-3.9.5* package) is added to the cluster configuration to speed up the nfs-client connections post IP failover or failback. This may be noticed while looking at the cluster configuration status using the command *pcs status*.

### Availability of python bindings to libgfapi

The official python bindings for GlusterFS libgfapi C library interface is
mostly API complete. The complete API reference and documentation can be
found at [libgfapi-python.rtfd.io](http://libgfapi-python.rtfd.io/)

The python bindings have been packaged and has been made available over
[PyPI](https://pypi.python.org/pypi/gfapi/).

### Small file improvements in Gluster with md-cache (Experimental)
*Notes for users:*
With this release, metadata cache on the client side is integrated with the
cache-invalidation feature so that the clients can cache longer without
compromising on consistency.  By enabling, the metadata cache and cache
invalidation feature and extending the cache timeout to 600s, we have seen
performance improvements in metadata operation like creates, ls/stat, chmod,
rename, delete.  The perf improvements is significant in SMB access of gluster
volume, but as a cascading effect the improvements is also seen on FUSE/Native
access and NFS access.

Use the below options in the order mentioned, to enable the features:
```bash
  # gluster volume set <volname> features.cache-invalidation on
  # gluster volume set <volname> features.cache-invalidation-timeout 600
  # gluster volume set <volname> performance.stat-prefetch on
  # gluster volume set <volname> performance.cache-invalidation on
  # gluster volume set <volname> performance.cache-samba-metadata on     # Only for SMB access
  # gluster volume set <volname> performance.md-cache-timeout 600
```

### Real time Cluster notifications using Events APIs
Let us imagine we have a Gluster monitoring system which displays
list of volumes and its state, to show the realtime status, monitoring
app need to query the Gluster in regular interval to check volume
status, new volumes etc. Assume if the polling interval is 5 seconds
then monitoring app has to run gluster volume info command ~17000
times a day!

With Gluster 3.9 release, Gluster provides close to realtime
notification and alerts for the Gluster cluster state changes and
alerts. Webhooks can be registered to listen to Events emitted by
Gluster. More details about this new feature is available here.

http://gluster.readthedocs.io/en/latest/Administrator%20Guide/Events%20APIs

### Geo-replication improvements
#### Documentation improvements:

Upstream documentation is rewritten to reflect the latest version of
Geo-replication. Removed the stale/duplicate documentation. We are
still working on to add Troubleshooting, Cluster expand/shrink notes
to it. Latest version of documentation is available here
http://gluster.readthedocs.io/en/latest/Administrator%20Guide/Geo%20Replication

#### Geo-replication Events are available for Events API consumers:
Events APIs is the new Gluster feature available with 3.9 release,
most of the events from Geo-replication are added to eventsapi.

Read more about the Events APIs and Geo-replication events here
http://gluster.readthedocs.io/en/latest/Administrator%20Guide/Events%20APIs

#### New simplified command to setup Non root Geo-replication

Non root Geo-replication setup was not easy with multiple manual
steps. Non root Geo-replication steps are simplified. Read more about
the new steps in Admin guide.

http://gluster.readthedocs.io/en/latest/Administrator%20Guide/Geo%20Replication/#slave-user-setup

#### New command to generate SSH keys(Alternative command to `gsec_create`)

`gluster system:: execute gsec_create` command generates ssh keys in
every Master cluster nodes and copies to initiated node. This command
silently ignores error if any node is down in cluster. It will not
collect SSH keys from that node. When Geo-rep create push-pem command
is issued it will copy public keys from those nodes which were up
during gsec_create. This causes Geo-rep to go to Faulty when that
master node tries to make the connection to slave nodes. With the new
command, output shows if any Master node was down while generating ssh
keys. Read more about `gluster-georep-sshkey

http://gluster.readthedocs.io/en/latest/Administrator%20Guide/Geo%20Replication/#setting-up-the-environment-for-geo-replication

#### Logging improvements

New logs are added, now from the log we can clearly understand what is
going on. Note: This feature may change logging format of existing log
messages, Please update your parsers if used to parse Geo-rep logs.

Patch: http://review.gluster.org/15710

#### New Configuration options available: changelog-log-level

All the changelog related log messages are logged in
`/var/log/glusterfs/geo-replication/<SESSION>/*.changes.log` in Master
nodes. Log level was hard coded as `TRACE` for Changelog logs. New
configuration option provided to modify the changelog log level and
defaulted to `INFO`

## Behavior changes
- [#1221623](https://bugzilla.redhat.com/1221623): Earlier the ports GlusterD
  used to allocate for the daemons like brick processes, quotad, shd et all
  were persistent through the volume's life cycle, so every restart of the
  process(es) or a node reboot will try to use the same ports which were
  allocated for the first time. With release-3.9 onwards, GlusterD will try to
  allocate a fresh port once a daemon is restarted or the node is rebooted.
- [#1348944](https://bugzilla.redhat.com/1348944): with 3.9 release the default
  log file for glusterd has been renamed to glusterd.log from
  etc-glusterfs-glusterd.vol.log

## Known Issues
- [#1387878](https://bugzilla.redhat.com/1387878):add-brick on a vm-store
  configuration which has sharding enabled is leading to vm corruption. To work
  around this issue, one can scale up by creating more volumes until this issue
  is fixed.

## Bugs addressed

A total of 571 patches has been sent, addressing 422 bugs:

- [#762184](https://bugzilla.redhat.com/762184): Support mandatory locking in glusterfs
- [#789278](https://bugzilla.redhat.com/789278): Issues reported by Coverity static analysis tool
- [#1005257](https://bugzilla.redhat.com/1005257): [PATCH] Small typo fixes
- [#1175711](https://bugzilla.redhat.com/1175711): posix: Set correct d_type for readdirp() calls
- [#1193929](https://bugzilla.redhat.com/1193929): GlusterFS can be improved
- [#1198849](https://bugzilla.redhat.com/1198849): Minor improvements and cleanup for the build system
- [#1200914](https://bugzilla.redhat.com/1200914): pathinfo is wrong for striped replicated volumes
- [#1202274](https://bugzilla.redhat.com/1202274): Minor improvements and code cleanup for libgfapi
- [#1207604](https://bugzilla.redhat.com/1207604): [rfe] glusterfs snapshot cli commands should provide xml output.
- [#1211863](https://bugzilla.redhat.com/1211863): RFE: Support in md-cache to use upcall notifications to invalidate its cache
- [#1221623](https://bugzilla.redhat.com/1221623): glusterd: add brick command should re-use the port for listening which is freed by remove-brick.
- [#1222915](https://bugzilla.redhat.com/1222915): usage text is wrong for use-readdirp mount default
- [#1223937](https://bugzilla.redhat.com/1223937): Outdated autotools helper config.* files
- [#1225718](https://bugzilla.redhat.com/1225718): [FEAT] DHT - rebalance - rebalance status o/p should be different for 'fix-layout' option, it should not show 'Rebalanced-files' , 'Size', 'Scanned' etc as it is not migrating any files.
- [#1227667](https://bugzilla.redhat.com/1227667): Minor improvements and code cleanup for protocol server/client
- [#1228142](https://bugzilla.redhat.com/1228142): clang-analyzer: adding clang static analysis support
- [#1231224](https://bugzilla.redhat.com/1231224): Misleading error messages on brick logs while creating directory (mkdir) on fuse mount
- [#1236009](https://bugzilla.redhat.com/1236009): do an explicit lookup on the inodes linked in readdirp
- [#1254067](https://bugzilla.redhat.com/1254067): remove unused variables
- [#1266876](https://bugzilla.redhat.com/1266876): cluster/afr: AFR2 returns empty readdir results to clients if brick is added back into cluster after re-imaging/formatting
- [#1278325](https://bugzilla.redhat.com/1278325): DHT: Once remove brick start failed in between Remove brick commit should not be allowed
- [#1285152](https://bugzilla.redhat.com/1285152): store afr pending xattrs as a volume option
- [#1292020](https://bugzilla.redhat.com/1292020): quota: client gets IO error instead of disk quota exceed when the limit is exceeded
- [#1294813](https://bugzilla.redhat.com/1294813): [geo-rep]: Multiple geo-rep session to the same slave is allowed for different users
- [#1296043](https://bugzilla.redhat.com/1296043): Wrong usage of dict functions
- [#1302277](https://bugzilla.redhat.com/1302277): Wrong XML output for Volume Options
- [#1302948](https://bugzilla.redhat.com/1302948): tar complains: <fileName>: file changed as we read it
- [#1303668](https://bugzilla.redhat.com/1303668): packaging: rpmlint warning and errors - Documentation URL 404
- [#1305031](https://bugzilla.redhat.com/1305031): AFR winds a few reads of a file in metadata split-brain.
- [#1306398](https://bugzilla.redhat.com/1306398): Tiering and AFR may result in data loss
- [#1311002](https://bugzilla.redhat.com/1311002): NFS+attach tier:IOs hang while attach tier is issued
- [#1311926](https://bugzilla.redhat.com/1311926): [georep]: If a georep session is recreated the existing files which are deleted from slave doesn't get sync again from master
- [#1315666](https://bugzilla.redhat.com/1315666): Data Tiering:tier volume status shows as in-progress on all nodes of a cluster even if the node is not part of volume
- [#1316178](https://bugzilla.redhat.com/1316178): changelog/rpc: Memory leak- rpc_clnt_t object is never freed
- [#1316389](https://bugzilla.redhat.com/1316389): georep: tests for logrotate, create+rename and hard-link rename
- [#1318204](https://bugzilla.redhat.com/1318204): Input / Output when chmoding files on NFS mount point
- [#1318289](https://bugzilla.redhat.com/1318289): [RFE] Add arbiter brick hotplug
- [#1318591](https://bugzilla.redhat.com/1318591): Glusterd not operational due to snapshot conflicting with nfs-ganesha export file in "/var/lib/glusterd/snaps"
- [#1319992](https://bugzilla.redhat.com/1319992): RFE: Lease support for gluster
- [#1320388](https://bugzilla.redhat.com/1320388): [GSS]-gluster v heal volname info does not work with enabled ssl/tls
- [#1321836](https://bugzilla.redhat.com/1321836): gluster volume info --xml returns 0 for nonexistent volume
- [#1322214](https://bugzilla.redhat.com/1322214): [HC] Add disk in a Hyper-converged environment fails when glusterfs is running in directIO mode
- [#1322805](https://bugzilla.redhat.com/1322805): [scale] Brick process does not start after node reboot
- [#1322825](https://bugzilla.redhat.com/1322825): IO-stats, client profile is overwritten when it is on the same node as bricks
- [#1324439](https://bugzilla.redhat.com/1324439): SAMBA+TIER : Wrong message display.On detach tier success the message reflects Tier command failed.
- [#1325831](https://bugzilla.redhat.com/1325831): gluster snap status xml output shows incorrect details when the snapshots are in deactivated state
- [#1326410](https://bugzilla.redhat.com/1326410): /var/lib/glusterd/$few-directories not owned by any package, causing it to remain after glusterfs-server is uninstalled
- [#1327171](https://bugzilla.redhat.com/1327171): Disperse: Provide description of disperse.eager-lock option.
- [#1328224](https://bugzilla.redhat.com/1328224): RFE : Feature: Automagic unsplit-brain policies for AFR
- [#1329211](https://bugzilla.redhat.com/1329211): values for Number of Scrubbed files, Number of Unsigned files, Last completed scrub time and Duration of last scrub are shown as zeros in bit rot scrub status
- [#1330032](https://bugzilla.redhat.com/1330032): rm -rf to a dir gives directory not empty(ENOTEMPTY) error
- [#1330097](https://bugzilla.redhat.com/1330097): ganesha exported volumes doesn't get synced up on shutdown node when it comes up.
- [#1330583](https://bugzilla.redhat.com/1330583): glusterfs-libs postun ldconfig: relative path `1' used to build cache
- [#1331254](https://bugzilla.redhat.com/1331254): Disperse volume fails on high load and logs show some assertion failures
- [#1331287](https://bugzilla.redhat.com/1331287): No xml output on gluster volume heal info command with --xml
- [#1331323](https://bugzilla.redhat.com/1331323): [Granular entry sh] - Implement renaming of indices in index translator
- [#1331423](https://bugzilla.redhat.com/1331423): distaf: Add io_libs to namespace package list
- [#1331720](https://bugzilla.redhat.com/1331720): implement meta-lock/unlock for lock migration
- [#1331721](https://bugzilla.redhat.com/1331721): distaf: Add README and HOWTO to distaflibs as well
- [#1331860](https://bugzilla.redhat.com/1331860): Wrong constant used in length based comparison for XATTR_SECURITY_PREFIX
- [#1331969](https://bugzilla.redhat.com/1331969): Ganesha+Tiering: Continuous "0-glfs_h_poll_cache_invalidation: invalid argument" messages getting logged in ganesha-gfapi logs.
- [#1332020](https://bugzilla.redhat.com/1332020): multiple regression failures for tests/basic/quota-ancestry-building.t
- [#1332021](https://bugzilla.redhat.com/1332021): multiple failures for testcase: tests/basic/inode-quota-enforcing.t
- [#1332054](https://bugzilla.redhat.com/1332054): multiple failures of tests/bugs/disperse/bug-1236065.t
- [#1332073](https://bugzilla.redhat.com/1332073): EINVAL errors while aggregating the directory size by quotad
- [#1332134](https://bugzilla.redhat.com/1332134): bitrot: Build generates Compilation Warning.
- [#1332136](https://bugzilla.redhat.com/1332136): Detach tier fire before the background fixlayout is complete may result in failure
- [#1332156](https://bugzilla.redhat.com/1332156): SMB:while running I/O on cifs mount and doing graph switch causes cifs mount to hang.
- [#1332219](https://bugzilla.redhat.com/1332219): tier:  avoid pthread_join if pthread_create fails
- [#1332413](https://bugzilla.redhat.com/1332413): Wrong op-version for mandatory-locks volume set option
- [#1332419](https://bugzilla.redhat.com/1332419): geo-rep: address potential leak of memory
- [#1332460](https://bugzilla.redhat.com/1332460): [features/worm] - when disabled, worm xl should simply pass requested fops to its child xl
- [#1332465](https://bugzilla.redhat.com/1332465): glusterd + bitrot : Creating clone of snapshot. error "xlator.c:148:xlator_volopt_dynload] 0-xlator: /usr/lib64/glusterfs/3.7.9/xlator/features/bitrot.so: cannot open shared object file:
- [#1332473](https://bugzilla.redhat.com/1332473): tests: 'tests/bitrot/br-state-check.t' fails in netbsd
- [#1332501](https://bugzilla.redhat.com/1332501): Mandatory locks are not migrated during lock migration
- [#1332566](https://bugzilla.redhat.com/1332566): [granular entry sh] - Add more tests
- [#1332798](https://bugzilla.redhat.com/1332798): [AFR]: "volume heal info" command is failing during in-service upgrade to latest.
- [#1332822](https://bugzilla.redhat.com/1332822): distaf: Add library functions for gluster snapshot operations
- [#1332885](https://bugzilla.redhat.com/1332885): distaf: Add library functions for gluster bitrot operations and generic library utility functions generic to all components
- [#1332952](https://bugzilla.redhat.com/1332952): distaf: Add library functions for gluster quota operations
- [#1332994](https://bugzilla.redhat.com/1332994): Self Heal fails on a replica3 volume with 'disk quota exceeded'
- [#1333023](https://bugzilla.redhat.com/1333023): readdir-ahead does not fetch xattrs that md-cache needs in it's internal calls
- [#1333043](https://bugzilla.redhat.com/1333043): Fix excessive logging due to NULL dict in dht
- [#1333263](https://bugzilla.redhat.com/1333263): [features/worm] Unwind FOPs with op_errno and add gf_worm prefix to functions
- [#1333317](https://bugzilla.redhat.com/1333317): rpc_clnt will sometimes not reconnect when using encryption
- [#1333319](https://bugzilla.redhat.com/1333319): Unexporting a volume sometimes fails with "Dynamic export addition/deletion failed".
- [#1333370](https://bugzilla.redhat.com/1333370): [FEAT] jbr-server handle lock/unlock fops
- [#1333738](https://bugzilla.redhat.com/1333738): distaf: Add GlusterBaseClass (gluster_base_class.py) to distaflibs-gluster.
- [#1333912](https://bugzilla.redhat.com/1333912): client ID should logged when SSL connection fails
- [#1333925](https://bugzilla.redhat.com/1333925): libglusterfs: race conditions and illegal mem access in timer
- [#1334044](https://bugzilla.redhat.com/1334044): [RFE] Eventing for Gluster
- [#1334164](https://bugzilla.redhat.com/1334164): Worker dies with [Errno 5] Input/output error upon creation of entries at slave
- [#1334208](https://bugzilla.redhat.com/1334208): distaf: Add library functions for gluster rebalance operations
- [#1334269](https://bugzilla.redhat.com/1334269): GlusterFS 3.8 fails to build in the CentOS Community Build System
- [#1334270](https://bugzilla.redhat.com/1334270): glusterd: glusterd provides stale port information when a volume is recreated with same brick path
- [#1334285](https://bugzilla.redhat.com/1334285): Under high read load, sometimes the message "XDR decoding failed" appears in the logs and read fails
- [#1334314](https://bugzilla.redhat.com/1334314): changelog: changelog_rollover breaks when number of fds opened is more than 1024
- [#1334444](https://bugzilla.redhat.com/1334444): SAMBA-VSS : Permission denied issue while restoring the directory from windows client 1 when files are deleted from windows client 2
- [#1334620](https://bugzilla.redhat.com/1334620): stop all gluster processes should also include glusterfs mount process
- [#1334621](https://bugzilla.redhat.com/1334621): set errno in case of inode_link failures
- [#1334721](https://bugzilla.redhat.com/1334721): distaf: Add library functions for gluster tiering operations
- [#1334839](https://bugzilla.redhat.com/1334839): [Tiering]: Files remain in hot tier even after detach tier completes
- [#1335019](https://bugzilla.redhat.com/1335019): Add graph for decompounder xlator
- [#1335091](https://bugzilla.redhat.com/1335091): mount/fuse: Logging improvements
- [#1335231](https://bugzilla.redhat.com/1335231): features/locks: clang compile warning in posix.c
- [#1335232](https://bugzilla.redhat.com/1335232): features/index: clang compile warnings in index.c
- [#1335429](https://bugzilla.redhat.com/1335429): Self heal shows different information for the same volume from each node
- [#1335494](https://bugzilla.redhat.com/1335494): Modifying peer ops library
- [#1335531](https://bugzilla.redhat.com/1335531): Modified volume options are not syncing once  glusterd comes up.
- [#1335652](https://bugzilla.redhat.com/1335652): Heal info shows split-brain for .shard directory though only one brick was down
- [#1335717](https://bugzilla.redhat.com/1335717): PREFIX is not honoured during build and install
- [#1335776](https://bugzilla.redhat.com/1335776): rpc: change client insecure port ceiling from 65535 to 49151
- [#1335818](https://bugzilla.redhat.com/1335818): Revert "features/shard: Make o-direct writes work with sharding: http://review.gluster.org/#/c/13846/"
- [#1335858](https://bugzilla.redhat.com/1335858): Files present in the .shard folder even after deleting all the vms from the UI
- [#1335973](https://bugzilla.redhat.com/1335973): [Tiering]: The message 'Max cycle time reached..exiting migration' incorrectly displayed as an 'error' in the logs
- [#1336197](https://bugzilla.redhat.com/1336197): failover is not working with latest builds.
- [#1336328](https://bugzilla.redhat.com/1336328): [FEAT] jbr: Improve code modularity
- [#1336354](https://bugzilla.redhat.com/1336354): Provide a way to configure gluster source location in devel-vagrant
- [#1336373](https://bugzilla.redhat.com/1336373): Distaf: Add gluster specific config file
- [#1336381](https://bugzilla.redhat.com/1336381): ENOTCONN error during parallel rmdir
- [#1336508](https://bugzilla.redhat.com/1336508): rpc-transport: compiler warning format string
- [#1336612](https://bugzilla.redhat.com/1336612): one of vm goes to paused state when network goes down and comes up back
- [#1336630](https://bugzilla.redhat.com/1336630): ERROR and Warning message on writing a file from mount point "null gfid for path (null)" repeated 3 times between"
- [#1336642](https://bugzilla.redhat.com/1336642): [RFE] git-branch-diff: wrapper script for git to visualize backports
- [#1336698](https://bugzilla.redhat.com/1336698): DHT : few Files are not accessible and not listed on mount + more than one Directory have same gfid + (sometimes) attributes has ?? in ls output after  renaming Directories from multiple client at same time
- [#1336793](https://bugzilla.redhat.com/1336793): assorted typos and spelling mistakes from Debian lintian
- [#1336818](https://bugzilla.redhat.com/1336818): Add ability to set oom_score_adj for glusterfs process
- [#1336853](https://bugzilla.redhat.com/1336853): scripts: bash-isms in scripts
- [#1336945](https://bugzilla.redhat.com/1336945): [NFS-Ganesha] : stonith-enabled option not set with new versions of cman,pacemaker,corosync and pcs
- [#1337160](https://bugzilla.redhat.com/1337160): distaf: Added libraries to setup nfs-ganesha in gluster through distaf
- [#1337227](https://bugzilla.redhat.com/1337227): [tiering]: error message shown during the failure of detach tier commit isn't intuitive
- [#1337405](https://bugzilla.redhat.com/1337405): Some of VMs go to paused state when there is concurrent I/O on vms
- [#1337473](https://bugzilla.redhat.com/1337473): upgrade path when slave volume uuid used in geo-rep session
- [#1337597](https://bugzilla.redhat.com/1337597): Mounting a volume over NFS with a subdir followed by a / returns "Invalid argument"
- [#1337650](https://bugzilla.redhat.com/1337650): log flooded with Could not map name=xxxx to a UUID when config'd with long hostnames
- [#1337777](https://bugzilla.redhat.com/1337777): tests/bugs/write-behind/1279730.t fails spuriously
- [#1337791](https://bugzilla.redhat.com/1337791): tests/basic/afr/tarissue.t fails regression
- [#1337899](https://bugzilla.redhat.com/1337899): Misleading error message on rebalance start when one of the glusterd instance is down
- [#1338544](https://bugzilla.redhat.com/1338544): fuse: In fuse_first_lookup(), dict is not un-referenced in case create_frame returns an empty pointer.
- [#1338634](https://bugzilla.redhat.com/1338634): AFR : fuse,nfs mount hangs when directories with same names are created and deleted continuously
- [#1338733](https://bugzilla.redhat.com/1338733): __inode_ctx_put: fix mem leak on failure
- [#1338967](https://bugzilla.redhat.com/1338967): common-ha: ganesha.nfsd not put into NFS-GRACE after fail-back
- [#1338991](https://bugzilla.redhat.com/1338991): DHT2: Tracker bug
- [#1339071](https://bugzilla.redhat.com/1339071): dht/rebalance: mark hardlink migration failure as skipped for rebalance process
- [#1339149](https://bugzilla.redhat.com/1339149): Error and warning messages related to xlator/features/snapview-client.so adding up to the client log on performing IO operations
- [#1339166](https://bugzilla.redhat.com/1339166): distaf: Added timeout value to wait for rebalance to complete and removed older rebalance library file
- [#1339181](https://bugzilla.redhat.com/1339181): Full heal of a sub-directory does not clean up name-indices when granular-entry-heal is enabled.
- [#1339214](https://bugzilla.redhat.com/1339214): gfapi: set mem_acct for the variables created for upcall
- [#1339471](https://bugzilla.redhat.com/1339471): [geo-rep]: Worker died with [Errno 2] No such file or directory
- [#1339472](https://bugzilla.redhat.com/1339472): [geo-rep]: Monitor crashed with [Errno 3] No such process
- [#1339541](https://bugzilla.redhat.com/1339541): Added libraries to setup CTDB in gluster through distaf
- [#1339553](https://bugzilla.redhat.com/1339553): gfapi: in case of handle based APIs, close glfd after successful create
- [#1339689](https://bugzilla.redhat.com/1339689): RFE - capacity info (df -h on a mount) is incorrect for a tiered volume
- [#1340488](https://bugzilla.redhat.com/1340488): copy-export-ganesha.sh does not have a correct shebang
- [#1340623](https://bugzilla.redhat.com/1340623): Directory creation(mkdir) fails when the remove brick is initiated  for replicated volumes accessing via nfs-ganesha
- [#1340853](https://bugzilla.redhat.com/1340853): [geo-rep]: If the session is renamed, geo-rep configuration are not retained
- [#1340936](https://bugzilla.redhat.com/1340936): Automount fails because /sbin/mount.glusterfs does not accept the -s option
- [#1341007](https://bugzilla.redhat.com/1341007): gfapi : throwing warning message for unused variable in glfs_h_find_handle()
- [#1341009](https://bugzilla.redhat.com/1341009): Log parameters such as the gfid, fd address, offset and length of the reads upon failure for easier debugging
- [#1341294](https://bugzilla.redhat.com/1341294): build: RHEL7 unpackaged files /var/lib/glusterd/hooks/.../S57glusterfind-delete-post.{pyc,pyo}
- [#1341474](https://bugzilla.redhat.com/1341474): [geo-rep]: Snapshot creation having geo-rep session is broken
- [#1341650](https://bugzilla.redhat.com/1341650): conservative merge happening on a x3 volume for a deleted file
- [#1341768](https://bugzilla.redhat.com/1341768): After setting up ganesha on RHEL 6, nodes remains in stopped state and  grace related failures observed in pcs status
- [#1341796](https://bugzilla.redhat.com/1341796): [quota+snapshot]: Directories are inaccessible from activated snapshot, when the snapshot was created during directory creation
- [#1342171](https://bugzilla.redhat.com/1342171): O_DIRECT support for sharding
- [#1342259](https://bugzilla.redhat.com/1342259): [features/worm] - write FOP should pass for the normal files
- [#1342298](https://bugzilla.redhat.com/1342298): reading file with size less than 512 fails with odirect read
- [#1342356](https://bugzilla.redhat.com/1342356): [RFE] Python library for creating Cluster aware CLI tools for Gluster
- [#1342420](https://bugzilla.redhat.com/1342420): [georep]: Stopping volume fails if it has geo-rep session (Even in stopped state)
- [#1342796](https://bugzilla.redhat.com/1342796): self heal deamon killed due to oom kills on a dist-disperse volume using nfs ganesha
- [#1342979](https://bugzilla.redhat.com/1342979): [geo-rep]: Add-Brick use case: create push-pem force on existing geo-rep fails
- [#1343038](https://bugzilla.redhat.com/1343038): IO ERROR when multiple graph switches
- [#1343286](https://bugzilla.redhat.com/1343286): enabling glusternfs with nfs.rpc-auth-allow to many hosts failed
- [#1343333](https://bugzilla.redhat.com/1343333): [RFE] Simplify Non Root Geo-replication Setup
- [#1343374](https://bugzilla.redhat.com/1343374): Gluster fuse client crashed generating core dump
- [#1343838](https://bugzilla.redhat.com/1343838): Implement API to get page aligned iobufs in iobuf.c
- [#1343906](https://bugzilla.redhat.com/1343906): [Stress/Scale] : I/O errors out from gNFS mount points during high load on an erasure coded volume,Logs flooded with Error messages.
- [#1343943](https://bugzilla.redhat.com/1343943): Old documentation link in log during Geo-rep MISCONFIGURATION
- [#1344277](https://bugzilla.redhat.com/1344277): [disperse] mkdir after re balance give Input/Output Error
- [#1344340](https://bugzilla.redhat.com/1344340): Unsafe access to inode->fd_list
- [#1344396](https://bugzilla.redhat.com/1344396): fd leak in disperse
- [#1344407](https://bugzilla.redhat.com/1344407): fail delete volume operation if one of the glusterd instance is down in cluster
- [#1344686](https://bugzilla.redhat.com/1344686): tiering : Multiple brick processes crashed on tiered volume while taking snapshots
- [#1344714](https://bugzilla.redhat.com/1344714): removal of file from nfs mount crashs ganesha server
- [#1344836](https://bugzilla.redhat.com/1344836): [Disperse volume]: IO hang seen on mount with file ops
- [#1344885](https://bugzilla.redhat.com/1344885): inode leak in brick process
- [#1345727](https://bugzilla.redhat.com/1345727): Bricks are starting when server quorum not met.
- [#1345744](https://bugzilla.redhat.com/1345744): [geo-rep]: Worker crashed with "KeyError: "
- [#1345748](https://bugzilla.redhat.com/1345748): SAMBA-DHT : Crash seen while rename operations in cifs mount and windows access of share mount
- [#1345846](https://bugzilla.redhat.com/1345846): quota : rectify quota-deem-statfs default value in gluster v set help command
- [#1345855](https://bugzilla.redhat.com/1345855): Possible crash due to a timer cancellation race
- [#1346138](https://bugzilla.redhat.com/1346138): [RFE] Non root Geo-replication Error logs improvements
- [#1346211](https://bugzilla.redhat.com/1346211): cleanup glusterd-georep code
- [#1346551](https://bugzilla.redhat.com/1346551): wrong understanding of function's parameter
- [#1346719](https://bugzilla.redhat.com/1346719): [Disperse] dd + rm + ls lead to IO hang
- [#1346821](https://bugzilla.redhat.com/1346821): cli  core dumped while providing/not wrong values during arbiter replica volume
- [#1347249](https://bugzilla.redhat.com/1347249): libgfapi : variables allocated by glfs_set_volfile_server is not freed
- [#1347354](https://bugzilla.redhat.com/1347354): glusterd: SuSE build system error for incorrect strcat, strncat usage
- [#1347686](https://bugzilla.redhat.com/1347686): IO error seen with Rolling or non-disruptive upgrade of an distribute-disperse(EC) volume from 3.7.5 to 3.7.9
- [#1348897](https://bugzilla.redhat.com/1348897): Add relative path validation for gluster copy file utility
- [#1348904](https://bugzilla.redhat.com/1348904): [geo-rep]: If the data is copied from .snaps directory to the master, it doesn't get sync to slave [First Copy]
- [#1348944](https://bugzilla.redhat.com/1348944): Change the glusterd log file name to glusterd.log
- [#1349270](https://bugzilla.redhat.com/1349270): ganesha.enable remains on in volume info file even after we disable nfs-ganesha on the cluster.
- [#1349273](https://bugzilla.redhat.com/1349273): Geo-rep silently ignores config parser errors
- [#1349276](https://bugzilla.redhat.com/1349276): Buffer overflow when attempting to create filesystem using libgfapi as driver on OpenStack
- [#1349284](https://bugzilla.redhat.com/1349284): [tiering]: Files of size greater than that of high watermark level should not be promoted
- [#1349398](https://bugzilla.redhat.com/1349398): nfs-ganesha disable doesn't delete nfs-ganesha folder from /var/run/gluster/shared_storage
- [#1349657](https://bugzilla.redhat.com/1349657): process glusterd set TCP_USER_TIMEOUT failed
- [#1349709](https://bugzilla.redhat.com/1349709): Polling failure errors getting when volume is started&stopped with SSL enabled setup.
- [#1349723](https://bugzilla.redhat.com/1349723): Added libraries to get server_brick dictionaries
- [#1350017](https://bugzilla.redhat.com/1350017): Change distaf glusterbase class and mount according to the config file changes
- [#1350168](https://bugzilla.redhat.com/1350168): distaf: made changes to create_volume function
- [#1350173](https://bugzilla.redhat.com/1350173): distaf: Adding samba_ops library
- [#1350188](https://bugzilla.redhat.com/1350188): distaf: minor import changes in ganesha.py
- [#1350191](https://bugzilla.redhat.com/1350191): race condition when set ctx->timer in function gf_timer_registry_init
- [#1350237](https://bugzilla.redhat.com/1350237): Gluster/NFS does not accept dashes in hostnames in exports/netgroups files
- [#1350245](https://bugzilla.redhat.com/1350245): distaf: Add library functions for gluster volume operations
- [#1350248](https://bugzilla.redhat.com/1350248): distaf: Modified get_pathinfo function in lib_utils.py
- [#1350256](https://bugzilla.redhat.com/1350256): Distaf: Modifying the ctdb_libs to get server host from the server dict
- [#1350258](https://bugzilla.redhat.com/1350258): Distaf: add a sample test case to the framework
- [#1350327](https://bugzilla.redhat.com/1350327): Protocol client not mounting volumes running on older versions.
- [#1350371](https://bugzilla.redhat.com/1350371): ganesha/glusterd : remove 'HA_VOL_SERVER' from ganesha-ha.conf
- [#1350383](https://bugzilla.redhat.com/1350383): distaf: Modified distaf gluster config file
- [#1350427](https://bugzilla.redhat.com/1350427): distaf: Modified tier_attach() to get bricks path for attaching tier from the available bricks in server
- [#1350744](https://bugzilla.redhat.com/1350744): GlusterFS 3.9.0 tracker
- [#1350793](https://bugzilla.redhat.com/1350793): build: remove absolute paths from glusterfs spec file
- [#1350867](https://bugzilla.redhat.com/1350867): RFE: FEATURE: Lock revocation for features/locks xlator
- [#1351021](https://bugzilla.redhat.com/1351021): [DHT]: Rebalance info for remove brick  operation is  not showing after glusterd restart
- [#1351071](https://bugzilla.redhat.com/1351071): [geo-rep] Stopped geo-rep session gets started automatically once all the master nodes are upgraded
- [#1351134](https://bugzilla.redhat.com/1351134): [SSL] : gluster v set help does not show ssl options
- [#1351537](https://bugzilla.redhat.com/1351537): [Bitrot] Need a way to set scrub interval to a minute, for ease of testing
- [#1351880](https://bugzilla.redhat.com/1351880): gluster volume status <volume> client" isn't showing any information when one of the nodes in a 3-way Distributed-Replicate volume is shut down
- [#1352019](https://bugzilla.redhat.com/1352019): RFE: Move throttling code to libglusterfs from bitrot
- [#1352277](https://bugzilla.redhat.com/1352277): a two node glusterfs seems not possible anymore?!
- [#1352279](https://bugzilla.redhat.com/1352279): [scale]: Bricks not started after node reboot.
- [#1352423](https://bugzilla.redhat.com/1352423): should find_library("c") be used instead of find_library("libc") in geo-replication/syncdaemon/libcxattr.py?
- [#1352634](https://bugzilla.redhat.com/1352634): qemu libgfapi clients hang when doing I/O
- [#1352671](https://bugzilla.redhat.com/1352671): RFE: As a part of xattr invalidation, send the stat info as well
- [#1352854](https://bugzilla.redhat.com/1352854): GlusterFS - Memory Leak - High Memory Utilization
- [#1352871](https://bugzilla.redhat.com/1352871): [Bitrot]: Scrub status- Certain fields continue to show previous run's details, even if the current run is in progress
- [#1353156](https://bugzilla.redhat.com/1353156): [RFE] CLI to get local state representation for a cluster
- [#1354141](https://bugzilla.redhat.com/1354141): several problems found in failure handle logic
- [#1354221](https://bugzilla.redhat.com/1354221): noisy compilation warnning with Wstrict-prototypes
- [#1354372](https://bugzilla.redhat.com/1354372): Fix timing issue in tests/bugs/glusterd/bug-963541.t
- [#1354439](https://bugzilla.redhat.com/1354439): nfs client I/O stuck post IP failover
- [#1354489](https://bugzilla.redhat.com/1354489): service file is executable
- [#1355604](https://bugzilla.redhat.com/1355604): afr coverity fixes
- [#1355628](https://bugzilla.redhat.com/1355628): Upgrade from 3.7.8 to 3.8.1 doesn't regenerate the volfiles
- [#1355706](https://bugzilla.redhat.com/1355706): [Bitrot]: Sticky bit files considered and skipped by the scrubber, instead of getting ignored.
- [#1355956](https://bugzilla.redhat.com/1355956): RFE : move ganesha related configuration into shared storage
- [#1356032](https://bugzilla.redhat.com/1356032): quota: correct spelling mistakes in quota src files
- [#1356068](https://bugzilla.redhat.com/1356068): observing " Too many levels of symbolic links" after adding bricks and then issuing a replace brick
- [#1356504](https://bugzilla.redhat.com/1356504): Move gf_log->gf_msg in index feature
- [#1356508](https://bugzilla.redhat.com/1356508): [RFE] Handle errors during SSH key generation(gsec_create)
- [#1356528](https://bugzilla.redhat.com/1356528): memory leak in glusterd-georeplication
- [#1356851](https://bugzilla.redhat.com/1356851): [Bitrot+Sharding] Scrub status shows incorrect values for 'files scrubbed' and 'files skipped'
- [#1356868](https://bugzilla.redhat.com/1356868): File not found errors during rpmbuild: /var/lib/glusterd/hooks/1/delete/post/S57glusterfind-delete-post.py{c,o}
- [#1356888](https://bugzilla.redhat.com/1356888): Correct code in socket.c to avoid fd leak
- [#1356998](https://bugzilla.redhat.com/1356998): syscalls: readdir_r() is deprecated in newer glibc
- [#1357210](https://bugzilla.redhat.com/1357210): add several fops support in io-threads
- [#1357226](https://bugzilla.redhat.com/1357226): add a basis function to reduce verbose code
- [#1357397](https://bugzilla.redhat.com/1357397): Trash translator fails to create 'internal_op' directory under already existing trash directory
- [#1357463](https://bugzilla.redhat.com/1357463): Error: quota context not set inode (gfid:nnn) [Invalid argument]
- [#1357490](https://bugzilla.redhat.com/1357490): libglusterfs : update correct memory segments in glfs-message-id
- [#1357821](https://bugzilla.redhat.com/1357821): Make install fails second time without uninstall
- [#1358114](https://bugzilla.redhat.com/1358114): tests: ./tests/bitrot/br-stub.t fails intermittently
- [#1358195](https://bugzilla.redhat.com/1358195): Fix spurious failure of tests/bugs/glusterd/bug-1111041.t
- [#1358196](https://bugzilla.redhat.com/1358196): Tiering related core observed with "uuid_is_null () message".
- [#1358244](https://bugzilla.redhat.com/1358244): [SNAPSHOT]: The PID for snapd is displayed even after snapd process is killed.
- [#1358594](https://bugzilla.redhat.com/1358594): Enable gfapi test cases in Gluster upstream regression
- [#1358608](https://bugzilla.redhat.com/1358608): Memory leak observed with upcall polling
- [#1358671](https://bugzilla.redhat.com/1358671): Add Events for Volume Set and Reset
- [#1358922](https://bugzilla.redhat.com/1358922): missunderstanding about GF_PROTOCOL_DICT_SERIALIZE
- [#1358936](https://bugzilla.redhat.com/1358936): coverity: iobuf_get_page_aligned calling iobuf_get2 should check the return pointer
- [#1358944](https://bugzilla.redhat.com/1358944): jbr resource leak, forget free "path"
- [#1358976](https://bugzilla.redhat.com/1358976): Fix spurious failures in split-brain-favorite-child-policy.t
- [#1359001](https://bugzilla.redhat.com/1359001): Fix spurious failures in ec.t
- [#1359190](https://bugzilla.redhat.com/1359190): Glusterd crashes upon receiving SIGUSR1
- [#1359370](https://bugzilla.redhat.com/1359370): glfs: fix glfs_set_volfile_server doc
- [#1359711](https://bugzilla.redhat.com/1359711): [GSS] Rebalance crashed
- [#1359717](https://bugzilla.redhat.com/1359717): Fix failure of ./tests/bugs/snapshot/bug-1316437.t
- [#1360169](https://bugzilla.redhat.com/1360169): Fix bugs in compound fops framework
- [#1360401](https://bugzilla.redhat.com/1360401): RFE: support multiple bricks within one process
- [#1360402](https://bugzilla.redhat.com/1360402): Clients can starve under heavy load
- [#1360647](https://bugzilla.redhat.com/1360647): gfapi: deprecate the rdma support for management connections
- [#1360670](https://bugzilla.redhat.com/1360670): Add output option `--xml` to man page of gluster
- [#1360679](https://bugzilla.redhat.com/1360679): Bricks doesn't come online after reboot [ Brick Full ]
- [#1360682](https://bugzilla.redhat.com/1360682): tests: ./tests/bitrot/bug-1244613.t fails intermittently
- [#1360693](https://bugzilla.redhat.com/1360693): [RFE] Add a count of snapshots associated with a volume to the output of the vol info command
- [#1360809](https://bugzilla.redhat.com/1360809): [RFE] Capture events in GlusterD
- [#1361094](https://bugzilla.redhat.com/1361094): Auto generate header files during Make
- [#1361249](https://bugzilla.redhat.com/1361249): posix: leverage FALLOC_FL_ZERO_RANGE in zerofill fop
- [#1361300](https://bugzilla.redhat.com/1361300): Direct io to sharded files fails when on zfs backend
- [#1361678](https://bugzilla.redhat.com/1361678): thread CPU saturation limiting throughput on write workloads
- [#1361983](https://bugzilla.redhat.com/1361983): Move USE_EVENTS in gf_events API
- [#1361999](https://bugzilla.redhat.com/1361999): Remove ganesha xlator code from gluster code base
- [#1362144](https://bugzilla.redhat.com/1362144): Python library to send Events
- [#1362151](https://bugzilla.redhat.com/1362151): [libgfchangelog]: If changelogs are not available for the requested time range, no proper error message
- [#1362397](https://bugzilla.redhat.com/1362397): Mem leak in meta_default_readv in meta xlators
- [#1362520](https://bugzilla.redhat.com/1362520): Per xlator logging not working
- [#1362602](https://bugzilla.redhat.com/1362602): [Open SSL] : Unable to mount an SSL enabled volume via SMB v3/Ganesha v4
- [#1363591](https://bugzilla.redhat.com/1363591): Geo-replication user driven Events
- [#1363721](https://bugzilla.redhat.com/1363721): [HC]: After bringing down and up of the bricks  VM's are getting paused
- [#1363948](https://bugzilla.redhat.com/1363948): Spurious failure in tests/bugs/glusterd/bug-1089668.t
- [#1364026](https://bugzilla.redhat.com/1364026): glfs_fini() crashes with SIGSEGV
- [#1364420](https://bugzilla.redhat.com/1364420): [RFE] History Crawl performance improvement
- [#1364449](https://bugzilla.redhat.com/1364449): posix: honour fsync flags in posix_do_zerofill
- [#1364529](https://bugzilla.redhat.com/1364529): api: revert glfs_ipc_xd intended for 4.0
- [#1365455](https://bugzilla.redhat.com/1365455): [AFR]: Files not available in the mount point after converting Distributed volume type to Replicated one.
- [#1365489](https://bugzilla.redhat.com/1365489): glfs_truncate missing
- [#1365506](https://bugzilla.redhat.com/1365506): gfapi: use const qualifier for glfs_*timens()
- [#1366195](https://bugzilla.redhat.com/1366195): [Bitrot - RFE]: On demand scrubbing option to scrub
- [#1366222](https://bugzilla.redhat.com/1366222): "heal info --xml" not showing the brick name of offline bricks.
- [#1366226](https://bugzilla.redhat.com/1366226): Move alloca0 definition to common-utils
- [#1366284](https://bugzilla.redhat.com/1366284): fix bug in protocol/client lookup callback
- [#1367258](https://bugzilla.redhat.com/1367258): Log EEXIST errors at DEBUG level
- [#1367478](https://bugzilla.redhat.com/1367478): Second gluster volume is offline after daemon restart or server reboot
- [#1367527](https://bugzilla.redhat.com/1367527): core: use <sys/sysmacros.h> for makedev(3), major(3), minor(3)
- [#1367665](https://bugzilla.redhat.com/1367665): rotated FUSE mount log is using to populate the information after log rotate.
- [#1367771](https://bugzilla.redhat.com/1367771): Introduce graceful mode in stop-all-gluster-processes.sh
- [#1367774](https://bugzilla.redhat.com/1367774): Support for Client side Events
- [#1367815](https://bugzilla.redhat.com/1367815): [Bitrot - RFE]: Bitrot Events
- [#1368042](https://bugzilla.redhat.com/1368042): make fails if Events APIs are disabled
- [#1368349](https://bugzilla.redhat.com/1368349): tests/bugs/cli/bug-1320388.t: Infrequent failures
- [#1368451](https://bugzilla.redhat.com/1368451): [RFE] Implement multi threaded self-heal for ec volumes
- [#1368842](https://bugzilla.redhat.com/1368842): Applications not calling glfs_h_poll_upcall() have upcall events cached for no use
- [#1368882](https://bugzilla.redhat.com/1368882): log level set in glfs_set_logging() does not work
- [#1368931](https://bugzilla.redhat.com/1368931): [ RFE] Quota Events
- [#1368953](https://bugzilla.redhat.com/1368953): spurious netbsd run failures in tests/basic/glusterd/volfile_server_switch.t
- [#1369124](https://bugzilla.redhat.com/1369124): fix unused variable warnings from out-of-tree builds generate XDR headers and source files i...
- [#1369331](https://bugzilla.redhat.com/1369331): Memory leak with a replica 3 arbiter 1 configuration
- [#1369401](https://bugzilla.redhat.com/1369401): NetBSD hangs at /tests/features/lock_revocation.t
- [#1369430](https://bugzilla.redhat.com/1369430): Track the client that performed readdirp
- [#1369432](https://bugzilla.redhat.com/1369432): IATT cache invalidation should be sent when permission changes on file
- [#1369524](https://bugzilla.redhat.com/1369524): segment fault while join thread reaper_thr in fini()
- [#1369530](https://bugzilla.redhat.com/1369530): protocol/server: readlink rsp xdr failed  while readlink got an error
- [#1369638](https://bugzilla.redhat.com/1369638): DHT stale layout issue will be seen often with md-cache prolonged cache of lookups
- [#1369721](https://bugzilla.redhat.com/1369721): EventApis will not work if compiled using ./configure --disable-glupy
- [#1370053](https://bugzilla.redhat.com/1370053): fix EXPECT_WITHIN
- [#1370074](https://bugzilla.redhat.com/1370074): Fix mistakes in self-heald.t
- [#1370406](https://bugzilla.redhat.com/1370406): build: eventtypes.h is missing
- [#1370445](https://bugzilla.redhat.com/1370445): Geo-replication server side events
- [#1370862](https://bugzilla.redhat.com/1370862): dht: fix the broken build
- [#1371541](https://bugzilla.redhat.com/1371541): Spurious regressions in ./tests/bugs/gfapi/bug-1093594.t
- [#1371543](https://bugzilla.redhat.com/1371543): Add cache invalidation stat in profile info
- [#1371775](https://bugzilla.redhat.com/1371775): `gluster system:: uuid get` hangs
- [#1372278](https://bugzilla.redhat.com/1372278): [RFE] Provide snapshot events for the new eventing framework
- [#1372586](https://bugzilla.redhat.com/1372586): Fix the test case http://review.gluster.org/#/c/15385/
- [#1372686](https://bugzilla.redhat.com/1372686): [RFE]Reducing number of network round trips
- [#1373529](https://bugzilla.redhat.com/1373529): Node remains in stopped state in pcs status with "/usr/lib/ocf/resource.d/heartbeat/ganesha_mon: line 137: [: too many arguments ]" messages in logs.
- [#1373735](https://bugzilla.redhat.com/1373735): Event pushed even if Answer is No in the Volume Stop and Delete prompt
- [#1373740](https://bugzilla.redhat.com/1373740): [RFE]: events from protocol server
- [#1373743](https://bugzilla.redhat.com/1373743): [RFE]: AFR events
- [#1374153](https://bugzilla.redhat.com/1374153): [RFE] History Crawl performance improvement
- [#1374167](https://bugzilla.redhat.com/1374167): disperse: Integrate important events with events framework
- [#1374278](https://bugzilla.redhat.com/1374278): rpc/xdr: generated files are filtered with a sed extended regex
- [#1374298](https://bugzilla.redhat.com/1374298): "gluster vol status all clients --xml" doesn't generate xml if there is a failure in between
- [#1374324](https://bugzilla.redhat.com/1374324): [RFE] Tier Events
- [#1374567](https://bugzilla.redhat.com/1374567): [Bitrot]: Recovery fails of a corrupted hardlink (and the corresponding parent file) in a disperse volume
- [#1374581](https://bugzilla.redhat.com/1374581): Geo-rep worker Faulty with OSError: [Errno 21] Is a directory
- [#1374597](https://bugzilla.redhat.com/1374597): [geo-rep]: AttributeError: 'Popen' object has no attribute 'elines'
- [#1374608](https://bugzilla.redhat.com/1374608): geo-replication *changes.log does not respect the log-level configured
- [#1374626](https://bugzilla.redhat.com/1374626): Worker crashes with EINVAL errors
- [#1374630](https://bugzilla.redhat.com/1374630): [geo-replication]: geo-rep Status is not showing bricks from one of the nodes
- [#1374639](https://bugzilla.redhat.com/1374639): glusterfs: create a directory with 0464 mode return EIO error
- [#1374649](https://bugzilla.redhat.com/1374649): Support for rc.d and init for Service management
- [#1374841](https://bugzilla.redhat.com/1374841): Implement SIMD support on EC
- [#1375042](https://bugzilla.redhat.com/1375042): bug-963541.t spurious failure
- [#1375537](https://bugzilla.redhat.com/1375537): gf_event python fails with ImportError
- [#1375543](https://bugzilla.redhat.com/1375543): [geo-rep]: defunct tar process while using tar+ssh sync
- [#1375570](https://bugzilla.redhat.com/1375570): Detach tier commit is allowed when detach tier start goes into failed state
- [#1375914](https://bugzilla.redhat.com/1375914): posix: Integrate important events with events framework
- [#1376331](https://bugzilla.redhat.com/1376331): Rpm installation fails with conflicts error for eventsconfig.json file
- [#1376396](https://bugzilla.redhat.com/1376396): /var/tmp/rpm-tmp.KPCugR: line 2: /bin/systemctl: No such file or directory
- [#1376477](https://bugzilla.redhat.com/1376477): [RFE] DHT Events
- [#1376874](https://bugzilla.redhat.com/1376874): RFE : move ganesha related configuration into shared storage
- [#1377288](https://bugzilla.redhat.com/1377288): The GlusterFS Callback RPC-calls always use RPC/XID 42
- [#1377386](https://bugzilla.redhat.com/1377386): glusterd experiencing repeated connect/disconnect messages when shd is down
- [#1377570](https://bugzilla.redhat.com/1377570): EC: Set/unset dirty flag for all the update operations
- [#1378814](https://bugzilla.redhat.com/1378814): Files not being opened with o_direct flag during random read operation (Glusterfs 3.8.2)
- [#1378948](https://bugzilla.redhat.com/1378948): removal of file from nfs mount crashes ganesha server
- [#1379028](https://bugzilla.redhat.com/1379028): Modifications to AFR Events
- [#1379287](https://bugzilla.redhat.com/1379287): warning messages seen in glusterd logs for each 'gluster volume status' command
- [#1379528](https://bugzilla.redhat.com/1379528): Poor smallfile read performance on Arbiter volume compared to Replica 3 volume
- [#1379707](https://bugzilla.redhat.com/1379707): gfapi: Fix fd ref leaks
- [#1379996](https://bugzilla.redhat.com/1379996): Volume restart couldn't re-export the volume exported via ganesha.
- [#1380252](https://bugzilla.redhat.com/1380252): glusterd fails to start without installing glusterfs-events package
- [#1383591](https://bugzilla.redhat.com/1383591): glfs_realpath() should not return malloc()'d allocated memory
- [#1383692](https://bugzilla.redhat.com/1383692): GlusterFS fails to build on old Linux distros with linux/oom.h missing
- [#1383913](https://bugzilla.redhat.com/1383913): spurious heal info as pending heal entries never end on an EC volume while IOs are going on
- [#1385224](https://bugzilla.redhat.com/1385224): arbiter volume write performance is bad with sharding
- [#1385236](https://bugzilla.redhat.com/1385236): invalid argument warning messages seen in fuse client logs 2016-09-30 06:34:58.938667] W [dict.c:418ict_set] (-->/usr/lib64/glusterfs/3.8.4/xlator/cluster/replicate.so(+0x58722)  0-dict: !this || !value for key=link-count [Invalid argument]
- [#1385451](https://bugzilla.redhat.com/1385451): "nfs.disable: on" is not showing in Vol info by default for the 3.7.x volumes after updating to 3.9.0
- [#1386072](https://bugzilla.redhat.com/1386072): Spurious permission denied problems observed
- [#1386178](https://bugzilla.redhat.com/1386178): eventsapi/georep: Events are not available for Checkpoint and Status Change
- [#1386338](https://bugzilla.redhat.com/1386338): pmap_signin event fails to update brickinfo->signed_in flag
- [#1387099](https://bugzilla.redhat.com/1387099): Boolean attributes are published as string
- [#1387492](https://bugzilla.redhat.com/1387492): Error and warning message getting while removing  glusterfs-events package
- [#1387502](https://bugzilla.redhat.com/1387502): Incorrect volume type in the  "glusterd_state" file generated using CLI "gluster get-state"
- [#1387564](https://bugzilla.redhat.com/1387564): [Eventing]: UUID is showing zeros in the event message for the peer probe operation.
- [#1387894](https://bugzilla.redhat.com/1387894): Regression caused by enabling client-io-threads by default
- [#1387960](https://bugzilla.redhat.com/1387960): Sequential volume start&stop  is failing  with SSL  enabled setup.
- [#1387964](https://bugzilla.redhat.com/1387964): [Eventing]: 'gluster vol bitrot <volname> scrub ondemand' does not produce an event
- [#1387975](https://bugzilla.redhat.com/1387975): Continuous warning messages getting when one of the cluster node is down on SSL setup.
- [#1387981](https://bugzilla.redhat.com/1387981): [Eventing]: 'gluster volume tier <volname> start force' does not generate a TIER_START event
- [#1387984](https://bugzilla.redhat.com/1387984): Add a test script for compound fops changes in AFR
- [#1387990](https://bugzilla.redhat.com/1387990): [RFE] Geo-replication Logging Improvements
- [#1388150](https://bugzilla.redhat.com/1388150): geo-replica slave node goes faulty for non-root user session due to fail to locate gluster binary
- [#1388323](https://bugzilla.redhat.com/1388323): fuse mount point not accessible
- [#1388350](https://bugzilla.redhat.com/1388350): Memory Leaks in snapshot code path
- [#1388470](https://bugzilla.redhat.com/1388470): throw warning to show that older tier commands are depricated and will be removed.
- [#1388563](https://bugzilla.redhat.com/1388563): [Eventing]: 'VOLUME_REBALANCE' event messages have an incorrect volume name
- [#1388579](https://bugzilla.redhat.com/1388579): crypt: changes needed for openssl-1.1 (coming in Fedora 26)
- [#1388731](https://bugzilla.redhat.com/1388731): [GSS]glusterfind pre session hangs indefinitely in RHGS 3.1.3
- [#1388912](https://bugzilla.redhat.com/1388912): glusterfs can't self heal character dev file for invalid dev_t parameters
- [#1389675](https://bugzilla.redhat.com/1389675): Experimental translators and 4.0 features need to be disabled for release-3.9
- [#1389742](https://bugzilla.redhat.com/1389742): build: incorrect Requires: for portblock resource agent
- [#1390837](https://bugzilla.redhat.com/1390837): write-behind: flush stuck by former failed write
- [#1391448](https://bugzilla.redhat.com/1391448): md-cache: Invalidate cache entry in case of OPEN with O_TRUNC
- [#1392286](https://bugzilla.redhat.com/1392286): gfapi clients crash while using async calls due to double fd_unref
- [#1392718](https://bugzilla.redhat.com/1392718): Quota version not changing in the quota.conf after upgrading to 3.7.1 from 3.6.1
- [#1392844](https://bugzilla.redhat.com/1392844): Hosted Engine VM paused post replace-brick operation
- [#1392869](https://bugzilla.redhat.com/1392869): The FUSE client log is filling up with posix_acl_default and posix_acl_access messages