Bug 819916

Summary: Error: xml libraries not present to produce xml-output
Product: [Community] GlusterFS Reporter: Geoff Galitz <ggalitz>
Component: cliAssignee: Kaleb KEITHLEY <kkeithle>
Status: CLOSED CURRENTRELEASE QA Contact: Vijaykumar Koppad <vkoppad>
Severity: medium Docs Contact:
Priority: medium    
Version: 3.2.6CC: bbandari, gluster-bugs, grajaiya, kkeithle
Target Milestone: ---   
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2012-07-05 12:00:45 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: 3.3.0qa45 Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On:    
Bug Blocks: 817967    

Description Geoff Galitz 2012-05-08 15:42:36 UTC
Description of problem:

The command "gluster volume set help-xml" fails with "Error: xml libraries not present to produce xml-output"

Version-Release number of selected component (if applicable):

gluster cli, version 3.2.6

How reproducible:

Always

Steps to Reproduce:
1. Simply run gluster volume set help-xml
2.
3.
  
Actual results:

Error: xml libraries not present to produce xml-output
Set volume unsuccessful

Expected results:

XML info?

Additional info:

Comment 1 Geoff Galitz 2012-05-08 15:43:48 UTC
I forgot to add this info:

------
[root ~]# rpm -qa | grep libxml2
libxml2-devel-2.7.6-4.el6.x86_64
libxml2-2.7.6-4.el6.x86_64
libxml2-python-2.7.6-4.el6.x86_64
libxml2-static-2.7.6-4.el6.x86_64
[root ~]#


So xml libraries are installed.

Comment 2 Kaleb KEITHLEY 2012-05-08 15:49:16 UTC
He's using the Fedora EPEL build. I get the same error in the Fedora F16 build. Not sure if this is a Fedora build/packaging problem.

Comment 3 Kaleb KEITHLEY 2012-05-09 17:49:20 UTC
Please try the new epel builds at https://koji.fedoraproject.org/koji/buildinfo?buildID=318151 and see if they resolve the issue.

Thanks,

Comment 4 Geoff Galitz 2012-05-10 08:49:38 UTC
Unfortunately it did not work:

------------------------
[root ~]# gluster volume set help-xml
Error: xml libraries not present to produce xml-output
Set volume unsuccessful

[root ~]# which gluster
/usr/sbin/gluster

[root ~]# ldd /usr/sbin/gluster
        linux-vdso.so.1 =>  (0x00007fffd35fd000)
        libglusterfs.so.0 => /usr/lib64/libglusterfs.so.0 (0x00007f6096ee3000)
        libreadline.so.6 => /lib64/libreadline.so.6 (0x00007f6096ca0000)
        libncurses.so.5 => /lib64/libncurses.so.5 (0x00007f6096a7d000)
        libgfxdr.so.0 => /usr/lib64/libgfxdr.so.0 (0x00007f6096868000)
        libgfrpc.so.0 => /usr/lib64/libgfrpc.so.0 (0x00007f6096652000)
        libdl.so.2 => /lib64/libdl.so.2 (0x00007f609644d000)
        libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f6096231000)
        libc.so.6 => /lib64/libc.so.6 (0x00007f6095e90000)
        libtinfo.so.5 => /lib64/libtinfo.so.5 (0x00007f6095c6e000)
        /lib64/ld-linux-x86-64.so.2 (0x00007f609714e000)


[root ~]# rpm -qa | grep glust
glustermg-backend-1.0.0alpha-1.x86_64
glusterfs-fuse-3.2.6-2.el6.x86_64
glusterfs-3.2.6-2.el6.x86_64
glusterfs-server-3.2.6-2.el6.x86_64
[root ~]#

[root ~]# rpm -qa | grep xml
libxml2-python-2.7.6-4.el6.x86_64
libxml2-static-2.7.6-4.el6.x86_64
libxml2-2.7.6-4.el6.x86_64
libxml2-devel-2.7.6-4.el6.x86_64

Comment 5 Kaleb KEITHLEY 2012-05-10 12:24:07 UTC
That's strange.

On both my f16 and rhel6 boxes after upgrading to the respective 3.2.6-2 builds, here's what I get:

% gluster volume set help-xml
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<options><option><defaultValue>16</defaultValue><description>...
...

% rpm -qa | egrep glust
glusterfs-server-3.2.6-2.el6.x86_64
glusterfs-3.2.6-2.el6.x86_64
glusterfs-fuse-3.2.6-2.el6.x86_64

The message: "Error: xml libraries not present to produce xml-output" is the result when libxml2-devel (and libxml2) are not being present on the build system when the configure script is run. It's only the mgmt xlator that's linked with libxml2.so, thus:

% ldd /usr/lib64/glusterfs/3.2.6/xlator/mgmt/glusterd.so
	linux-vdso.so.1 =>  (0x00007fff337ff000)
	libxml2.so.2 => /usr/lib64/libxml2.so.2 (0x00007fa7d048e000)
        ...

