Description of problem: RPM update using yum from 3.2.1 to 3.3.0 fails at post-script of glusterfs-server. Version-Release number of selected component (if applicable): Pre update: glusterfs-core-3.2.1-1.x86_64.rpm glusterfs-fuse-3.2.1-1.x86_64.rpm Post update: glusterfs-3.3.0-1.el6.x86_64.rpm /glusterfs-server-3.3.0-1.el6.x86_64.rpm glusterfs-fuse-3.3.0-1.el6.x86_64.rpm How reproducible: 1. Install GlusterFS-3.2.1 # yum install http://download.gluster.org/pub/gluster/glusterfs/3.2/3.2.1/RHEL/glusterfs-core-3.2.1-1.x86_64.rpm \ http://download.gluster.org/pub/gluster/glusterfs/3.2/3.2.1/RHEL/glusterfs-fuse-3.2.1-1.x86_64.rpm 2. Create volume # service glusterd start # gluster volume create vol01 myhost:/data # service glusterd stop 3. Update to GlusterFS-3.3.0 # yum localinstall http://download.gluster.org/pub/gluster/glusterfs/LATEST/RHEL/glusterfs-3.3.0-1.el6.x86_64.rpm \ http://download.gluster.org/pub/gluster/glusterfs/LATEST/RHEL/glusterfs-server-3.3.0-1.el6.x86_64.rpm \ http://download.gluster.org/pub/gluster/glusterfs/LATEST/RHEL/glusterfs-fuse-3.3.0-1.el6.x86_64.rpm Then, you see the following error. ----------------------- Running Transaction Installing : glusterfs-3.3.0-1.el6.x86_64 1/5 Updating : glusterfs-fuse-3.3.0-1.el6.x86_64 2/5 Installing : glusterfs-server-3.3.0-1.el6.x86_64 3/5 Non-fatal POSTIN scriptlet failure in rpm package glusterfs-server-3.3.0-1.el6.x86_64 mv: cannot move `/etc/glusterd' to `/var/lib/glusterd': Directory not empty glusterd: symbol lookup error: glusterd: undefined symbol: xdr_gf_event_notify_rsp warning: %post(glusterfs-server-3.3.0-1.el6.x86_64) scriptlet failed, exit status 127 Cleanup : glusterfs-fuse-3.2.1-1.x86_64 4/5 Erasing : glusterfs-core-3.2.1-1.x86_64 5/5 ----------------------- Additional info: There are two problems in the post-script of glusterfs-server-3.3.0-1 here. 1. The following part presumes that /var/lib/glusterd doesn't exist. But because glusterfs-server provides directories and files in /var/lib/glusterd, the mv operation fails. if [ -d /etc/glusterd ]; then mkdir -p /var/lib mv /etc/glusterd /var/lib/ ln -sf /var/lib/glusterd /etc/glusterd fi This should be easy to resolve... 2. The following command is executed *before* old glusterfs-core is erased in the yum transaction process (as seen in the above output.) glusterd --xlator-option *.upgrade=on -N Because of that, glusterd uses the old libraries from glusterfs-core and fails with the error "glusterd: symbol lookup error: glusterd: undefined symbol: xdr_gf_event_notify_rsp". So you need some trick to avoid referring to the old libraries at this step.
we made few changes to RPM spec file. Need to see if thats enough.
see https://bugzilla.redhat.com/show_bug.cgi?id=819130