* libxenserver : xen_vm_get_record() fails with SIGSEGV
@ 2009-12-29 8:50 Sane, Abhijeet
2009-12-29 10:58 ` Goncalo Gomes
0 siblings, 1 reply; 2+ messages in thread
From: Sane, Abhijeet @ 2009-12-29 8:50 UTC (permalink / raw)
To: xen-devel@lists.xensource.com
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>
^ permalink raw reply [flat|nested] 2+ messages in thread* Re: libxenserver : xen_vm_get_record() fails with SIGSEGV
2009-12-29 8:50 libxenserver : xen_vm_get_record() fails with SIGSEGV Sane, Abhijeet
@ 2009-12-29 10:58 ` Goncalo Gomes
0 siblings, 0 replies; 2+ messages in thread
From: Goncalo Gomes @ 2009-12-29 10:58 UTC (permalink / raw)
To: Sane, Abhijeet; +Cc: xen-devel@lists.xensource.com
Hi,
Sane, Abhijeet wrote:
> 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]));
>
You don't want to dereference that pointer, so just remove the *.
Goncalo.
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2009-12-29 10:58 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-12-29 8:50 libxenserver : xen_vm_get_record() fails with SIGSEGV Sane, Abhijeet
2009-12-29 10:58 ` Goncalo Gomes
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.