VirtualBox

Opened 9 years ago

Closed 4 years ago

#14012 closed defect (obsolete)

After upgrade to 4.3.26 exception is raised if create second instance of VirtualBoxManager

Reported by: odlbo314 Owned by:
Component: VM control Version: VirtualBox 4.3.26
Keywords: Cc:
Guest type: Windows Host type: Linux

Description

Hello! After upgrade from virtualbox 4.3.20 to 4.3.26 my code generates errors.

Small example to reproduce error:

#!/usr/bin/env python
from vboxapi import VirtualBoxManager

VirtualBoxManager(None, None)
VirtualBoxManager(None, None)

Output of the script:

init exception:  'NoneType' object has no attribute '__getitem__'
Traceback (most recent call last):
  File "/usr/lib/python2.7/dist-packages/vboxapi/__init__.py", line 981, in __init__
    self.vbox = self.platform.getVirtualBox()
  File "/usr/lib/python2.7/dist-packages/vboxapi/__init__.py", line 735, in getVirtualBox
    return xpcom.components.classes["@virtualbox.org/VirtualBox;1"].createInstance()
TypeError: 'NoneType' object has no attribute '__getitem__'
Traceback (most recent call last):
  File "./test_script.py", line 5, in <module>
    VirtualBoxManager(None, None)
  File "/usr/lib/python2.7/dist-packages/vboxapi/__init__.py", line 992, in __init__
    raise e
TypeError: 'NoneType' object has no attribute '__getitem__'

Also this exception is raised if create instances of VirtualBoxManager in different Python threads.

Seems this error occurs because method "observe" of class "_ShutdownObserver" from module "xpcom.components" executes and set variable global xpcom.components.classes to None.

Change History (2)

comment:1 by odlbo314, 9 years ago

Hello again! I've recognized following workaround. Seems scripts using python API for virtualbox work normally if I share one copy of VirtualBoxManager between threads.

Btw... Is it normal solution?

Last edited 9 years ago by odlbo314 (previous) (diff)

comment:2 by aeichner, 4 years ago

Resolution: obsolete
Status: newclosed
Note: See TracTickets for help on using tickets.

© 2023 Oracle
ContactPrivacy policyTerms of Use