GlusterFS geo-replication can fail on Fedora due to a missing dynamic library symlink.

Checking /var/log/glusterfs/geo-replication/gv0_node1/gsyncd.log reveals:

class Changes(object):
    File "/usr/libexec/glusterfs/python/syncdaemon/libgfchangelog.py", line 19, in Changes
    use_errno=True)
  File "/usr/lib64/python2.7/ctypes/__init__.py", line 361, in __init__
    self._handle = _dlopen(self._name, mode)
OSError: /usr/lib64/libgfchangelog.so: cannot open shared object file: No such file or directory

Looking at /usr/libexec/glusterfs/python/syncdaemon/libgfchangelog.py:

class Changes(object):
    libgfc = CDLL("/usr/lib64/libgfchangelog.so", mode=RTLD_GLOBAL,
                  use_errno=True)

On Fedora and RHEL, bare .so library symlinks (as opposed to versioned sonames like .so.0) are provided by the -devel development packages. To resolve this error, install the development package:

sudo dnf install glusterfs-devel

Reference: Red Hat Bugzilla 1631595