FYI
-------- Messaggio originale -------- Oggetto: Re: [libvirt] AttributeError in virConnect.__del__ at program exit Data: Thu, 13 Jun 2013 09:10:13 +0200 Mittente: Sandro Bonazzola <sbona...@redhat.com> A: Cole Robinson <crobi...@redhat.com> CC: libvir-l...@redhat.com Il 13/06/2013 08:54, Sandro Bonazzola ha scritto: > Il 12/06/2013 19:31, Cole Robinson ha scritto: >> On 06/12/2013 04:10 AM, Sandro Bonazzola wrote: >>> Il 11/06/2013 18:21, Cole Robinson ha scritto: >>>> On 06/11/2013 07:58 AM, Sandro Bonazzola wrote: >>>>> Hi, >>>>> using vdsm python code, I've the following error at program exit that >>>>> seems to be related to libvirt python code, something wrong in a >>>>> destructor: >>>>> >>>>> Exception AttributeError: AttributeError("virConnect instance has no >>>>> attribute 'domainEventCallbacks'",) in <bound method virConnect.__del__ >>>>> of <libvirt.virConnect instance at 0x4280f38>> ignored >>>>> >>>>> I'm using libvirt 1.0.6 >>>>> >>>>> Is it a known issue? Is there any workaround / fix ? >>>>> >>>> I've seen this too, sometimes via the virtinst test suite. Once upon a >>>> time I >>>> tracked it down to whether the virtinst code did 'import selinux' or not, >>>> so >>>> maybe it's a just some weird race, or a side effect of something other >>>> libraries do in their cleanup path. By inspection alone the __del__ handler >>>> doesn't seem to be doing anything wrong. >>>> >>>> - Cole >>> It seems related only to domainEventCallbacks so maybe it appears only >>> after a domain creation / modification. >>> >> Oh, sorry, now that I look at the code it makes a bit more sense. The error I >> was recalling was a __del__ Exception but wasn't involving domain events. >> >> But I still don't see why __del__ is complaining, since the whole thing is >> wrapped in try: ... except AttributeError. So not sure what the issue is. >> >> - Cole > > According to the python documentation, you can't handle exception in > __del__: > http://docs.python.org/2/reference/datamodel.html#object.__del__ > > Warning > > Due to the precarious circumstances under which __del__() > <http://docs.python.org/2/reference/datamodel.html#object.__del__> > methods are invoked, exceptions that occur during their execution are > ignored, and a warning is printed to sys.stderr instead. > > So you have to test the existence of the attribute before using it and > not try to use it and try to handle an exception that can't be handled. You can use hasattr for checking if the object has the needed attribute. > > > > > > > -- > libvir-list mailing list > libvir-l...@redhat.com > https://www.redhat.com/mailman/listinfo/libvir-list -- Sandro Bonazzola Better technology. Faster innovation. Powered by community collaboration. See how it works at redhat.com
-- libvir-list mailing list libvir-l...@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list
_______________________________________________ vdsm-devel mailing list vdsm-devel@lists.fedorahosted.org https://lists.fedorahosted.org/mailman/listinfo/vdsm-devel