Parallels / docker-machine-parallels

Parallels driver for Docker Machine https://github.com/docker/machine
MIT License
471 stars 35 forks source link

Parallels 13.0 issue #67

Closed thenoid closed 7 years ago

thenoid commented 7 years ago

VM never starts.

> docker-machine -D create --driver=parallels prl-dev
Docker Machine Version:  0.12.2, build 9371605
Found binary path at /usr/local/bin/docker-machine-driver-parallels
Launching plugin server for driver parallels
Plugin server listening at address 127.0.0.1:58803
() Calling .GetVersion
Using API Version  1
() Calling .SetConfigRaw
() Calling .GetMachineName
(flag-lookup) Calling .GetMachineName
(flag-lookup) Calling .DriverName
(flag-lookup) Calling .GetCreateFlags
Found binary path at /usr/local/bin/docker-machine-driver-parallels
Launching plugin server for driver parallels
Plugin server listening at address 127.0.0.1:58807
() Calling .GetVersion
Using API Version  1
() Calling .SetConfigRaw
() Calling .GetMachineName
(prl-dev) Calling .GetMachineName
(prl-dev) Calling .DriverName
(prl-dev) Calling .GetCreateFlags
(prl-dev) Calling .SetConfigFromFlags
Running pre-create checks...
(prl-dev) Calling .PreCreateCheck
(prl-dev) DBG | executing: /usr/local/bin/prlctl --version
(prl-dev) DBG | executing: /usr/local/bin/prlsrvctl info --license
(prl-dev) DBG | Found Parallels Desktop version: 13, edition: business
(prl-dev) DBG | executing: /usr/local/bin/prlsrvctl net info Shared
(prl-dev) DBG | local Boot2Docker ISO version:  v17.06.1-ce
(prl-dev) Calling .GetConfigRaw
Creating machine...
(prl-dev) Calling .Create
(prl-dev) DBG | local Boot2Docker ISO version:  v17.06.1-ce
(prl-dev) Copying /Users/rolsen/.docker/machine/cache/boot2docker.iso to /Users/rolsen/.docker/machine/machines/prl-dev/boot2docker.iso...
(prl-dev) Creating SSH key...
(prl-dev) DBG | SSH key: /Users/rolsen/.docker/machine/machines/prl-dev/id_rsa
(prl-dev) Creating Parallels Desktop VM...
(prl-dev) DBG | executing: /usr/local/bin/prlctl --version
(prl-dev) DBG | executing: /usr/local/bin/prlctl create prl-dev --distribution boot2docker --dst /Users/rolsen/.docker/machine/machines/prl-dev --no-hdd
(prl-dev) DBG | executing: /usr/local/bin/prlctl set prl-dev --select-boot-device off --cpus 4 --memsize 4096 --cpu-hotplug off --on-window-close keep-running --longer-battery-life on --3d-accelerate off --device-bootorder cdrom0
(prl-dev) DBG | executing: /usr/local/bin/prlctl set prl-dev --device-set cdrom0 --iface sata --position 0 --image /Users/rolsen/.docker/machine/machines/prl-dev/boot2docker.iso --connect
(prl-dev) DBG | executing: /usr/local/bin/prlctl set prl-dev --device-add hdd --iface sata --position 1 --image /Users/rolsen/.docker/machine/machines/prl-dev/disk.hdd --type plain --size 32
(prl-dev) DBG | Writing magic tar header
(prl-dev) DBG | Writing SSH key tar header
(prl-dev) DBG | HDS image path: /Users/rolsen/.docker/machine/machines/prl-dev/disk.hdd/disk.hdd.0.{5fbaabe3-6958-40ff-92a7-860e329aab41}.hds
(prl-dev) DBG | executing: /usr/local/bin/prl_disk_tool convert --expanding --hdd /Users/rolsen/.docker/machine/machines/prl-dev/disk.hdd
Error creating machine: Error in driver during machine creation: exit status 2
notifying bugsnag: [Error creating machine: Error in driver during machine creation: exit status 2]
> /usr/local/bin/prl_disk_tool convert --expanding --hdd /Users/rolsen/.docker/machine/machines/prl-dev/disk.hdd
Unable to open the disk image.
> ls -la /Users/rolsen/.docker/machine/machines/prl-dev/disk.hdd
total 8
drwxr-xr-x 5 rolsen staff  170 Aug 29 11:12 .
drwx------ 8 rolsen staff  272 Aug 29 11:12 ..
-rw-r--r-- 1 rolsen staff 1600 Aug 29 11:12 DiskDescriptor.xml
-rw-r--r-- 1 rolsen staff 1600 Aug 29 11:12 DiskDescriptor.xml.Backup
-rw-rw-rw- 1 rolsen staff    0 Aug 29 11:12 disk.hdd
rickard-von-essen commented 7 years ago

