-
-
Notifications
You must be signed in to change notification settings - Fork 10.8k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
homebrew cask hangs when running install --force for parallels desktop #18638
Comments
Please always follow the reporting bugs guide. To do so, edit the top post and then comment after this one so I can check back. Closing in the meantime, because a number of people never report back and it’s useless to keep the issue open in that case and without all the required information. |
updated |
Unfortunately, unable to reproduce on a clean OSX :( It looks like the checksum gets verified OK, but the dmg unpacking and execution fails. It may not actually be hanging, but the install takes a while. It's not a great solution, but can you see if manually installing the .pkg works? |
Ran into this today, too. I wanted to do a System is a fresh MBP, setup about 2 weeks ago, and updated to El Capitan 10.11.5. Debug Output today: ✘ ~/Dropbox/Application Support/dotfiles/Update brew cask install parallels-desktop --force --debug
==> Creating directories
==> Loading Cask definitions
==> Translating 'parallels-desktop' into a valid Cask source
==> Testing source class Hbc::Source::URI
==> Testing source class Hbc::Source::PathSlashRequired
==> Testing source class Hbc::Source::TappedQualified
==> Testing source class Hbc::Source::UntappedQualified
==> Testing source class Hbc::Source::Tapped
==> Success! Using source class Hbc::Source::Tapped
==> Resolved Cask URI or file source to '/usr/local/Library/Taps/caskroom/homebrew-cask/Casks/parallels-desktop.rb'
==> Cask instance dumps in YAML:
==> Cask instance toplevel:
--- !ruby/object:Hbc::Cask
token: parallels-desktop
sourcefile_path: !ruby/object:Pathname
path: "/usr/local/Library/Taps/caskroom/homebrew-cask/Casks/parallels-desktop.rb"
dsl: !ruby/object:Hbc::DSL
token: parallels-desktop
version: !ruby/string:Hbc::DSL::Version
str: 11.2.0-32581
raw_version: 11.2.0-32581
sha256: af5891183faac0b3080ebc46f5c225b61f5df82e11fea267148b67a4ea8da57c
url: !ruby/object:Hbc::URL
uri: !ruby/object:URI::HTTP
scheme: http
user:
password:
host: download.parallels.com
port: 80
path: "/desktop/v11/11.2.0-32581/ParallelsDesktop-11.2.0-32581.dmg"
query:
opaque:
registry:
fragment:
parser:
user_agent:
cookies:
referer:
using:
revision:
trust_cert:
data:
name:
- Parallels Desktop
homepage: https://www.parallels.com/products/desktop/
license: !ruby/object:Hbc::DSL::License
value: :commercial
artifacts:
:app: !ruby/object:Set
hash:
? - Parallels Desktop.app
: true
:postflight: !ruby/object:Set
hash:
!ruby/object:Proc {}: true
:uninstall_preflight: !ruby/object:Set
hash:
!ruby/object:Proc {}: true
:uninstall: !ruby/object:Set
hash:
? :delete:
- "/usr/bin/prl_convert"
- "/usr/bin/prl_disk_tool"
- "/usr/bin/prl_perf_ctl"
- "/usr/bin/prlctl"
- "/usr/bin/prlsrvctl"
: true
:zap: !ruby/object:Set
hash:
? :delete:
- "~/.parallels_settings"
- "~/Library/Caches/com.parallels.desktop.console"
- "~/Library/Preferences/com.parallels.desktop.console.LSSharedFileList.plist"
- "~/Library/Preferences/com.parallels.desktop.console.plist"
- "~/Library/Preferences/com.parallels.Parallels Desktop Statistics.plist"
- "~/Library/Preferences/com.parallels.Parallels Desktop.plist"
- "~/Library/Preferences/com.parallels.Parallels.plist"
: true
==> Cask instance method 'name':
---
- Parallels Desktop
==> Cask instance method 'homepage':
--- https://www.parallels.com/products/desktop/
...
==> Cask instance method 'url':
--- !ruby/object:Hbc::URL
uri: !ruby/object:URI::HTTP
scheme: http
user:
password:
host: download.parallels.com
port: 80
path: "/desktop/v11/11.2.0-32581/ParallelsDesktop-11.2.0-32581.dmg"
query:
opaque:
registry:
fragment:
parser:
user_agent:
cookies:
referer:
using:
revision:
trust_cert:
data:
==> Cask instance method 'appcast':
---
...
==> Cask instance method 'version':
--- !ruby/string:Hbc::DSL::Version
str: 11.2.0-32581
raw_version: 11.2.0-32581
==> Cask instance method 'license':
--- !ruby/object:Hbc::DSL::License
value: :commercial
==> Cask instance method 'sha256':
--- af5891183faac0b3080ebc46f5c225b61f5df82e11fea267148b67a4ea8da57c
...
==> Cask instance method 'artifacts':
---
:app: !ruby/object:Set
hash:
? - Parallels Desktop.app
: true
:postflight: !ruby/object:Set
hash:
!ruby/object:Proc {}: true
:uninstall_preflight: !ruby/object:Set
hash:
!ruby/object:Proc {}: true
:uninstall: !ruby/object:Set
hash:
? :delete:
- "/usr/bin/prl_convert"
- "/usr/bin/prl_disk_tool"
- "/usr/bin/prl_perf_ctl"
- "/usr/bin/prlctl"
- "/usr/bin/prlsrvctl"
: true
:zap: !ruby/object:Set
hash:
? :delete:
- "~/.parallels_settings"
- "~/Library/Caches/com.parallels.desktop.console"
- "~/Library/Preferences/com.parallels.desktop.console.LSSharedFileList.plist"
- "~/Library/Preferences/com.parallels.desktop.console.plist"
- "~/Library/Preferences/com.parallels.Parallels Desktop Statistics.plist"
- "~/Library/Preferences/com.parallels.Parallels Desktop.plist"
- "~/Library/Preferences/com.parallels.Parallels.plist"
: true
==> Cask instance method 'caveats':
--- []
==> Cask instance method 'depends_on':
---
...
==> Cask instance method 'conflicts_with':
---
...
==> Cask instance method 'container':
---
...
==> Cask instance method 'gpg':
---
...
==> Cask instance method 'accessibility_access':
---
...
==> Cask instance method 'auto_updates':
---
...
==> Hbc::Installer.install
==> Printing caveats
==> Downloading
==> Downloading http://download.parallels.com/desktop/v11/11.2.0-32581/ParallelsDesktop-11.2.0-32581.dmg
Already downloaded: /Users/winkelsdorf/Library/Caches/Homebrew/parallels-desktop-11.2.0-32581.dmg
==> Downloaded to -> /Users/winkelsdorf/Library/Caches/Homebrew/parallels-desktop-11.2.0-32581.dmg
==> Verifying download
==> Determining which verifications to run for Cask parallels-desktop
==> Checking for verification class Hbc::Verify::Checksum
==> 1 verifications defined
Hbc::Verify::Checksum
==> Running verification of class Hbc::Verify::Checksum
==> Verifying checksum for Cask parallels-desktop
==> SHA256 checksums match
==> Extracting primary container
==> Determining which containers to use based on filetype
==> Checking container class Hbc::Container::Pkg
==> Checking container class Hbc::Container::Ttf
==> Checking container class Hbc::Container::Otf
==> Checking container class Hbc::Container::Air
==> Checking container class Hbc::Container::Cab
==> Executing: ["/usr/bin/file", "-Izb", "--", "/Users/winkelsdorf/Library/Caches/Homebrew/parallels-desktop-11.2.0-32581.dmg"]
==> Checking container class Hbc::Container::Dmg
==> Executing: ["/usr/bin/hdiutil", "imageinfo", "/Users/winkelsdorf/Library/Caches/Homebrew/parallels-desktop-11.2.0-32581.dmg"]
==> Using container class Hbc::Container::Dmg for /Users/winkelsdorf/Library/Caches/Homebrew/parallels-desktop-11.2.0-32581.dmg
==> Executing: ["/usr/bin/hdiutil", "mount", "-plist", "-nobrowse", "-readonly", "-noidme", "-mountrandom", "/tmp", "/Users/winkelsdorf/Library/Caches/Homebrew/parallels-desktop-11.2.0-32581.dmg"]
==> Executing: ["/usr/bin/ditto", "--", "/private/tmp/dmg.wwmdKH", "/opt/homebrew-cask/Caskroom/parallels-desktop/11.2.0-32581"] My first though was, that it might not be wise to do a sha256 on a 307 MB dmg, but anyway - this should be finished within about 20-40 secs. @adidalal Verified the downloaded But console gives this when the Cask hangs: 02.06.16 22:57:53,000 kernel[0]: hfs: mounted Parallels Desktop 11 on device disk2s1
02.06.16 22:57:54,710 diskimages-helper[39287]: *** -[NSMachPort handlePortMessage:]: dropping incoming DO message because the connection is invalid
02.06.16 22:57:54,841 sandboxd[135]: ([39297]) ditto(39297) System Policy: deny forbidden-link-priv The last line generates this full report ditto(39297) System Policy: deny forbidden-link-priv
Process: ditto [39297]
Path: /usr/bin/ditto
Load Address: 0x102d3b000
Identifier: ditto
Version: ??? (???)
Code Type: x86_64 (Native)
Parent Process: ruby [39236]
User ID: 501
Date/Time: 2016-06-02 22:57:54.820 +0200
OS Version: Mac OS X 10.11.5 (15F34)
Report Version: 8
Thread 0:
0 libsystem_kernel.dylib 0x00007fff89358f42 link + 10
1 Bom 0x00007fff8fa84259 _copyFromDirToDir + 1376
2 Bom 0x00007fff8fa89130 _copyDir + 2085
3 Bom 0x00007fff8fa841ca _copyFromDirToDir + 1233
4 Bom 0x00007fff8fa89130 _copyDir + 2085
5 Bom 0x00007fff8fa841ca _copyFromDirToDir + 1233
6 Bom 0x00007fff8fa89130 _copyDir + 2085
7 Bom 0x00007fff8fa841ca _copyFromDirToDir + 1233
8 Bom 0x00007fff8fa89130 _copyDir + 2085
9 Bom 0x00007fff8fa841ca _copyFromDirToDir + 1233
10 Bom 0x00007fff8fa89130 _copyDir + 2085
11 Bom 0x00007fff8fa841ca _copyFromDirToDir + 1233
12 Bom 0x00007fff8fa8214a BOMCopierCopyWithOptions + 11546
13 ditto 0x0000000102d3d3d7
14 libdyld.dylib 0x00007fff896455ad start + 1
Binary Images:
0x102d3b000 - 0x102d3effb ditto (51) <cfbc779f-d3aa-3705-91cb-ce0af3c20cfb> /usr/bin/ditto
0x7fff89341000 - 0x7fff8935fff7 libsystem_kernel.dylib (3248.50.21) <78e54d59-d2b0-3f54-9a4a-0a68d671f253> /usr/lib/system/libsystem_kernel.dylib
0x7fff89642000 - 0x7fff89645ffb libdyld.dylib (360.22) <cc088c2a-d407-33e7-a6b6-b06e0d4ad999> /usr/lib/system/libdyld.dylib
0x7fff8fa72000 - 0x7fff8faafff3 com.apple.bom (14.0 - 193.7) <9b8ae30b-24a3-37ab-b04e-4ce67aed4775> /System/Library/PrivateFrameworks/Bom.framework/Versions/A/Bom Edit ✘ ~/Dropbox/Application Support/dotfiles/Update brew cask install parallels-desktop
==> Downloading http://download.parallels.com/desktop/v11/11.2.0-32581/ParallelsDesktop-11.2.0-32581.dmg
######################################################################## 100,0%
==> Verifying checksum for Cask parallels-desktop
==> Moving App 'Parallels Desktop.app' to '/Applications/Parallels Desktop.app'
ERROR: File Not Found. (-43) on file: /opt/homebrew-cask/Caskroom/parallels-desktop/11.2.0-32581/Parallels Desktop.app
sudo: /opt/homebrew-cask/Caskroom/parallels-desktop/11.2.0-32581/Parallels Desktop.app/Contents/MacOS/inittool: command not found
🍺 parallels-desktop staged at '/opt/homebrew-cask/Caskroom/parallels-desktop/11.2.0-32581' (32 files, 752K) hth! |
Made some fixes to the cask and confirmed it to be working on a clean VM. |
@vitorgalvao Did you also try installing it twice? I.e. installation and afterwards a second pass with I updated to ✘ ~/Dropbox/Application Support/dotfiles/Update brew cask install parallels-desktop --force
==> Downloading http://download.parallels.com/desktop/v11/11.2.0-32581/ParallelsDesktop-11.2.0-32581.dmg
Already downloaded: /Users/winkelsdorf/Library/Caches/Homebrew/parallels-desktop-11.2.0-32581.dmg
==> Verifying checksum for Cask parallels-desktop
==> It seems there is already an App at '/Applications/Parallels Desktop.app'; overwriting.
==> Removing App: '/Applications/Parallels Desktop.app'
==> chflags: /Applications/Parallels Desktop.app/Icon\r: Permission denied Sudoing fixes this and gives this output upon a forced re-install: ✘ ~/Dropbox/Application Support/dotfiles/Update sudo brew cask install parallels-desktop --force
Password:
==> Downloading http://download.parallels.com/desktop/v11/11.2.0-32581/ParallelsDesktop-11.2.0-32581.dmg
Already downloaded: /Users/winkelsdorf/Library/Caches/Homebrew/parallels-desktop-11.2.0-32581.dmg
==> Verifying checksum for Cask parallels-desktop
==> It seems there is already an App at '/Applications/Parallels Desktop.app'; overwriting.
==> Removing App: '/Applications/Parallels Desktop.app'
==> Moving App 'Parallels Desktop.app' to '/Applications/Parallels Desktop.app'
Jun 3 14:54:32 pdfm-bootstrap[31715] <Error>: inittool[31691]: '/Applications/Parallels Desktop.app/Contents/MacOS/Parallels Service' - incorrect permissions (0755)
Jun 3 14:54:32 pdfm-bootstrap[31719] <Info>: inittool[31691]: Bundle '/Applications/Parallels Desktop.app' (11.2.0-32581) is not initialized: let's cook it
Jun 3 14:54:32 pdfm-bootstrap[31720] <Info>: inittool[31691]: Set bundle owners to 'root:wheel'
Jun 3 14:54:33 pdfm-bootstrap[31731] <Info>: inittool[31691]: Bootstrap actions
Jun 3 14:54:33 pdfm-bootstrap[31734] <Info>: inittool[31691]: Check for previous version and uninstall if need
Jun 3 14:54:33 pdfm-bootstrap[31737] <Info>: inittool[31691]: Starting uninstallation procedure of
INIT_STATE: STATE_UNINSTALL
INIT_PROGRESS: 0
Jun 3 14:54:33 pdfm-bootstrap[31738] <Info>: inittool[31691]: Backup Parallels Desktop [/Applications/Parallels Desktop.app > /var/folders/zz/zyxvpxvq6csfxvn_n0000000000000/T/parallels-desktop.BEXibvBI/Parallels Desktop.app]
INIT_PROGRESS: 10
Jun 3 14:54:33 pdfm-bootstrap[31741] <Info>: inittool[31691]: Running uninstaller
INIT_PROGRESS: 35
Jun 3 14:54:33 pdfm-bootstrap[31778] <Info>: inittool[31691]: Restore Parallels Desktop [/var/folders/zz/zyxvpxvq6csfxvn_n0000000000000/T/parallels-desktop.BEXibvBI/Parallels Desktop.app > /Applications/Parallels Desktop.app]
INIT_PROGRESS: 45
Jun 3 14:54:33 pdfm-bootstrap[31782] <Info>: inittool[31691]: End of uninstallation procedure
INIT_PROGRESS: 50
Jun 3 14:54:33 pdfm-bootstrap[31783] <Info>: inittool[31691]: Check and remove broken previous version...
INIT_STATE: STATE_INIT
INIT_PROGRESS: 50
Jun 3 14:54:33 pdfm-bootstrap[31803] <Info>: inittool[31691]: Starting bootstrap action 'install_safari_extensions' in background
Jun 3 14:54:33 pdfm-bootstrap[31806] <Info>: inittool[31691]: Installing Safari extensions...
Jun 3 14:54:33 pdfm-bootstrap[31805] <Info>: inittool[31691]: Starting bootstrap action 'fix_sharedapp_bundle' in background
Jun 3 14:54:33 pdfm-bootstrap[31809] <Info>: inittool[31691]: Starting bootstrap action 'reg_bundles' in background
Jun 3 14:54:33 pdfm-bootstrap[31821] <Info>: inittool[31691]: Starting bootstrap action 'prlapps_folder_icon' in background
Jun 3 14:54:33 pdfm-bootstrap[31829] <Info>: inittool[31691]: Starting bootstrap action 'copy_learn_videos'
Jun 3 14:54:33 pdfm-bootstrap[31833] <Info>: inittool[31691]: Installing Safari extensions for winkelsdorf...
Jun 3 14:54:33 pdfm-bootstrap[31838] <Info>: inittool[31691]: Endinging bootstrap action 'copy_learn_videos' with exit code '0'
INIT_PROGRESS: 58
Jun 3 14:54:33 pdfm-bootstrap[31846] <Info>: inittool[31691]: Starting bootstrap action 'fix_library_parallels_dir_owner'
Jun 3 14:54:33 pdfm-bootstrap[31847] <Info>: inittool[31691]: Fixing Library/Parallels owners...
Jun 3 14:54:33 pdfm-bootstrap[31858] <Info>: inittool[31691]: * winkelsdorf OK
Jun 3 14:54:33 pdfm-bootstrap[31859] <Info>: inittool[31691]: Endinging bootstrap action 'fix_library_parallels_dir_owner' with exit code '0'
INIT_PROGRESS: 66
Jun 3 14:54:33 pdfm-bootstrap[31860] <Info>: inittool[31691]: Waiting background job 'install_safari_extensions' with pid 31804...
Jun 3 14:54:34 pdfm-bootstrap[31868] <Info>: inittool[31691]: 'install_safari_extensions' finished successfuly
INIT_PROGRESS: 74
Jun 3 14:54:34 pdfm-bootstrap[31869] <Info>: inittool[31691]: Waiting background job 'fix_sharedapp_bundle' with pid 31807...
Jun 3 14:54:34 pdfm-bootstrap[31870] <Info>: inittool[31691]: 'fix_sharedapp_bundle' finished successfuly
INIT_PROGRESS: 82
Jun 3 14:54:34 pdfm-bootstrap[31871] <Info>: inittool[31691]: Waiting background job 'reg_bundles' with pid 31819...
Jun 3 14:54:34 pdfm-bootstrap[31872] <Info>: inittool[31691]: 'reg_bundles' finished successfuly
INIT_PROGRESS: 90
Jun 3 14:54:34 pdfm-bootstrap[31873] <Info>: inittool[31691]: Waiting background job 'prlapps_folder_icon' with pid 31828...
Jun 3 14:54:34 pdfm-bootstrap[31874] <Info>: inittool[31691]: 'prlapps_folder_icon' finished successfuly
INIT_PROGRESS: 98
Jun 3 14:54:34 pdfm-bootstrap[31875] <Info>: inittool[31691]: Remove temporary directory (/tmp/parallels-desktop-init-31691.tmp)
Jun 3 14:54:34 pdfm-bootstrap[31877] <Info>: inittool[31691]: Write Stat Info about installation
🍺 parallels-desktop staged at '/opt/homebrew-cask/Caskroom/parallels-desktop/11.2.0-32581' (32 files, 752K) That looks better, despite giving some warnings/errors about ownership and permissions. Probably just need to add the sudo required flag to that cask due to it's services? Should be sufficient, as forced re-installation is not going to happen that often (and that console garbage is imo acceptable in that case). Cheers, |
@winkelsdorf Can reproduce by doing
That shouldn’t be necessary as Homebrew Cask should ask for the sudo password by default whenever it feels it is unable to move the .app bundle. I’m looking into this. |
I did not. Since we’re undergoing breaking changes and hence we can’t as accurately detect the sources of problems, I think it’s best to ask users to nuke the app and reinstall after.
That output is generated by parallels’ own install script. We could easily silence it, but having it there might be more sensible. |
@claui Thanks for confirmation and having a look into that 👍 My guess is that the @vitorgalvao Fully agreed. I followed #13201 and #13966 quite a while, re-installing my casks was part of testing, like a silent contribution.
Yes of course that's from the Parallels script, but again agreed: in that case should probably not be silenced. What I wanted to point out was that it complains about wrong permissions when (re-)installed via Cask, 9th line: Jun 3 14:54:32 pdfm-bootstrap[31715] <Error>: inittool[31691]: '/Applications/Parallels Desktop.app/Contents/MacOS/Parallels Service' - incorrect permissions (0755) But this has no consequences at all (works fine after installation) and I can't compare against cask-less installation as I don't have a log for this situation around. So except for Parallels and another Cask (Google Music Match, https://github.com/caskroom/homebrew-cask/blob/master/Casks/music-manager.rb) I had no problems with the changed installation behavior! 💯 Will create an issue for Google Music Match shortly. Cheers, |
Closing this issue as it will be fixed with PR #21665. |
* Write failing tests for issue #18638 * Fix `Hbc::SystemCommand` to avoid deadlocks; ref #18638 The current implementation of `Hbc::SystemCommand` uses the `Open3` library in a way that causes a deadlock in cases where `STDERR` grows beyond a certain size. This commit fixes the issue by following the practice suggested in the Ruby documentation, i. e. choosing a stream selection method that avoids deadlocks.
* Write failing tests for issue Homebrew#18638 * Fix `Hbc::SystemCommand` to avoid deadlocks; ref Homebrew#18638 The current implementation of `Hbc::SystemCommand` uses the `Open3` library in a way that causes a deadlock in cases where `STDERR` grows beyond a certain size. This commit fixes the issue by following the practice suggested in the Ruby documentation, i. e. choosing a stream selection method that avoids deadlocks.
When running "brew cask install --force parallels-desktop", it hangs right after "==> Verifying checksum for Cask parallels-desktop":
Running with the --debug flag:
Output of
brew doctor
Output of
brew cask doctor
I can uninstall and then reinstall. This only happens when trying to install it with --force.
The text was updated successfully, but these errors were encountered: