Dec 01 14:11:20 Mounting disk image Office2011-1413UpdateEN.dmg
Dec 01 14:11:23 ERROR: Unexpected error in munkilib.installer:
Dec 01 14:11:23 ERROR: Traceback (most recent call last):
File "/usr/local/munki/managedsoftwareupdate", line 216, in doInstallTasks
need_to_restart = installer.run(only_unattended=only_unattended)
File "/usr/local/munki/munkilib/installer.py", line 1190, in run
only_unattended=only_unattended)
File "/usr/local/munki/munkilib/installer.py", line 681, in installWithInfo
suppressBundleRelocation)
File "/usr/local/munki/munkilib/installer.py", line 265, in installall
suppressBundleRelocation)
File "/usr/local/munki/munkilib/installer.py", line 113, in install
munkistatus.percent(0)
File "/usr/local/munki/munkilib/munkistatus.py", line 190, in percent
sendCommand(u"PERCENT: %s\n" % percentage)
File "/usr/local/munki/munkilib/munkistatus.py", line 71, in sendCommand
launchAndConnectToMunkiStatus()
File "/usr/local/munki/munkilib/munkistatus.py", line 53, in launchAndConnectToMunkiStatus
if not getMunkiStatusPID():
File "/usr/local/munki/munkilib/munkistatus.py", line 131, in getMunkiStatusPID
"Managed Software Update.app/Contents/MacOS/Managed Software Update") \
File "/usr/local/munki/munkilib/munkistatus.py", line 109, in getPIDforProcessName
stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
File "/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/subprocess.py", line 595, in __init__
errread, errwrite)
File "/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/subprocess.py", line 1026, in _execute_child
self.pid = os.fork()
OSError: [Errno 35] Resource temporarily unavailable
has changed since the last loop iteration.
This should change things like:
Nov 16 13:12:03 Registering updated applications…
...
Nov 16 13:12:19 Registering updated applications…
Nov 16 13:12:19 Registering updated applications…
Nov 16 13:12:20 Registering updated applications…
Nov 16 13:12:20 Registering updated applications…
Nov 16 13:12:21 Registering updated applications…
Nov 16 13:12:21 Registering updated applications…
Nov 16 13:12:22 Registering updated applications…
Nov 16 13:12:22 Writing package receipts…
Nov 16 13:12:23 Writing package receipts…
Nov 16 13:12:23 Writing package receipts…
Nov 16 13:12:24 Writing package receipts…
Nov 16 13:12:24 Writing package receipts…
Nov 16 13:12:25 Writing package receipts…
Nov 16 13:12:25 Writing package receipts…
...
Nov 16 13:12:59 Writing package receipts…
To simply:
Nov 16 13:12:03 Registering updated applications…
Nov 16 13:12:22 Writing package receipts…
App Engine Blobstore does not send Content-Type, which means targetsize is always 0 and therefore the conditional that calculates and reports download progress is never entered, and the existing sleep location is never hit. On slow internet connections, this means that CPU spikes as proc.poll() is being called far more than curl is downloading.
Fix this by moving time.sleep(0.1) into the main curl while loop, where it'll execute on every loop iteration. That means we have a small sleep even while headers are downloading/etc, but that's not a big deal given it's a 1/10th of a second.