[libvirt-users] is libvirt java binding thread safe?

Ravi Pawar ravifc at gmail.com
Fri Sep 3 10:23:51 UTC 2010


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 at googlemail.com> 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 TestMultiThreadingLibvirtWithE**rror.run(**
> TestMultiThreadingLibvirtWithE**rror.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 TestMultiThreadingLibvirtWithE**rror.run(**
> TestMultiThreadingLibvirtWithE**rror.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 at gmail.com>:
> > 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 at googlemail.com> wrote:
> >>
> >> 2010/9/2 Ravi Pawar <ravifc at gmail.com>:
> >> > 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
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://listman.redhat.com/archives/libvirt-users/attachments/20100903/678a0d37/attachment.htm>


More information about the libvirt-users mailing list