VirtualBox

Changes between Initial Version and Version 1 of Ticket #3156


Ignore:
Timestamp:
Jan 26, 2009 8:06:45 AM (15 years ago)
Author:
Frank Mehnert
Comment:

Legend:

Unmodified
Added
Removed
Modified
  • Ticket #3156 – Description

    initial v1  
    44
    55To reproduce:
    6 1. create at least 10 machines by cloning the same VDI file and creating the same settings.
    7 2. start machines in ascending order (by order of creation)
    8 3. shutdown machine by machine in descending order. Check if shutting down one machine may cause changing state of other (running) machines.
     6 1. create at least 10 machines by cloning the same VDI file and creating the same settings.
     7 2. start machines in ascending order (by order of creation)
     8 3. shutdown machine by machine in descending order. Check if shutting down one machine may cause changing state of other (running) machines.
    99
    1010For instance, powering off machine number 8 may cause changing state of machine number 5 to "Aborted". The pairs of conflicting machines remain the same each start you start/stop machines.
    1111If you discovered the conflicting pair you may reproduce the bug by starting and shutting down just these 2 machines (but keep the order).
    1212
    13 Playing around with the bug showed that the problem is connected to machine UUIDs and sempahores used for syncronization of VirtualBox process and VBoxSVC (see details below). Therefore, just by changing UUID of one of conflicting machines the problem seems to disappear. But at the same time when UUID is changed there might appear another conflict with other machine in the set.
     13Playing around with the bug showed that the problem is connected to machine UUIDs and semaphores used for synchronization of the !VirtualBox process and VBoxSVC (see details below). Therefore, just by changing UUID of one of conflicting machines the problem seems to disappear. But at the same time when UUID is changed there might appear another conflict with other machine in the set.
    1414
    1515Looks like there is some semaphore which id is generated basing on machines UUID. The hashing function for creating semaphore id seems to be the key problem. I believe it is inside VBoxSVC module but haven't found yet.
    1616
    17 =========
    18 Example:
    19  I started machine N5, then started machine N8. Powered off machine N8 and machine N5 got into 'Aborted' state same moment. VirtualBox window for machine N8 disappeared but the process was still running in the background.
     17'''Example:'''
     18 I started machine N5, then started machine N8. Powered off machine N8 and machine N5 got into 'Aborted' state same moment. The !VirtualBox window for machine N8 disappeared but the process was still running in the background.
    2019
    21  I have attached to VirtualBox process for machine N8 with gdb and checked the stack backtrace. You may see it in the attachment. There is a reference to a sourcecode: src/VBox/Main/SessionImpl.cpp (line 860).
    22 Seems like machine N8 got stuck at this point: progress->WaitForCompletion (-1);
     20I have attached to the !VirtualBox process for machine N8 with gdb and checked the stack backtrace. You may see it in the attachment. There is a reference to a sourcecode: src/VBox/Main/SessionImpl.cpp (line 860).
     21Seems like machine N8 got stuck at this point:
     22{{{
     23progress->WaitForCompletion (-1);
     24}}}
    2325
    2426I hope this helps!

© 2023 Oracle
ContactPrivacy policyTerms of Use