pivotal-sprout / sprout-wrap

Pivotal Labs uses this project with sprout, soloist and librarian-chef to build developer workstations
The Unlicense
157 stars 250 forks source link

Several DMG's not attached on Mavericks #34

Closed gal-at-aljazeera closed 10 years ago

gal-at-aljazeera commented 10 years ago

I'm installing sprout-wrap on a fresh OSX Mavericks. The following recipes required me to re-run the hdiutil attach manually command to attach the DMG and then re-run soloist before it worked.

The following recipes required this:

ccmenu xquartz keycastr JavaForOSX.

Same thing happened on 3 new Mavericks laptops.

After I ran hdiutil it seemed to work, and from the log from the first time when it errored out it seemed that it at least attempted to run hdiutil and no errors were displayed - but it clearly didn't work because when sproutwrap aborted the DMG wasn't attached and the subsequent command (trying to install / copy the file) failed.

Here is the output and Stack Trace for CCMenu (below), but the same thing happened for all 4 recipes:

Recipe: sprout-osx-apps::ccmenu
  * dmg_package[CCMenu] action install[2014-02-03T12:26:57-08:00] INFO: Processing dmg_package[CCMenu] action install (sprout-osx-apps::ccmenu line 5)
Recipe: <Dynamically Defined Resource>
  * remote_file[/var/chef/cache/CCMenu.dmg - CCMenu] action create[2014-02-03T12:26:57-08:00] INFO: Processing remote_file[/var/chef/cache/CCMenu.dmg - CCMenu] action create (/Users/gal/workspace/sprout-wrap/cookbooks/dmg/providers/package.rb line 37)
[2014-02-03T12:26:57-08:00] INFO: remote_file[/var/chef/cache/CCMenu.dmg - CCMenu] created file /var/chef/cache/CCMenu.dmg

    - create new file /var/chef/cache/CCMenu.dmg[2014-02-03T12:26:59-08:00] INFO: remote_file[/var/chef/cache/CCMenu.dmg - CCMenu] updated file contents /var/chef/cache/CCMenu.dmg

    - update content in file /var/chef/cache/CCMenu.dmg from none to 7cbdc6
        (new content is binary, diff output suppressed)

  * ruby_block[attach /var/chef/cache/CCMenu.dmg] action run[2014-02-03T12:26:59-08:00] INFO: Processing ruby_block[attach /var/chef/cache/CCMenu.dmg] action run (/Users/gal/workspace/sprout-wrap/cookbooks/dmg/providers/package.rb line 45)
 hdiutil attach  '/var/chef/cache/CCMenu.dmg'
[2014-02-03T12:26:59-08:00] INFO: ruby_block[attach /var/chef/cache/CCMenu.dmg] called

    - execute the ruby block attach /var/chef/cache/CCMenu.dmg

  * execute[rsync --force --recursive --links --perms --executability --owner --group --times '/Volumes/CCMenu/CCMenu.app' '/Applications'] action run[2014-02-03T12:26:59-08:00] INFO: Processing execute[rsync --force --recursive --links --perms --executability --owner --group --times '/Volumes/CCMenu/CCMenu.app' '/Applications'] action run (/Users/gal/workspace/sprout-wrap/cookbooks/dmg/providers/package.rb line 57)

================================================================================
Error executing action `run` on resource 'execute[rsync --force --recursive --links --perms --executability --owner --group --times '/Volumes/CCMenu/CCMenu.app' '/Applications']'
================================================================================

Mixlib::ShellOut::ShellCommandFailed
------------------------------------
Expected process to exit with [0], but received '23'
---- Begin output of rsync --force --recursive --links --perms --executability --owner --group --times '/Volumes/CCMenu/CCMenu.app' '/Applications' ----
STDOUT: 
STDERR: rsync: link_stat "/Volumes/CCMenu/CCMenu.app" failed: No such file or directory (2)
rsync error: some files could not be transferred (code 23) at /SourceCache/rsync/rsync-42/rsync/main.c(992) [sender=2.6.9]
---- End output of rsync --force --recursive --links --perms --executability --owner --group --times '/Volumes/CCMenu/CCMenu.app' '/Applications' ----
Ran rsync --force --recursive --links --perms --executability --owner --group --times '/Volumes/CCMenu/CCMenu.app' '/Applications' returned 23

Resource Declaration:
---------------------
# In /Users/gal/workspace/sprout-wrap/cookbooks/dmg/providers/package.rb

 57:       execute "rsync --force --recursive --links --perms --executability --owner --group --times '/Volumes/#{volumes_dir}/#{new_resource.app}.app' '#{new_resource.destination}'" do
 58:         user new_resource.owner if new_resource.owner
 59:       end
 60: 

