[Python-checkins] macOS installer build: mitigate hdiutil resource busy bug

Ned Deily webhook-mailer at python.org
Tue Dec 11 21:17:18 EST 2018


https://github.com/python/cpython/commit/8aa057aaabf710eda53cf90a77e23d2f127346a2
commit: 8aa057aaabf710eda53cf90a77e23d2f127346a2
branch: 3.7
author: Ned Deily <nad at python.org>
committer: Ned Deily <nad at python.org>
date: 2018年12月11日T15:47:04-05:00
summary:
macOS installer build: mitigate hdiutil resource busy bug
files:
M Mac/BuildScript/build-installer.py
diff --git a/Mac/BuildScript/build-installer.py b/Mac/BuildScript/build-installer.py
index 806f660bd644..5d11bbb10e60 100755
--- a/Mac/BuildScript/build-installer.py
+++ b/Mac/BuildScript/build-installer.py
@@ -1518,16 +1518,27 @@ def buildDMG():
 imagepath = imagepath + '.dmg'
 
 os.mkdir(outdir)
+
+ # Try to mitigate race condition in certain versions of macOS, e.g. 10.9,
+ # when hdiutil create fails with "Resource busy". For now, just retry
+ # the create a few times and hope that it eventually works.
+
 volname='Python %s'%(getFullVersion())
- runCommand("hdiutil create -format UDRW -volname %s -srcfolder %s %s"%(
+ cmd = ("hdiutil create -format UDRW -volname %s -srcfolder %s -size 100m %s"%(
 shellQuote(volname),
 shellQuote(os.path.join(WORKDIR, 'installer')),
 shellQuote(imagepath + ".tmp.dmg" )))
-
- # Try to mitigate race condition in certain versions of macOS, e.g. 10.9,
- # when hdiutil fails with "Resource busy"
-
- time.sleep(10)
+ for i in range(5):
+ fd = os.popen(cmd, 'r')
+ data = fd.read()
+ xit = fd.close()
+ if not xit:
+ break
+ sys.stdout.write(data)
+ print(" -- retrying hdiutil create")
+ time.sleep(5)
+ else:
+ raise RuntimeError("command failed: %s"%(commandline,))
 
 if not os.path.exists(os.path.join(WORKDIR, "mnt")):
 os.mkdir(os.path.join(WORKDIR, "mnt"))


More information about the Python-checkins mailing list

AltStyle によって変換されたページ (->オリジナル) /