[libvirt] Java binding - JVM crashes .. sometimes
by Daniel Schwager
Hi,
since I updated to the new libvirt-version (CVS snapshot of today),
my JVM running my multi-thread application "sometimes" will crashes
if I open or close libvirt-connection (on KVM hypervisor).
I didn't find out the exact szenario - simple junit tests are running well.
But inside my main application (multi tread, multiple fast access to libvirt java interface)
will crash the JVM.
The crash-report looks like ALWAYS like the following 2 examples.
Is there a way to
- debug this
- make the JNI code more robust ?
- make the open/close of libvirt more robust ?
I think the JVM crashes, because the libvirt crashes. Is there a
way to look inside libvirt to see a "crash" of the native libvirt-prog ?
My application runs very well with the old version libvirt-0.4.5. I think,
problem starts with >= 0.5.
One more: Something, it happens, that a virsh -command on the commandline
prints out an error message similar to "Can't connect to hypervisor" (I can't
reproduce it at the moment). Multiple repeating the command works well.
This happens not often - but sometimes..
Now, the Stacktrace of the crashed JVM
** first
...
Instructions: (pc=0x0000000001206351)
0x0000000001206341: c0 48 83 c4 28 5b 41 5c 41 5d 41 5e 41 5f c9 c3
0x0000000001206351: 49 8b 3e e8 47 f7 fc ff 84 c0 74 18 48 8b 15 bc
Stack: [0x0000000002430000,0x0000000002531000], sp=0x000000000252f0d0, free space=1020k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
V [libjvm.so+0x34a351]
V [libjvm.so+0x325201]
Java frames: (J=compiled Java code, j=interpreted, Vv=VM code)
j org.libvirt.Connect._close(J)I+0
j org.libvirt.Connect.close()V+5
j org.libvirt.Connect.finalize()V+1
v ~StubRoutines::call_stub
j java.lang.ref.Finalizer.invokeFinalizeMethod(Ljava/lang/Object;)V+0
j java.lang.ref.Finalizer.runFinalizer()V+45
j java.lang.ref.Finalizer.access$100(Ljava/lang/ref/Finalizer;)V+1
j java.lang.ref.Finalizer$FinalizerThread.run()V+11
v ~StubRoutines::call_stub
...
** Second
...
Stack: [0x000000002a061000,0x000000002a162000], sp=0x000000002a15e050, free space=1012k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
V [libjvm.so+0x34a351]
V [libjvm.so+0x325201]
Java frames: (J=compiled Java code, j=interpreted, Vv=VM code)
j org.libvirt.Connect._open(Ljava/lang/String;)J+0
j org.libvirt.Connect.<init>(Ljava/lang/String;Z)V+23
j de.dtnet.virtcontroller.server.command.VDomain.open(Ljava/lang/String;)Lorg/libvirt/Connect;+74
...
Viele Gruesse
Daniel Schwager
-------------------------------------------------------------------
DT Netsolution GmbH - Taläckerstr. 30 - D-70437 Stuttgart
Geschäftsführer: Daniel Schwager, Stefan Hörz - HRB Stuttgart 19870
Tel: +49-711-849910-32, Fax: -932 - Mailto:daniel.schwager@dtnet.de
15 years, 9 months
[libvirt] A problem about libvir
by 刘刚
Hello, I have a problem for help. I use the libvir library 0.4.2 on
Xen 3.2.0, the host OS is Suse 10.2 . I start a windows domain (windows xp).
I use the function virDomainAttachDevice() to attach an iSCSI device to the
windows domain,but it failed. I can use this function to attach an iSCSI
device
to a linux domain. How can I attach an iSCSI device to a windows domain ?
or libvir doesn't support attach device to windows domain ?
thanks a lot!
MOBILE: 13622388220
HUAWEI TECHNOLOGIES CO.,LTD.
Address: Huawei Industrial Base
Bantian Longgang
Shenzhen 518129, P.R.China
E-mail: liugang8440265(a)huawei.com
www.huawei.com
15 years, 9 months
[libvirt] [PATCH] Initialize vm def monitor fd
by Cole Robinson
We weren't properly initializing the monitor fd value in the VM
definition structure. If qemu failed to start up, this could lead to
closing stdin, which made all sorts of poo hit the fan. The attached
patch fixes this.
Thanks,
Cole
15 years, 9 months
[libvirt] Bug in qemud/Makefile.in, compiling CVS-snapshot failed.
by Daniel Schwager
Hi,
i checked out the current CVS snapshot (20090217-1530GMT+1), but
compiling
failed:
sh autogen.sh
make rpm
....
make[4]: Leaving directory `/root/rpmbuild/BUILD/libvirt-0.6.99/src'
make[3]: Leaving directory `/root/rpmbuild/BUILD/libvirt-0.6.99/src'
Making all in qemud
make[3]: Entering directory `/root/rpmbuild/BUILD/libvirt-0.6.99/qemud'
Makefile:1284: *** missing separator. Stop.
make[3]: Leaving directory `/root/rpmbuild/BUILD/libvirt-0.6.99/qemud'
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory `/root/rpmbuild/BUILD/libvirt-0.6.99'
...
Please adapt the qemud/Makefile.in to use TAB instead of spaces in the
"remote_protocol.c: remote_protocol.h" make-target.
regards
Danny
15 years, 9 months
[libvirt] [PATCH 1/4] fix problem with MKDIR_P vs mkdir_p
by Maximilian Wilhelm
From: Matthias Bolte <photon(a)upb.de>
configure defines mkdir_p but src/Makefile.am uses MKDIR_P
---
src/Makefile.am | 2 ++
1 files changed, 2 insertions(+), 0 deletions(-)
diff --git a/src/Makefile.am b/src/Makefile.am
index 9d934b4..eff9039 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -589,6 +589,8 @@ endif
endif
EXTRA_DIST += $(LXC_CONTROLLER_SOURCES)
+MKDIR_P = $(mkdir_p)
+
install-exec-local:
$(MKDIR_P) "$(DESTDIR)$(localstatedir)/cache/libvirt"
$(MKDIR_P) "$(DESTDIR)$(localstatedir)/lib/libvirt/images"
--
1.5.6.5
15 years, 9 months
[libvirt] Network Configuration question
by Remko Nolten
Hi!
For a shared virtual hosting project with some friends we need a
pretty specialized network configuration. Because we have virtually no
time for experimenting (no pun intended), and the hosting organization
has no experience with libvirt/KVM configurations they suggested to
try and ask here.
So, this is the situation: We have a server with one physical
connection. Each user gets one virtual machine with its own IP-address
(we have our own ip-range). The hosting organization gives us one
"main" address 'A' with netmask 255.255.255.0 (/24) and a default
gateway for our host machine. Besides this we get a number of
addresses B1, B2, etc. with netmask 255.255.255.255 (/32) and without
a default gateway. The switch just routes the traffic to our server
for each ip-address we own (A and Bn).
According to our hosting organization, the normal solution is to
configure a loopback interface for each of the ip-addresses on the
server so you can configure your software just to use one of the
addresses. But we are not sure how this will work out in our virtual
environment. Our intuition tells us we need to use the routing network
forwarding mode, but when we bring the server to the data center we
don't want to have any surprises. :)
Here at home I don't have to possibility to create similar
circumstances as in the data center due to some restriction from my
ISP, so I hope someone can tell me if our intuition is correct or that
we need to use some other method.
Thanks in advance!
--
Remko Nolten
Tel: 06-45600767
E-mail: remko(a)nolten.nu
15 years, 9 months
[libvirt] [PATCH] Don't check volume format for lvm backing store
by Cole Robinson
With the recently added COW support, we were trying to validate the
passed logical volume's format, when there won't ever be one pulled from
the xml (logical volumes don't have any valid format values).
Just remove this check, and let any validation in this manner be done by
the actual call to 'lvcreate'.
Thanks,
Cole
15 years, 9 months