Description of problem: I tried to use 3.10.1 on Ubuntu and things don't seem to work. After some investigation I found that some autoconf macros are not correctly substituted, and make their way into paths in the source code. For example, peer_mountbroker (generated from an .in file) contains: m = MountbrokerUserMgmt("${prefix}/etc/glusterfs/glusterd.vol") and of course running this code will fail at run time. This commit is what broke it: https://review.gluster.org/#/c/16880/ The Ubuntu PPAs on https://launchpad.net/~gluster/+archive/ubuntu/glusterfs-3.10 are also broken; demo: $ curl -L https://launchpad.net/~gluster/+archive/ubuntu/glusterfs-3.10/+files/glusterfs-common_3.10.1-ubuntu1~xenial1_amd64.deb | bsdtar -f - -x --to-stdout data.tar.xz | bsdtar -f - -x --to-stdout ./usr/lib/x86_64-linux-gnu/glusterfs/peer_georep-sshkey.py | grep GSYNCD_CMD GSYNCD_CMD = 'command="${prefix}/lib/x86_64-linux-gnu/glusterfs/gsyncd"
I took the liberty to set the severity to high as this randomly breaks functionality.
It seems that this bug creates issues that are potentially hard to undo. For exmaple, on a deployed 3.10.1 cluster on Ubuntu that uses geo-replication, this bug will have landed an entry command="${exec_prefix}/libexec/glusterfs/gsyncd" ssh-rsa ... in the geo-replication slave's authorized_keys; even when the bug is fixed in the future, the only entry will persist, as gluster will not remove old/wrong entries that it added. So manual fixing of all machines on which this gluster 3.10.1 was used may be required.
Reverthing the linked commit fixes the issue; I put an example on https://github.com/gluster/glusterfs/compare/v3.10.1...nh2:v3.10.1-nh2-fix-wrong-autoconf-subsitutions-in-sourcecode
*** This bug has been marked as a duplicate of bug 1450947 ***