What happens if you execute the same commands manually?

thenoid commented 7 years ago
mkdir -p /Users/rolsen/.docker/machine/machines/prl-dev/
> cp /Users/rolsen/.docker/machine/cache/boot2docker.iso /Users/rolsen/.docker/machine/machines/prl-dev/boot2docker.iso
> /usr/local/bin/prlctl create prl-dev --distribution boot2docker --dst /Users/rolsen/.docker/machine/machines/prl-dev --no-hdd
Creating the virtual machine...
Generate the VM configuration for boot2docker.
Remove the hdd0 device.
The VM has been successfully created.
> /usr/local/bin/prlctl set prl-dev --select-boot-device off --cpus 4 --memsize 4096 --cpu-hotplug off --on-window-close keep-running --longer-battery-life on --3d-accelerate off --device-bootorder cdrom0
set cpus(8): 4
set cpu hotplug: 0
Set the memsize parameter to 4096Mb.
Set 3d acceleration: 0.

The VM has been successfully configured.
> /usr/local/bin/prlctl set prl-dev --device-set cdrom0 --iface sata --position 0 --image /Users/rolsen/.docker/machine/machines/prl-dev/boot2docker.iso --connect
Creating cdrom0 (+) sata:0 image='/Users/rolsen/.docker/machine/machines/prl-dev/boot2docker.iso'

Configured cdrom0 (+) sata:0 image='/Users/rolsen/.docker/machine/machines/prl-dev/boot2docker.iso'

The VM has been successfully configured.
> /usr/local/bin/prlctl set prl-dev --device-add hdd --iface sata --position 1 --image /Users/rolsen/.docker/machine/machines/prl-dev/disk.hdd --type plain --size 32
The folder /Users/rolsen/.docker/machine/machines/prl-dev/disk.hdd does not exist. Specify another folder and try again.
Creating hdd0 (+) sata:1 image='/Users/rolsen/.docker/machine/machines/prl-dev/disk.hdd' type='plain' 32Mb online compact=off

Created hdd0 (+) sata:1 image='/Users/rolsen/.docker/machine/machines/prl-dev/disk.hdd' type='plain' 32Mb online compact=on

The VM has been successfully configured.
> /usr/local/bin/prl_disk_tool convert --expanding --hdd /Users/rolsen/.docker/machine/machines/prl-dev/disk.hdd

An error occurred during the operation: PRL_ERR_DISK_CREATE_IMAGE_ERROR (0x80021016)

but i don't know if that error is caused by my not running whatever magic this does

(prl-dev) DBG | Writing magic tar header
(prl-dev) DBG | Writing SSH key tar header
ryansch commented 7 years ago

I just ran into this as well. I can't provision a docker VM at all on parallels desktop 13.

Exact same failure mode with /usr/local/bin/prl_disk_tool convert --expanding --hdd /Users/ryansch/.docker/machine/machines/default/disk.hdd

rickard-von-essen commented 7 years ago

I can confirm this.

TomKeur commented 7 years ago

Some problem over here:

docker-machine create --driver=parallels --parallels-memory 4096 --parallels-cpu-count 4 --parallels-disk-size 20480 default

(default) DBG | HDS image path: /Users/tomkeur/.docker/machine/machines/default/disk.hdd/disk.hdd.0.{5fbaabe3-6958-40ff-92a7-860e329aab41}.hds
(default) DBG | executing: /usr/local/bin/prl_disk_tool convert --expanding --hdd /Users/tomkeur/.docker/machine/machines/default/disk.hdd
Error creating machine: Error in driver during machine creation: exit status 2
notifying bugsnag: [Error creating machine: Error in driver during machine creation: exit status 2]

When I'm running: /usr/local/bin/prl_disk_tool convert --expanding --hdd /Users/tomkeur/.docker/machine/machines/default/disk.hdd

I'm getting the following error:

Unable to open the disk image.

rickard-von-essen commented 7 years ago

This sequence of commands doesn't seem to work anymore:

prlctl set <vm> --device-add hdd --iface sata --position 1 --image ~/disk.hdd --type plain --size 32
prl_disk_tool convert --expanding --hdd ~/disk.hdd

@legal90 any insight?

bradbirnbaum commented 7 years ago

I have the same issue. Had to downgrade to Parallels 12

