Because we version our libraries by path, updates without remounts can cause issues during volume changes: [2015-10-21 14:29:26.844977] I [glusterfsd-mgmt.c:56:mgmt_cbk_spec] 0-mgmt: Volume file changed [2015-10-21 14:29:26.886861] W [MSGID: 101095] [xlator.c:194:xlator_dynload] 0-xlator: /usr/lib64/glusterfs/3.7.4/xlator/cluster/replicate.so: cannot open shared object file: No such file or directory [2015-10-21 14:29:26.886909] E [graph.y:212:volume_type] 0-parser: Volume 'public-replicate-0', line 70: type 'cluster/replicate' is not valid or not found on this machine [2015-10-21 14:29:26.886934] E [graph.y:321:volume_end] 0-parser: "type" not specified for volume public-replicate-0 If we used versioned symbol tables, we could theoretically support this scenario - unless I completely misunderstand their use.
Yes, symbol versions would do that. They also add a lot of complexity to writing and maintaining xlators. Maybe we can or should consider it for 4.0 and hit the ground running with them from the start?
Migrated to github: https://github.com/gluster/glusterfs/issues/594 Please follow the github issue for further updates on this bug.