Comment 6 Geoff Galitz 2012-05-10 15:02:58 UTC
My output:

[root ~]# gluster volume set help-xml
Error: xml libraries not present to produce xml-output
Set volume unsuccessful

[root ~]# rpm -qa | egrep gluster
glustermg-backend-1.0.0alpha-1.x86_64
glusterfs-fuse-3.2.6-2.el6.x86_64
glusterfs-3.2.6-2.el6.x86_64
glusterfs-server-3.2.6-2.el6.x86_64

[root ~]#  ldd /usr/lib64/glusterfs/3.2.6/xlator/mgmt/glusterd.so
        linux-vdso.so.1 =>  (0x00007fff6adff000)
        libxml2.so.2 => /usr/lib64/libxml2.so.2 (0x00007ff7658ee000)
        libgfxdr.so.0 => /usr/lib64/libgfxdr.so.0 (0x00007ff7656d9000)


So the libs are there... but it does not work.

Comment 7 Anand Avati 2012-05-10 23:33:52 UTC
CHANGE: http://review.gluster.com/3305 (glusterfs.spec.in, Add BuildRequires: libxml2-devel so that configure will DTRT on Fedora's Koji build system) merged in master by Anand Avati (avati)

Comment 8 Kaleb KEITHLEY 2012-05-16 14:42:34 UTC
I installed CentOS 6.1 as a kvm guest (/etc/centos-release says 6.2. Huh?)
Added epel repo. Installed glusterfs-3.2.6-1, get the error. 
Then yum localupdate to 3.2.6-2-el6; no longer get the error.

% cat /etc/centos-release
CentOS release 6.2 (Final)

% rpm -qa | egrep glusterfs
glusterfs-3.2.6-2.el6.x86_64
glusterfs-fuse-3.2.6-2.el6.x86_64
glusterfs-server-3.2.6-2.el6.x86_64

% ldd /usr/lib64/glusterfs/3.2.6/xlator/mgmt/glusterd.so 	
	linux-vdso.so.1 =>  (0x00007fffa51cf000)
	libxml2.so.2 => /usr/lib64/libxml2.so.2 (0x00007fe509ee6000)
	libgfxdr.so.0 => /usr/lib64/libgfxdr.so.0 (0x00007fe509cd1000)
	...

% gluster volume set help-xml
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<options><option><defaultValue>16</defaultValue>...

As much as it pains me to do it, I have to say: works for me.

Comment 9 Geoff Galitz 2012-05-17 08:37:23 UTC
Well...  it doesn't work for me.  :)

I do see this in the logs when I try the volume set help-xml command:


[2012-05-17 04:33:38.468216] I [glusterd-utils.c:243:glusterd_lock] 0-glusterd: Cluster lock held by 3eb0d26e-1cc6-4909-a9b0-80170ee63812
[2012-05-17 04:33:38.468252] I [glusterd-handler.c:420:glusterd_op_txn_begin] 0-glusterd: Acquired local lock
[2012-05-17 04:33:38.468925] I [glusterd-rpc-ops.c:758:glusterd3_1_cluster_lock_cbk] 0-glusterd: Received ACC from uuid: 26a70f88-484d-45cf-867e-12d0247adf49
[2012-05-17 04:33:38.469089] I [glusterd-op-sm.c:6737:glusterd_op_ac_send_stage_op] 0-glusterd: Sent op req to 1 peers
[2012-05-17 04:33:38.469999] I [glusterd-rpc-ops.c:1056:glusterd3_1_stage_op_cbk] 0-glusterd: Received RJT from uuid: 26a70f88-484d-45cf-867e-12d0247adf49
[2012-05-17 04:33:38.470580] I [glusterd-rpc-ops.c:817:glusterd3_1_cluster_unlock_cbk] 0-glusterd: Received ACC from uuid: 26a70f88-484d-45cf-867e-12d0247adf49
[2012-05-17 04:33:38.470626] I [glusterd-op-sm.c:7250:glusterd_op_txn_complete] 0-glusterd: Cleared local lock
[2012-05-17 04:33:38.471741] W [socket.c:1494:__socket_proto_state_machine] 0-socket.management: reading from socket failed. Error (Transport endpoint is not connected), peer (127.0.0.1:1022)
[2012-05-17 04:33:41.117511] I [glusterd-handler.c:750:glusterd_handle_cli_list_friends] 0-glusterd: Received cli list req
[2012-05-17 04:33:41.119587] W [socket.c:1494:__socket_proto_state_machine] 0-socket.management: reading from socket failed. Error (Transport endpoint is not connected), peer (127.0.0.1:1021)
[2012-05-17 04:34:44.301413] I [glusterd-handler.c:750:glusterd_handle_cli_list_friends] 0-glusterd: Received cli list req
[2012-05-17 04:34:44.303225] W [socket.c:1494:__socket_proto_state_machine] 0-socket.management: reading from socket failed. Error (Transport endpoint is not connected), peer (127.0.0.1:1022)


