<div dir="ltr">I have tried the same tests using the "test" driver, and that works perfectly; no errors seen.<div><br clear="all"><div><div dir="ltr" class="gmail_signature" data-smartmail="gmail_signature"><div dir="ltr"><div><div>Thanks & Regards<br>Sachin Soman<br><br></div>
<div> </div></div></div></div></div><br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Thu, Apr 18, 2019 at 11:03 PM Daniel P. Berrangé <<a href="mailto:berrange@redhat.com">berrange@redhat.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">On Thu, Apr 18, 2019 at 10:46:19PM +0530, Sachin Soman wrote:<br>
> I am attaching the execution results. At the top of each file I have<br>
> mentioned the environment details.<br>
> <br>
> Following is the test program I have used:<br>
> <br>
> ==================================================<br>
> <br>
> *package* org.libvirt;<br>
> <br>
> <br>
> *import* org.libvirt.jna.Libvirt;<br>
> <br>
> <br>
> *public* *class* LibvirtCrashTest {<br>
> <br>
> *void* createAndDestroyDefaultAuthConnection() {<br>
> <br>
> ConnectAuth ca = *new* ConnectAuthDefault();<br>
> <br>
> *try* {<br>
> <br>
> System.*out*.println("Starting new connection with default auth");<br>
> <br>
> Connect connect = *new* Connect("esx://x.x.x.x/?no_verify=1", ca, 0);<br>
<br>
It could be interesting to try different libvirt drivers.<br>
<br>
eg "test:///default"<br>
<br>
this could help identify if its a bug in libvirt common code<br>
vs a bug in only the ESX driver code.<br>
<br>
> <br>
> Thread.*sleep*(1000);<br>
> <br>
> System.*out*.println("Explicit connection closure");<br>
> <br>
> connect.close();<br>
> <br>
> Thread.*sleep*(5000);<br>
> <br>
> } *catch* (Exception e) {<br>
> <br>
> e.printStackTrace();<br>
> <br>
> }<br>
> <br>
> }<br>
> <br>
> <br>
> *public* *static* *void* main(String[] args) *throws* Exception {<br>
> <br>
> LibvirtCrashTest testInstance = *new* LibvirtCrashTest();<br>
> <br>
> <br>
> *for*(*int* counter = 0; counter < 3; counter++) {<br>
> <br>
> testInstance.createAndDestroyDefaultAuthConnection();<br>
> <br>
> System.*out*.println("gc'ing");<br>
> <br>
> System.*gc*();<br>
> <br>
> System.*out*.println("gc'd");<br>
> <br>
> *int* tCounter = 0;<br>
> <br>
> *while*(tCounter++ < 20) {<br>
> <br>
> System.*out*.println("waiting.. " + tCounter);<br>
> <br>
> Thread.*sleep*(1000);<br>
> <br>
> }<br>
> <br>
> }<br>
> <br>
> System.*out*.println("Going down...");<br>
> <br>
> }<br>
> <br>
> <br>
> }<br>
> ==================================================<br>
> <br>
> <br>
> Thanks & Regards<br>
> Sachin Soman<br>
> <br>
> <br>
> <br>
> <br>
> On Thu, Apr 18, 2019 at 9:25 PM Daniel P. Berrangé <<a href="mailto:berrange@redhat.com" target="_blank">berrange@redhat.com</a>><br>
> wrote:<br>
> <br>
> > On Thu, Apr 18, 2019 at 05:51:06PM +0200, Michal Prívozník wrote:<br>
> > > On 4/17/19 10:24 AM, Sachin Soman wrote:<br>
> > > > Hi,<br>
> > > ><br>
> > > > Could you tell me if the following is some known issue?<br>
> > > ><br>
> > > > While performing the following simple test, I see my JVM crashing<br>
> > > > (consistently):<br>
> > > > 1. Open a connection to an ESXi driver/host (passing ConnectAuthDefault<br>
> > > > instance).<br>
> > > > 2. Close the connection.<br>
> > > > 3. Invoke GC<br>
> > > ><br>
> > > > When GC is triggered, at some point, some unallocated native memory is<br>
> > > > being tried to release. That's failing.<br>
> > > ><br>
> > > > The error thrown is:<br>
> > > ><br>
> > > > java(78745,0x70000241e000) malloc: *** error for object 0x7fd5df561390:<br>
> > > > pointer being freed was not allocated<br>
> > > ><br>
> > > > *** set a breakpoint in malloc_error_break to debug<br>
> > > ><br>
> > > ><br>
> > > > Frames from core dump:<br>
> > > ><br>
> > > >     frame #0: 0x00007fff5b274b66 libsystem_kernel.dylib`__pthread_kill<br>
> > + 10<br>
> > > ><br>
> > > >     frame #1: 0x00007fff5b43f080 libsystem_pthread.dylib`pthread_kill<br>
> > + 333<br>
> > > ><br>
> > > >     frame #2: 0x00007fff5b1d01ae libsystem_c.dylib`abort + 127<br>
> > > ><br>
> > > >     frame #3: 0x00007fff5b2ce8a6 libsystem_malloc.dylib`free + 521<br>
> > > ><br>
> > > >     frame #4: 0x00000001127f43a7<br>
> > > ><br>
> > > >     frame #5: 0x00000001127e3ffd<br>
> > > ><br>
> > > >     frame #6: 0x00000001127e3ffd<br>
> > > ><br>
> > > >     frame #7: 0x00000001127e3ffd<br>
> > > ><br>
> > > >     frame #8: 0x00000001127e3ffd<br>
> > > ><br>
> > > >     frame #9: 0x00000001127e4042<br>
> > > ><br>
> > > >     frame #10: 0x00000001127e3ffd<br>
> > > ><br>
> > > >     frame #11: 0x00000001127e3ffd<br>
> > > ><br>
> > > >     frame #12: 0x00000001127dc4e7<br>
> > > ><br>
> > > >     frame #13: 0x000000010c0e235e<br>
> > > > libjvm.dylib`JavaCalls::call_helper(JavaValue*, methodHandle*,<br>
> > > > JavaCallArguments*, Thread*) + 1710<br>
> > > ><br>
> > > >     frame #14: 0x000000010c0e2b02<br>
> > > > libjvm.dylib`JavaCalls::call_virtual(JavaValue*, KlassHandle, Symbol*,<br>
> > > > Symbol*, JavaCallArguments*, Thread*) + 356<br>
> > > ><br>
> > > >     frame #15: 0x000000010c0e2cae<br>
> > > > libjvm.dylib`JavaCalls::call_virtual(JavaValue*, Handle, KlassHandle,<br>
> > > > Symbol*, Symbol*, Thread*) + 74<br>
> > > ><br>
> > > >     frame #16: 0x000000010c1208ee<br>
> > libjvm.dylib`thread_entry(JavaThread*,<br>
> > > > Thread*) + 124<br>
> > > ><br>
> > > >     frame #17: 0x000000010c33e84d<br>
> > > > libjvm.dylib`JavaThread::thread_main_inner() + 155<br>
> > > ><br>
> > > >     frame #18: 0x000000010c33ff12 libjvm.dylib`JavaThread::run() + 448<br>
> > > ><br>
> > > >     frame #19: 0x000000010c26058a libjvm.dylib`java_start(Thread*) +<br>
> > 246<br>
> > > ><br>
> > > >     frame #20: 0x00007fff5b43c661<br>
> > libsystem_pthread.dylib`_pthread_body +<br>
> > > > 340<br>
> > > ><br>
> > > >     frame #21: 0x00007fff5b43c50d<br>
> > libsystem_pthread.dylib`_pthread_start +<br>
> > > > 377<br>
> > > ><br>
> > > >     frame #22: 0x00007fff5b43bbf9 libsystem_pthread.dylib`thread_start<br>
> > + 13<br>
> > > ><br>
> > > ><br>
> > > > I have installed Libvirt 5.2.0.<br>
> > > > Java bindings libvirt-java 0.5.1<br>
> > > > JNA 4.0.0<br>
> > > > Tested Java environments: Oracle Java 8 and OpenJDK 8 on MAC, OpenJDK<br>
> > 11 on<br>
> > > > Ubuntu 16<br>
> > ><br>
> > > The backtrace does not suggest it's libvirt related, but I wouldn't be<br>
> > > surprised if our Java bindings mangled memory somewhere. They are<br>
> > > heavily unmaintained.<br>
> ><br>
> > It could just as easily be a memory corruption bug in the ESX libvirt<br>
> > driver, since that runs directly in the applicatin process as it is a<br>
> > stateless client side driver.<br>
> ><br>
> > We would probably need to have an small demo program that can reproduce<br>
> > the problem in an isolated fashion, in order to try to debug it, along<br>
> > with full libvirt debug logs.<br>
> ><br>
> ><br>
> > Regards,<br>
> > Daniel<br>
> > --<br>
> > |: <a href="https://berrange.com" rel="noreferrer" target="_blank">https://berrange.com</a>      -o-<br>
> > <a href="https://www.flickr.com/photos/dberrange" rel="noreferrer" target="_blank">https://www.flickr.com/photos/dberrange</a> :|<br>
> > |: <a href="https://libvirt.org" rel="noreferrer" target="_blank">https://libvirt.org</a>         -o-<br>
> > <a href="https://fstop138.berrange.com" rel="noreferrer" target="_blank">https://fstop138.berrange.com</a> :|<br>
> > |: <a href="https://entangle-photo.org" rel="noreferrer" target="_blank">https://entangle-photo.org</a>    -o-<br>
> > <a href="https://www.instagram.com/dberrange" rel="noreferrer" target="_blank">https://www.instagram.com/dberrange</a> :|<br>
> ><br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
Regards,<br>
Daniel<br>
-- <br>
|: <a href="https://berrange.com" rel="noreferrer" target="_blank">https://berrange.com</a>      -o-    <a href="https://www.flickr.com/photos/dberrange" rel="noreferrer" target="_blank">https://www.flickr.com/photos/dberrange</a> :|<br>
|: <a href="https://libvirt.org" rel="noreferrer" target="_blank">https://libvirt.org</a>         -o-            <a href="https://fstop138.berrange.com" rel="noreferrer" target="_blank">https://fstop138.berrange.com</a> :|<br>
|: <a href="https://entangle-photo.org" rel="noreferrer" target="_blank">https://entangle-photo.org</a>    -o-    <a href="https://www.instagram.com/dberrange" rel="noreferrer" target="_blank">https://www.instagram.com/dberrange</a> :|<br>
</blockquote></div>