This is an automated email from the ASF dual-hosted git repository.

jimjag pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/openoffice-devtools.git

commit 05dd7232d95a21fa1f3762cb8937b9c164d94954
Author: Jim Jagielski <[email protected]>
AuthorDate: Fri Sep 25 08:33:27 2026 -0400

    macosx-remote-sign.sh: retry hdiutil detach on EBUSY
    
    A freshly validated image is often briefly busy, which aborted the run
    after notarization and left the dmg unsigned.
---
 release-scripts/macosx-remote-sign.sh | 14 ++++++++++++--
 1 file changed, 12 insertions(+), 2 deletions(-)

diff --git a/release-scripts/macosx-remote-sign.sh 
b/release-scripts/macosx-remote-sign.sh
index 023c98f..39a5a9e 100755
--- a/release-scripts/macosx-remote-sign.sh
+++ b/release-scripts/macosx-remote-sign.sh
@@ -135,12 +135,22 @@ if [ "$SRC_DMG" -ef "$OUT_DMG" ]; then
        exit 2
 fi
 
+# A just-validated image is often still busy for a few seconds (EBUSY).
+detach_with_retry() {
+       local mount_point="$1" try
+       for try in 1 2 3 4 5; do
+               hdiutil detach "$mount_point" -quiet 2>/dev/null && return 0
+               sleep 3
+       done
+       hdiutil detach "$mount_point" -force -quiet
+}
+
 MOUNT_POINT=""
 STAGING_DIR=""
 TEMP_DIR=""
 cleanup() {
        if [ -n "$MOUNT_POINT" ]; then
-               hdiutil detach "$MOUNT_POINT" -quiet 2>/dev/null || true
+               detach_with_retry "$MOUNT_POINT" 2>/dev/null || true
                rmdir "$MOUNT_POINT" 2>/dev/null || true
        fi
        [ -z "$STAGING_DIR" ] || rm -rf "$STAGING_DIR"
@@ -159,7 +169,7 @@ mount_readonly() {
 
 detach_mounted() {
        local mount_point="$MOUNT_POINT"
-       hdiutil detach "$mount_point" -quiet
+       detach_with_retry "$mount_point"
        rmdir "$mount_point" 2>/dev/null || true
        MOUNT_POINT=""
 }

Reply via email to