P9's inittool is buggy and prevents installation - error 15380
During installation, Parallels Desktop runs "inittool" (inittool -b /Applications/Parallels Desktop.app). In our environment with Active Directory-based accounts, inittool gets stuck and retries over and over again, spawning more and more instances of inittool (I've seen over 850 inittool processes running on a single machine).
Code:
34574 ?? S 0:00.05 /bin/bash /Applications/Parallels Desktop.app/Contents/MacOS/inittool init -b /Applications/Parallels Desktop.app
34620 ?? S 0:00.05 /bin/bash /Applications/Parallels Desktop.app/Contents/MacOS/inittool init -b /Applications/Parallels Desktop.app
34667 ?? S 0:00.05 /bin/bash /Applications/Parallels Desktop.app/Contents/MacOS/inittool init -b /Applications/Parallels Desktop.app
34713 ?? S 0:00.05 /bin/bash /Applications/Parallels Desktop.app/Contents/MacOS/inittool init -b /Applications/Parallels Desktop.app
34759 ?? S 0:00.05 /bin/bash /Applications/Parallels Desktop.app/Contents/MacOS/inittool init -b /Applications/Parallels Desktop.app
34806 ?? S 0:00.05 /bin/bash /Applications/Parallels Desktop.app/Contents/MacOS/inittool init -b /Applications/Parallels Desktop.app
34852 ?? S 0:00.05 /bin/bash /Applications/Parallels Desktop.app/Contents/MacOS/inittool init -b /Applications/Parallels Desktop.app
34898 ?? S 0:00.05 /bin/bash /Applications/Parallels Desktop.app/Contents/MacOS/inittool init -b /Applications/Parallels Desktop.app
34944 ?? S 0:00.05 /bin/bash /Applications/Parallels Desktop.app/Contents/MacOS/inittool init -b /Applications/Parallels Desktop.app
34990 ?? S 0:00.05 /bin/bash /Applications/Parallels Desktop.app/Contents/MacOS/inittool init -b /Applications/Parallels Desktop.app
35036 ?? S 0:00.05 /bin/bash /Applications/Parallels Desktop.app/Contents/MacOS/inittool init -b /Applications/Parallels Desktop.app
35082 ?? S 0:00.05 /bin/bash /Applications/Parallels Desktop.app/Contents/MacOS/inittool init -b /Applications/Parallels Desktop.app
35128 ?? S 0:00.05 /bin/bash /Applications/Parallels Desktop.app/Contents/MacOS/inittool init -b /Applications/Parallels Desktop.app
........
Code:
bash-3.2# ps ax | grep -i inittool | wc
879 9665 124779
See: inittool-ps.txt
When that tool and command is invoked directly, the following errors are output:
Code:
Jun 17 12:04:48 localhost inittool[67496] <Error>: '/Applications/Parallels Desktop.app/Contents/MacOS/Parallels Service' - incorrect owners (0:1746073134)
Jun 17 12:04:48 localhost inittool[67497] <Info>: Bundle not initialized. Let's preinitialize them
Jun 17 12:04:48 localhost inittool[67522] <Error>: '/Applications/Parallels Desktop.app/Contents/MacOS/Parallels Service' - incorrect owners (0:1746073134)
Jun 17 12:04:48 localhost inittool[67525] <Info>: Set bundle owners to '0:0'
Jun 17 12:04:50 localhost inittool[67556] <Info>: Restart initialization with root permissions ()
Jun 17 12:04:50 localhost inittool[67599] <Error>: '/Applications/Parallels Desktop.app/Contents/MacOS/Parallels Service' - incorrect owners (0:1746073134)
Jun 17 12:04:50 localhost inittool[67600] <Info>: Bundle not initialized. Let's preinitialize them
Jun 17 12:04:50 localhost inittool[67628] <Error>: '/Applications/Parallels Desktop.app/Contents/MacOS/Parallels Service' - incorrect owners (0:1746073134)
Jun 17 12:04:50 localhost inittool[67630] <Info>: Set bundle owners to '0:0'
Over and over and over.
See: inittool-manual-execution.txt
These are the filesystem events that inittool is apparently doing:
Code:
fs_usage | grep -i Parallels | grep -i chown
16:57:58 open ParallelsDesktopHelp 0.000006 chown
16:57:58 lstat64 Parallels Desktop Help.helpindex 0.000003 chown
16:57:58 lstat64 pd_interface_parallels_icon_menu.png 0.000003 chown
16:57:58 chown Parallels Desktop Help.helpindex 0.000013 chown
16:57:58 chown pd_interface_parallels_icon_menu.png 0.000011 chown
16:57:58 chown ParallelsDesktopHelp 0.000012 chown
16:57:58 lstat64 parallels.qm 0.000003 chown
16:57:58 lstat64 ParallelsDesktopHelp 0.000003 chown
16:57:58 chown parallels.qm 0.000010 chown
16:57:58 open ParallelsDesktopHelp 0.000004 chown
16:57:58 lstat64 Parallels Desktop Help.helpindex 0.000003 chown
16:57:58 lstat64 pd_interface_parallels_icon_menu.png 0.000003 chown
16:57:58 chown Parallels Desktop Help.helpindex 0.000045 W chown
16:57:58 chown pd_interface_parallels_icon_menu.png 0.000012 chown
16:57:58 chown ParallelsDesktopHelp
As you can see, these repeat over and over and over endlessly as inittool gets stuck unsuccessfully - or repeatedly - trying to change ownership.
See: inittool-chown.txt
Our UniqueIDs are fine. Only "root" is zero.
Code:
dscl . -list /Users UniqueID | grep -i " 0"
root 0
See: UniqueID.txt
Eventually the installer seems to give up, unable to resolve the inittool problems, and reports the error code 15380.
These problems occur regardless of whether Parallels Desktop is installed manually via the downloaded disk image, or via the AutoDeploy pkg method, since they both run the inittool -b command that seems to be the sticking point.
Background: all our regular user accounts are from Active Directory, via the OS X Active Directory plug-in, and therefore have "high" uids (e.g.: mine is 9 digits). We do not use local accounts at all. However, I also created and used a local account (which did not have uid 0) and the same problem occurred. All the info in the 15380 KB articles has been of no use. I have had at least 20 people report this problem, which appears to have been introduced in Parallels Desktop 9.
OS X 10.9 has been getting the "blame", however since it also occurs on OS X 10.8.5 where P8 had successfully installed, P9 itself is quite clearly the culprit.
Clever obfuscation (hidden Install.mpkg and Parallels Desktop.app) and self-repairing applications went out with the 00s. How about cut out the nonsense - that makes things more difficult for users and administrators, not less - and a wrap it in an actual installer that sets perms and ownership at install time? Trying to be overly clever just introduces more opportunities for failure. And by this point I'm going to start recommending my P9 users request a refund from you and migrate to Fusion instead.