Re: is libvirt java binding thread safe?

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

 




here is the stacktrace:


org.libvirt.LibvirtException: invalid argument in cannot pin vcpus on an inactive domain
        at org.libvirt.ErrorHandler.processError(Unknown Source)
        at org.libvirt.Connect.processError(Unknown Source)
        at org.libvirt.Connect.storagePoolLookupByName(Unknown Source)
        at TestMultiThreadingLibvirt.run(TestMultiThreadingLibvirt.java:25)
        at java.lang.Thread.run(Thread.java:619)
libvir: QEMU error : invalid argument in cannot pin vcpus on an inactive domain

from your stacktrace i could find out that you have printed the stacktrace in TestMultiThreadingLibvirtWithError  class. please do check the code i have pasted below for the second thread.


public class TestMultiThreadingLibvirtWithError implements Runnable
{
        Connect m_conn = null;
        public TestMultiThreadingLibvirtWithError(Connect conn)
        {
                m_conn = conn;

        }
        @Override
        public void run() {
              

                        try {
                                Domain d = m_conn.domainLookupByName("afzaltestmachine");
                                VcpuInfo[] vcpuInfo = d.getVcpusInfo();


                        }
                        catch (Exception e)
                        {
                           //we are explicitly eating up the exception here and we know Exception is going to occur here.

                        }


        }

}


please let me know if my you have more queries to my problem.

On Fri, Sep 3, 2010 at 2:37 PM, Matthias Bolte <matthias.bolte@xxxxxxxxxxxxxx> wrote:
Well, if the domain is not running then I get this exception with
libvirt 0.6.3 and libvirt-java 0.4.2:

org.libvirt.LibvirtException: invalid argument in cannot pin vcpus on
an inactive domain
       at org.libvirt.ErrorHandler.processError(Unknown Source)
       at org.libvirt.Connect.processError(Unknown Source)
       at org.libvirt.Domain.processError(Unknown Source)
       at org.libvirt.Domain.getVcpusInfo(Unknown Source)
       at TestMultiThreadingLibvirtWithError.run(TestMultiThreadingLibvirtWithError.java:20)
       at java.lang.Thread.run(Thread.java:636)

The error message is misleading and current git version gives this
exception when the domain is not running:

org.libvirt.LibvirtException: Requested operation is not valid: cannot
list vcpu pinning for an inactive domain
       at org.libvirt.ErrorHandler.processError(Unknown Source)
       at org.libvirt.Connect.processError(Unknown Source)
       at org.libvirt.Domain.processError(Unknown Source)
       at org.libvirt.Domain.getVcpusInfo(Unknown Source)
       at TestMultiThreadingLibvirtWithError.run(TestMultiThreadingLibvirtWithError.java:20)
       at java.lang.Thread.run(Thread.java:636)

And that's perfectly valid, as the complete vCPU information is only
available when the domain is running, therefore the exception is
expected when you call getVcpusInfo on a non-running domain. Also this
has nothing to do with thread-safety.

If this isn't the exception you're referring to, then please show a
stacktrace of the exception you're seeing.

Matthias

2010/9/3 Ravi Pawar <ravifc@xxxxxxxxx>:
> thank you for the reply and time you spend.
> your guest domain should not be running and then run my program without any
> change.you will see an exception where you dont expect it to occur.
> libvirt : 0.6.3 and libvirt-java: 0.4.2 i am using. Please let me know if i
> miss to provide you any other details.
>
>
> On Fri, Sep 3, 2010 at 3:29 AM, Matthias Bolte
> <matthias.bolte@xxxxxxxxxxxxxx> wrote:
>>
>> 2010/9/2 Ravi Pawar <ravifc@xxxxxxxxx>:
>> > please check the java file attached they throws the exception in case of
>> > passing.
>> > please let me know if i am missing something.
>> >
>>
>> Can you explain in more detail what one should do to reproduce the
>> problem you seem to see with the attached code? Also you didn't
>> mention which versions of libvirt and libvirt-java you're using.
>>
>> When I run you example code (with a guest name that exists in my setup
>> and libvirt and libvirt-java form current git head) I don't see any
>> exceptions. Even when I add e.printStackTrace() to the catch block of
>> TestMultiThreadingLibvirtWithError I don't see exceptions.
>>
>> $ java -classpath
>> ./target/libvirt-0.4.6.jar:./ravi:/usr/share/java/jna.jar Test
>> start class 0
>> start class 1
>> start class 2
>> start class 3
>> start class 4
>> start class 5
>> start class 6
>> start class 7
>> start class 8
>> start class 9
>>
>> So this works for me.
>>
>> Matthias
>
>
>
> --
> Thanks & Regards
>
> Ravi Pawar
>



--
Thanks & Regards

Ravi Pawar

[Index of Archives]     [Virt Tools]     [Lib OS Info]     [Fedora Users]     [Fedora Desktop]     [Fedora SELinux]     [Yosemite News]     [KDE Users]

  Powered by Linux