legal90 commented 7 years ago

Hi all, Yeah, I can confirm that as well. It looks like the conversion of the disk image from plain to expanding is broken in Parallels Desktop 13. Since I don't work at Parallels any longer, I don't have insights there anymore. So, I hope that @romankulikov could help us. The details are below.

Reproduction Scenario

  1. Create an empty machine:

    prlctl create test-vm --distribution boot2docker --no-hdd
  2. Attach a plain disk to it:

    prlctl set test-vm --device-add hdd --iface sata --image ~/disk.hdd --type plain --size 32
  3. Convert the disk image to expanding:

    
    prl_disk_tool convert --expanding --hdd ~/disk.hdd

An error occurred during the operation: PRL_ERR_DISK_CREATE_IMAGE_ERROR (0x80021016)


After some investigation I've found that the latter command actually breaks the disk image. Just compare the disk dir content _before_ running it:

$ ls -la /Users/legal/disk.hdd/* -rw-r--r-- 1 legal staff 1369 Aug 31 15:44 /Users/legal/disk.hdd/DiskDescriptor.xml -rw-r--r-- 1 legal staff 1326 Aug 31 15:44 /Users/legal/disk.hdd/DiskDescriptor.xml.Backup -rw-rw-rw- 1 legal staff 0 Aug 31 15:44 /Users/legal/disk.hdd/disk.hdd -rw-r--r-- 1 legal staff 33554432 Aug 31 15:44 /Users/legal/disk.hdd/disk.hdd.0.{5fbaabe3-6958-40ff-92a7-860e329aab41}.hds

...with how it looks _after_ running `prl_disk_tool convert --expanding <...>`:

$ ls -la /Users/legal/disk.hdd/* -rw-r--r-- 1 legal staff 1600 Aug 31 15:46 /Users/legal/disk.hdd/DiskDescriptor.xml -rw-r--r-- 1 legal staff 1565 Aug 31 15:46 /Users/legal/disk.hdd/DiskDescriptor.xml.Backup -rw-rw-rw- 1 legal staff 0 Aug 31 15:44 /Users/legal/disk.hdd/disk.hdd


## Logs
That's what we have in the `/Library/Logs/parallels.log`: 

08-31 15:46:38.916 I /imagetool:87191:775/ IL000000.00 '/Users/legal/disk.hdd' 08-31 15:46:38.952 I /imagetool:87191:775/ IL000000.01 08-31 15:46:38.952 I /imagetool:87191:775/ IL000022.00 08-31 15:46:38.952 I /imagetool:87191:775/ IL000022.01 08-31 15:46:38.952 I /imagetool:87191:775/ IL000010.00 08-31 15:46:38.952 W /imagetool:87191:775/ Failed to get shutdown state 08-31 15:46:38.953 W /imagetool:87191:775/ Failed to get disk change state 08-31 15:46:38.956 W /imagetool:87191:775/ MBR not found, assume whole disk is empty 08-31 15:46:38.956 W /imagetool:87191:775/ Unable to reopen disk image. Disk can't be compacted. 0x80046001 08-31 15:46:38.956 I /imagetool:87191:775/ Image info: [Image: /Users/legal/disk.hdd] [Type: 1] [Size 32 MB (65536 sectors)] [Sector size 512] [Splitted: NO] [Suspended: NO] [ShutDown state: 0] [Changed state: NO] [Old: NO] [Snaphots: 1] [Compactable: NO] [Content resizable: YES] [Encrypted: NO] 08-31 15:46:38.957 I /imagetool:87191:775/ IL000010.01 08-31 15:46:38.957 I /imagetool:87191:775/ IL000002.00 0 1 08-31 15:46:38.957 I /imagetool:87191:775/ IL000002.01 08-31 15:46:38.957 I /imagetool:87191:775/ IL000005.00 Commit changes... 08-31 15:46:38.957 I /imagetool:87191:775/ IL000004.00 08-31 15:46:38.957 I /imagetool:87191:775/ IL000016.00 08-31 15:46:38.957 I /imagetool:87191:775/ IL000017.00 08-31 15:46:38.957 I /imagetool:87191:775/ IL000017.01 08-31 15:46:38.957 I /imagetool:87191:775/ IL000016.01 08-31 15:46:38.957 I /imagetool:87191:775/ IL000027.00 08-31 15:46:38.957 I /imagetool:87191:775/ IL000027.01 08-31 15:46:38.973 F /AbstractFile:87191:775/ open64() error: 17, flags = 0x2, disp = 0x1000A00 08-31 15:46:38.973 F /AbstractFile:87191:775/ [0x7fca5552d7b0]OpenHandle: Error opening file /Users/legal/disk.hdd/disk.hdd.0.{5fbaabe3-6958-40ff-92a7-860e329aab41}.hds with error 17 in handle pool 08-31 15:46:38.973 F /AbstractFile:87191:775/ [0x7fca5552d7b0]OpenHandle: Access = 0x3, Share = 0x1, Disp = 0xA00, Add = 0x0 08-31 15:46:38.973 F /AbstractFile:87191:775/ HPWrap[0x7fca5552d7b0] --- Entry info --- 08-31 15:46:38.973 F /AbstractFile:87191:775/ HPWrap[0x7fca5552d7b0] handle (0x7fca5552d7c0): 08-31 15:46:38.973 F /AbstractFile:87191:775/ HandleDesc[0x7fca5552d7c0] Iface = 0x7fca5552f9d0 08-31 15:46:38.973 F /AbstractFile:87191:775/ HandleDesc[0x7fca5552d7c0] Name = /Users/legal/disk.hdd/disk.hdd.0.{5fbaabe3-6958-40ff-92a7-860e329aab41}.hds 08-31 15:46:38.973 F /AbstractFile:87191:775/ HandleDesc[0x7fca5552d7c0] Access = 0x3 08-31 15:46:38.973 F /AbstractFile:87191:775/ HandleDesc[0x7fca5552d7c0] Share disp = 0x1 08-31 15:46:38.973 F /AbstractFile:87191:775/ HandleDesc[0x7fca5552d7c0] Disposition = 0xA00 08-31 15:46:38.973 F /AbstractFile:87191:775/ HandleDesc[0x7fca5552d7c0] Block size = 0 08-31 15:46:38.973 F /AbstractFile:87191:775/ HandleDesc[0x7fca5552d7c0] References to ICommonFile = 0 08-31 15:46:38.973 F /AbstractFile:87191:775/ HandleDesc[0x7fca5552d7c0] RefGuard state = locked 08-31 15:46:38.973 F /AbstractFile:87191:775/ HPWrap[0x7fca5552d7b0] disk descriptor = 0x7fca5554ec10 08-31 15:46:38.973 F /AbstractFile:87191:775/ HPWrap[0x7fca5552d7b0] --- Pool info --- 08-31 15:46:38.973 F /AbstractFile:87191:775/ HPWrap[0x7fca5552d7b0] Maximum handles count = 1194 08-31 15:46:38.973 F /AbstractFile:87191:775/ HPWrap[0x7fca5552d7b0] Opened disks count = 2 08-31 15:46:38.973 F /AbstractFile:87191:775/ HPWrap[0x7fca5552d7b0] Currently opened handles = 1 08-31 15:46:38.974 F /AbstractFile:87191:775/ HPWrap[0x7fca5552d7b0] Disk descriptors [2]: 08-31 15:46:38.974 F /AbstractFile:87191:775/ DiskEnt[0x7fca55419370] Disk Id = 0x1 08-31 15:46:38.974 F /AbstractFile:87191:775/ DiskEnt[0x7fca55419370] Opened handles count = 1 08-31 15:46:38.974 F /AbstractFile:87191:775/ DiskEnt[0x7fca55419370] All handles count = 1 08-31 15:46:38.974 F /AbstractFile:87191:775/ DiskEnt[0x7fca55419370] HandleListGuard state = unlocked 08-31 15:46:38.974 F /AbstractFile:87191:775/ DiskEnt[0x7fca55419370] Handle descriptors: 08-31 15:46:38.974 F /AbstractFile:87191:775/ HandleDesc[0x7fca55416ca0] Iface = 0x7fca5541aa40 08-31 15:46:38.974 F /AbstractFile:87191:775/ HandleDesc[0x7fca55416ca0] Name = /Users/legal/disk.hdd/disk.hdd.0.{5fbaabe3-6958-40ff-92a7-860e329aab41}.hds 08-31 15:46:38.974 F /AbstractFile:87191:775/ HandleDesc[0x7fca55416ca0] Access = 0x3 08-31 15:46:38.974 F /AbstractFile:87191:775/ HandleDesc[0x7fca55416ca0] Share disp = 0x1 08-31 15:46:38.974 F /AbstractFile:87191:775/ HandleDesc[0x7fca55416ca0] Disposition = 0x0 08-31 15:46:38.974 F /AbstractFile:87191:775/ HandleDesc[0x7fca55416ca0] Block size = 0 08-31 15:46:38.974 F /AbstractFile:87191:775/ HandleDesc[0x7fca55416ca0] References to ICommonFile = 0 08-31 15:46:38.974 F /AbstractFile:87191:775/ HandleDesc[0x7fca55416ca0] RefGuard state = unlocked 08-31 15:46:38.974 F /AbstractFile:87191:775/ DiskEnt[0x7fca55419370] --- Has 1 handle descriptors 08-31 15:46:38.974 F /AbstractFile:87191:775/ DiskEnt[0x7fca5554ec10] Disk Id = 0x2 08-31 15:46:38.974 F /AbstractFile:87191:775/ DiskEnt[0x7fca5554ec10] Opened handles count = 0 08-31 15:46:38.974 F /AbstractFile:87191:775/ DiskEnt[0x7fca5554ec10] All handles count = 1 08-31 15:46:38.974 F /AbstractFile:87191:775/ DiskEnt[0x7fca5554ec10] HandleListGuard state = unlocked 08-31 15:46:38.974 F /AbstractFile:87191:775/ DiskEnt[0x7fca5554ec10] Handle descriptors: 08-31 15:46:38.974 F /AbstractFile:87191:775/ DiskEnt[0x7fca5554ec10] --- No handle descriptors 08-31 15:46:38.974 F /dimg:87191:775/ CreateFile(/Users/legal/disk.hdd/disk.hdd.0.{5fbaabe3-6958-40ff-92a7-860e329aab41}.hds) failed!: 17 08-31 15:46:38.974 F /dimg:87191:775/ Init: Can't open file 0x80021012 08-31 15:46:38.974 F /dimg:87191:775/ CCompImage: 08-31 15:46:38.974 F /dimg:87191:775/ Compact parameter for callback: 0x0 08-31 15:46:38.974 F /dimg:87191:775/ CStructImage: 08-31 15:46:38.974 F /dimg:87191:775/ Is initialized: no 08-31 15:46:38.974 F /dimg:87191:775/ Maximum file size: 18446744073709551615 bytes 08-31 15:46:38.974 F /dimg:87191:775/ Last size for rollback: 0 bytes 08-31 15:46:38.974 F /dimg:87191:775/ Create: Error initializing for the /Users/legal/disk.hdd/disk.hdd.0.{5fbaabe3-6958-40ff-92a7-860e329aab41}.hds 08-31 15:46:38.974 F /dimg:87191:775/ Error 0x80021012 when creating the disk. Releasing image. 08-31 15:46:38.974 F /vdisk:87191:775/ Couldn't create image: /Users/legal/disk.hdd/disk.hdd.0.{5fbaabe3-6958-40ff-92a7-860e329aab41}.hds error 0x80021012 08-31 15:46:38.975 F /vdisk:87191:775/ Callback caught error 0x80021016 08-31 15:46:38.975 F /vdisk:87191:775/ Error creating disk /Users/legal/disk.hdd.copy [0x80021016] 08-31 15:46:38.975 I /imagetool:87191:775/ IL000005.04 -2147348458 08-31 15:46:38.975 F /prl_disk_tool:87191:775/ Failed to convert image, error 0x80021016 08-31 15:46:38.976 I /imagetool:87191:775/ IL000011.00 08-31 15:46:38.978 F /imagetool:87191:775/ Unable to remove directory '/Users/legal/disk.hdd.copy' 08-31 15:46:38.978 I /imagetool:87191:775/ IL000011.01

legal90 commented 7 years ago

Parallels Report ID: 208911121

romankulikov commented 7 years ago

No insights from me for now. Parallels Desktop 13 is broken here :-( So suggest not to update to it at the moment.

thenoid commented 7 years ago

Still broken with the latest update (Version 13.0.1 (42947)) fwiw.


(default) DBG | executing: /usr/local/bin/prl_disk_tool convert --expanding --hdd /Users/rolsen/.docker/machine/machines/default/disk.hdd
Error creating machine: Error in driver during machine creation: exit status 2
notifying bugsnag: [Error creating machine: Error in driver during machine creation: exit status 2]```
ryansch commented 7 years ago

I've opened an enterprise ticket against this issue.

TomKeur commented 7 years ago

Are you doing a release? Because the version is still at 1.2.3?

legal90 commented 7 years ago

@TomKeur Yes, I'm gonna build & release it today or tommorow.

TomKeur commented 7 years ago

Thanks!

legal90 commented 7 years ago

Done. v1.3.0 is released: https://github.com/Parallels/docker-machine-parallels/releases/tag/v1.3.0