And just to confirm:


[root glusterfs]# rpm -qa | egrep glusterfs
glusterfs-fuse-3.2.6-2.el6.x86_64
glusterfs-3.2.6-2.el6.x86_64
glusterfs-server-3.2.6-2.el6.x86_64
[root glusterf


[root glusterfs]#  ldd /usr/lib64/glusterfs/3.2.6/xlator/mgmt/glusterd.so
        linux-vdso.so.1 =>  (0x00007fffba5ff000)
        libxml2.so.2 => /usr/lib64/libxml2.so.2 (0x00007fd7b6b1f000)
        libgfxdr.so.0 => /usr/lib64/libgfxdr.so.0 (0x00007fd7b6909000)
        libgfrpc.so.0 => /usr/lib64/libgfrpc.so.0 (0x00007fd7b66f3000)
        libglusterfs.so.0 => /usr/lib64/libglusterfs.so.0 (0x00007fd7b648f000)
        libdl.so.2 => /lib64/libdl.so.2 (0x00007fd7b628a000)
        libpthread.so.0 => /lib64/libpthread.so.0 (0x00007fd7b606e000)
        libc.so.6 => /lib64/libc.so.6 (0x00007fd7b5ccd000)
        libz.so.1 => /lib64/libz.so.1 (0x00007fd7b5ab6000)
        libm.so.6 => /lib64/libm.so.6 (0x00007fd7b5832000)
        /lib64/ld-linux-x86-64.so.2 (0x00007fd7b7103000)


[root glusterfs]# cat /etc/redhat-release
CentOS release 6.2 (Final)

[root glusterfs]# uname -a
Linux ops-glustertest01.ma01.shuttercorp.net 2.6.32-220.el6.x86_64 #1 SMP Tue Dec 6 19:48:22 GMT 2011 x86_64 x86_64 x86_64 GNU/Linux

Comment 11 Gowrishankar Rajaiyan 2012-05-29 10:39:45 UTC
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~#

[root@dhcp201-221 ~]# rpm -qa | grep -i -E "gluster|libxml"
glusterfs-3.3.0qa43-1.el6.x86_64
gluster-swift-object-1.4.8-3.el6.noarch
gluster-swift-proxy-1.4.8-3.el6.noarch
glusterfs-geo-replication-3.3.0qa43-1.el6.x86_64
gluster-swift-doc-1.4.8-3.el6.noarch
glusterfs-fuse-3.3.0qa43-1.el6.x86_64
glusterfs-server-3.3.0qa43-1.el6.x86_64
gluster-swift-1.4.8-3.el6.noarch
gluster-swift-account-1.4.8-3.el6.noarch
gluster-swift-container-1.4.8-3.el6.noarch
glusterfs-rdma-3.3.0qa43-1.el6.x86_64
gluster-swift-plugin-1.0-1.noarch
org.apache.hadoop.fs.glusterfs-glusterfs-0.20.2_0.1-1.noarch
libxml2-python-2.7.6-4.el6_2.4.x86_64
libxml2-2.7.6-4.el6_2.4.x86_64
[root@dhcp201-221 ~]# 
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~#

#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~#
# gluster volume set help
Option: cluster.self-heal-window-size
Default Value: 1
Description: Maximum number blocks per file for which self-heal process would be applied simultaneously.
...


[root@dhcp201-221 ~]# gluster volume set help-xml
Error: xml libraries not present to produce xml-output
Set volume unsuccessful
[root@dhcp201-221 ~]# 
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~#



#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~#
==> /var/log/glusterfs/etc-glusterfs-glusterd.vol.log <==
[2012-05-29 18:23:43.258467] I [glusterd-utils.c:283:glusterd_lock] 0-glusterd: Cluster lock held by 0608e800-85c1-4f0a-87c8-e7d5b8fa4018
[2012-05-29 18:23:43.258526] I [glusterd-handler.c:458:glusterd_op_txn_begin] 0-management: Acquired local lock
[2012-05-29 18:23:43.258591] E [glusterd-op-sm.c:356:glusterd_op_stage_set_volume] 0-management: libxml not present in the system
[2012-05-29 18:23:43.258630] E [glusterd-op-sm.c:1999:glusterd_op_ac_send_stage_op] 0-: Staging failed
[2012-05-29 18:23:43.258653] I [glusterd-op-sm.c:2039:glusterd_op_ac_send_stage_op] 0-glusterd: Sent op req to 0 peers
[2012-05-29 18:23:43.258682] I [glusterd-op-sm.c:2627:glusterd_op_txn_complete] 0-glusterd: Cleared local lock

==> /var/log/glusterfs/cli.log <==
[2012-05-29 18:23:43.258944] I [cli-rpc-ops.c:1342:gf_cli3_1_set_volume_cbk] 0-cli: Received resp to set
[2012-05-29 18:23:43.259192] I [input.c:46:cli_batch] 0-: Exiting with: -1
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~#