Compiled Resource:
------------------
# Declared in /Users/gal/workspace/sprout-wrap/cookbooks/dmg/providers/package.rb:57:in `block in class_from_file'

execute("rsync --force --recursive --links --perms --executability --owner --group --times '/Volumes/CCMenu/CCMenu.app' '/Applications'") do
  action "run"
  retries 0
  retry_delay 2
  command "rsync --force --recursive --links --perms --executability --owner --group --times '/Volumes/CCMenu/CCMenu.app' '/Applications'"
  backup 5
  returns 0
  user "gal"
  cookbook_name :"sprout-osx-apps"
end

[2014-02-03T12:26:59-08:00] INFO: Running queued delayed notifications before re-raising exception

================================================================================
Error executing action `install` on resource 'dmg_package[CCMenu]'
================================================================================

Mixlib::ShellOut::ShellCommandFailed
------------------------------------
execute[rsync --force --recursive --links --perms --executability --owner --group --times '/Volumes/CCMenu/CCMenu.app' '/Applications'] (/Users/gal/workspace/sprout-wrap/cookbooks/dmg/providers/package.rb line 57) had an error: Mixlib::ShellOut::ShellCommandFailed: Expected process to exit with [0], but received '23'
---- Begin output of rsync --force --recursive --links --perms --executability --owner --group --times '/Volumes/CCMenu/CCMenu.app' '/Applications' ----
STDOUT: 
STDERR: rsync: link_stat "/Volumes/CCMenu/CCMenu.app" failed: No such file or directory (2)
rsync error: some files could not be transferred (code 23) at /SourceCache/rsync/rsync-42/rsync/main.c(992) [sender=2.6.9]
---- End output of rsync --force --recursive --links --perms --executability --owner --group --times '/Volumes/CCMenu/CCMenu.app' '/Applications' ----
Ran rsync --force --recursive --links --perms --executability --owner --group --times '/Volumes/CCMenu/CCMenu.app' '/Applications' returned 23

Resource Declaration:
---------------------
# In /Users/gal/workspace/sprout-wrap/cookbooks/sprout-osx-apps/recipes/ccmenu.rb

  5: dmg_package "CCMenu" do
  6:   volumes_dir "CCMenu"
  7:   source "http://iweb.dl.sourceforge.net/project/ccmenu/CCMenu/1.5/ccmenu-1.5-b.dmg"
  8:   checksum "7cbdc6b3ff477fe420ab121e0892e0aebc48b1a9620aacfb6324932900d6b6cc"
  9:   owner node['current_user']
 10:   action :install
 11: end
 12: 

Compiled Resource:
------------------
# Declared in /Users/gal/workspace/sprout-wrap/cookbooks/sprout-osx-apps/recipes/ccmenu.rb:5:in `from_file'

dmg_package("CCMenu") do
  action [:install]
  updated true
  updated_by_last_action true
  retries 0
  retry_delay 2
  cookbook_name :"sprout-osx-apps"
  recipe_name "ccmenu"
  source "http://iweb.dl.sourceforge.net/project/ccmenu/CCMenu/1.5/ccmenu-1.5-b.dmg"
  volumes_dir "CCMenu"
  checksum "7cbdc6b3ff477fe420ab121e0892e0aebc48b1a9620aacfb6324932900d6b6cc"
  type "app"
  owner "gal"
  app "CCMenu"
  destination "/Applications"
end

[2014-02-03T12:26:59-08:00] INFO: Running queued delayed notifications before re-raising exception
[2014-02-03T12:26:59-08:00] ERROR: Running exception handlers
[2014-02-03T12:26:59-08:00] ERROR: Exception handlers complete
[2014-02-03T12:26:59-08:00] FATAL: Stacktrace dumped to /var/chef/cache/chef-stacktrace.out
Chef Client failed. 114 resources updated
[2014-02-03T12:26:59-08:00] FATAL: Chef::Exceptions::ChildConvergeError: Chef run process exited unsuccessfully (exit code 1)
00662L:sprout-wrap gal$

Then I run hdutil manually, which works:

○ → hdiutil attach  /var/chef/cache/CCMenu.dmg
Checksumming whole disk (Apple_HFS : 0)…
............................................................................................................................................................................
          whole disk (Apple_HFS : 0): verified   CRC32 $A938525D
verified   CRC32 $A6082F24
/dev/disk4                                              /Volumes/CCMenu

 |1.9.3-p448| 00662L in ~

And then re-run soloist and then it passes.

gal-at-aljazeera commented 10 years ago

33 is the same issue

kfitzpatrick commented 10 years ago

Seeing a similar thing on 10.8.5 Mountain Lion

https://gist.github.com/kfitzpatrick/dc7b1816654d1f7672a1

hiremaga commented 10 years ago

Let's track this in #33, closing this issue as a dupe.