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:
Please follow the github issue for further updates on this bug.