[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-API] libxenserver : xen_vm_get_record() fails with SIGSEGV


  • To: "xen-api@xxxxxxxxxxxxxxxxxxx" <xen-api@xxxxxxxxxxxxxxxxxxx>
  • From: "Sane, Abhijeet" <Abhijeet_Sane@xxxxxxx>
  • Date: Tue, 29 Dec 2009 02:40:17 -0700
  • Accept-language: en-US
  • Acceptlanguage: en-US
  • Delivery-date: Tue, 29 Dec 2009 01:40:44 -0800
  • List-id: Discussion of API issues surrounding Xen <xen-api.lists.xensource.com>
  • Thread-index: AcqIY/cU2QFWP5u+S1+RhN/v1oAGUgABu0dg
  • Thread-topic: libxenserver : xen_vm_get_record() fails with SIGSEGV

Hi ,

I am getting a SIGSEGV when calling xen_vm_get_record() function.
Please guide me if I am doing anything wrong.

<CodeSnippet>
                        struct xen_vm_set * vm_list = NULL;
                        //xen_vm_get_all(session,&vm_list);
                        xen_host_get_resident_vms(session,&vm_list,host);
                        if ( NULL == vm_list )
                        {
                                print_error(session);
                                xen_host_free(host);
                                cleanup();
                                return 1;
                        }

                        printf("Total number of virtual machines found on Xen 
Server %d\n",vm_list->size);
                        for(int i = 0 ; i < vm_list->size ; i++)
                        {
                                xen_vm_record * vm_rec = NULL;
                                printf("Trying to get VM record\n");
                                          //--- This is where it fails
                                xen_vm_get_record(session,&vm_rec ,*( 
vm_list->contents[i]));  
                                if ( NULL == vm_rec )
                                {
                                        print_error(session);
                                        xen_host_free(host);
                                        cleanup();
                                        return 1;
                                }
                                printf("(%d) == > UUID = %s ",i,vm_rec->uuid);
                        }

</CodeSnippet>

I am using the following libraries for development

XenServer Product Information 
------------------------------       
                                     
Name             XenServer           
Version          5.5.0-15119p        
Xen Version      3.3.1               
Kernel Version   2.6.18-128.1.6.el5.x
                 s5.5.0.496.1012xen  

CURL : 
-------
curl-7.9.8-54
curl-devel-7.9.8-54

GCC : 
-----
gcc-c++-3.2.2-38
libgcc-3.2.2-38
gcc-3.2.2-38

libXML : 
libxml2-2.7.6


libXenServer:
libxenserver-5.5.0-1


<execution trace >

Starting program: ./print_host_vm
[New Thread 1024 (LWP 9997)]
Initializing XML Parser
Initializing Xen
Creating Session with login/password
Session established
Host has the following capabilities:
xen-3.0-x86_64
xen-3.0-x86_32p
hvm-3.0-x86_32
hvm-3.0-x86_32p
hvm-3.0-x86_64


Host Record  list
UUID = 86f59fe9-6428-4742-b95e-22c284d60525
Name = xxxxxx
Hostname= xxxxxxx
Address = xxx.xxx.xxx.xxx
Host CPU Record size = 2
CPU Configuration size 0
Total number of virtual machines found on Xen Server 3
Trying to get VM record

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 1024 (LWP 9997)]
xmlStringGetNodeList (doc=0x815fa08, value=0x7161704f <Address 0x7161704f out 
of bounds>) at tree.c:1454
1454        while (*cur != 0) {
(gdb) where
#0  xmlStringGetNodeList (doc=0x815fa08, value=0x7161704f <Address 0x7161704f 
out of bounds>) at tree.c:1454
#1  0x08067124 in xmlNewDocNode (doc=0x815fa08, ns=0x8154220, name=0x6 <Address 
0x6 out of bounds>,
    content=0x7161704f <Address 0x7161704f out of bounds>) at tree.c:2271
#2  0x0806798c in xmlNewChild (parent=0x81541d0, ns=0x0, name=0x6 <Address 0x6 
out of bounds>,
    content=0x7161704f <Address 0x7161704f out of bounds>) at tree.c:2843
#3  0x40030f8f in add_value (parent=0x8154180, type=0x4005c28c "string", 
value=0x7161704f <Address 0x7161704f out of bounds>)
    at src/xen_common.c:1673
#4  0x40030f32 in add_param (params_node=0x814d390, type=0x4005c28c "string", 
value=0x7161704f <Address 0x7161704f out of bounds>)
    at src/xen_common.c:1660
#5  0x400305ed in make_body_add_type (typename=STRING, v=0x814d32c, 
params_node=0x814d390) at src/xen_common.c:1328
#6  0x40030a23 in make_body (method_name=0x40061cbc "VM.get_record", 
params=0x814d320, param_count=2) at src/xen_common.c:1459
#7  0x4002efa7 in call_raw (s=0x8148630, method_name=0x40061cbc 
"VM.get_record", params=0x814d320, param_count=2, result_type=0xbfffeec0,
    value=0xbfffef4c) at src/xen_common.c:538
#8  0x4002ef21 in xen_call_ (s=0x8148630, method_name=0x40061cbc 
"VM.get_record", params=0xbfffeef0, param_count=1, result_type=0xbfffeec0,
    value=0xbfffef4c) at src/xen_common.c:518
#9  0x40053b6b in xen_vm_get_record (session=0x8148630, result=0xbfffef4c, 
vm=0x7161704f) at src/xen_vm.c:311
#10 0x0804aaaf in main ()
#11 0x401824c2 in __libc_start_main () from /lib/i686/libc.so.6
(gdb)



</execution trace>


_______________________________________________
xen-api mailing list
xen-api@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/mailman/listinfo/xen-api


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.