Default arguments are evaluated once at module load time. This may cause problems if the argument is a mutable object such as a list or a dictionary. If the mutable object is changed within the function, those changes will persist to subsequent calls of the function. This wasn't a problem for runExternalScript yet, since the default arg is not changed within the function, but we might as well fix it to protect against potential future bugs.
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…