JDK-8248059 : [macos] EmptyFolderPackageTest.java failed "hdiutil: create failed - No child processes"
  • Type: Bug
  • Component: tools
  • Sub-Component: jpackage
  • Affected Version: 15
  • Priority: P3
  • Status: Resolved
  • Resolution: Fixed
  • OS: os_x
  • CPU: x86_64
  • Submitted: 2020-06-22
  • Updated: 2020-07-24
  • Resolved: 2020-07-01
The Version table provides details related to the release that this issue/RFE will be addressed.

Unresolved : Release in which this issue/RFE will be addressed.
Resolved: Release in which this issue/RFE has been resolved.
Fixed : Release in which this issue/RFE has been fixed. The release containing this fix may be available for download as an Early Access Release or a General Availability Release.

To download the current JDK release, click here.
JDK 15 JDK 16
15 b30Fixed 16Fixed
Related Reports
Relates :  
Relates :  
Relates :  
Relates :  
Description
The following test failed in the JDK15 CI:

tools/jpackage/share/EmptyFolderPackageTest.java

Here's a snippet from the log file:

2020-06-22 21:26:17.203 copy-helper[93139:97325886] About to copy "/var/folders/jn/3j5zlmnj4zs5tlhls80bv42r000_dc/T/jdk.incubator.jpackage9865149966853880464/images/image-6826357834524952144".
2020-06-22 21:26:56.359 diskimages-helper[93089:97325321] -processKernelRequest: will sleep received
2020-06-22 21:27:25.602 diskimages-helper[93089:97325321] -processKernelRequest: will sleep received
2020-06-22 21:27:53.330 copy-helper[93139:97325886] Copy finished.
2020-06-22 21:28:24.370 hdiutil[93086:97331467] helper died
DIHLDiskImageCreate() returned 10
(null)
hdiutil: create: returning 10
hdiutil: create failed - No child processes
java.io.IOException: Command [/usr/bin/hdiutil, create, -verbose, -srcfolder, /var/folders/jn/3j5zlmnj4zs5tlhls80bv42r000_dc/T/jdk.incubator.jpackage9865149966853880464/images/image-6826357834524952144, -volname, EmptyFolderPackageTest, -ov, /var/folders/jn/3j5zlmnj4zs5tlhls80bv42r000_dc/T/jdk.incubator.jpackage9865149966853880464/images/EmptyFolderPackageTest-tmp.dmg, -fs, HFS+, -format, UDRW] exited with 1 code
	at jdk.incubator.jpackage/jdk.incubator.jpackage.internal.Executor.executeExpectSuccess(Executor.java:75)
	at jdk.incubator.jpackage/jdk.incubator.jpackage.internal.IOUtils.exec(IOUtils.java:167)
	at jdk.incubator.jpackage/jdk.incubator.jpackage.internal.IOUtils.exec(IOUtils.java:135)
	at jdk.incubator.jpackage/jdk.incubator.jpackage.internal.MacDmgBundler.buildDMG(MacDmgBundler.java:325)
	at jdk.incubator.jpackage/jdk.incubator.jpackage.internal.MacDmgBundler.bundle(MacDmgBundler.java:91)
	at jdk.incubator.jpackage/jdk.incubator.jpackage.internal.MacDmgBundler.execute(MacDmgBundler.java:493)
	at jdk.incubator.jpackage/jdk.incubator.jpackage.internal.Arguments.generateBundle(Arguments.java:680)
	at jdk.incubator.jpackage/jdk.incubator.jpackage.internal.Arguments.processArguments(Arguments.java:549)
	at jdk.incubator.jpackage/jdk.incubator.jpackage.main.Main.execute(Main.java:98)
	at jdk.incubator.jpackage/jdk.incubator.jpackage.main.Main.main(Main.java:52)
jdk.incubator.jpackage.internal.PackagerException: java.io.IOException: Command [/usr/bin/hdiutil, create, -verbose, -srcfolder, /var/folders/jn/3j5zlmnj4zs5tlhls80bv42r000_dc/T/jdk.incubator.jpackage9865149966853880464/images/image-6826357834524952144, -volname, EmptyFolderPackageTest, -ov, /var/folders/jn/3j5zlmnj4zs5tlhls80bv42r000_dc/T/jdk.incubator.jpackage9865149966853880464/images/EmptyFolderPackageTest-tmp.dmg, -fs, HFS+, -format, UDRW] exited with 1 code
	at jdk.incubator.jpackage/jdk.incubator.jpackage.internal.MacDmgBundler.bundle(MacDmgBundler.java:96)
	at jdk.incubator.jpackage/jdk.incubator.jpackage.internal.MacDmgBundler.execute(MacDmgBundler.java:493)
	at jdk.incubator.jpackage/jdk.incubator.jpackage.internal.Arguments.generateBundle(Arguments.java:680)
	at jdk.incubator.jpackage/jdk.incubator.jpackage.internal.Arguments.processArguments(Arguments.java:549)
	at jdk.incubator.jpackage/jdk.incubator.jpackage.main.Main.execute(Main.java:98)
	at jdk.incubator.jpackage/jdk.incubator.jpackage.main.Main.main(Main.java:52)
Caused by: java.io.IOException: Command [/usr/bin/hdiutil, create, -verbose, -srcfolder, /var/folders/jn/3j5zlmnj4zs5tlhls80bv42r000_dc/T/jdk.incubator.jpackage9865149966853880464/images/image-6826357834524952144, -volname, EmptyFolderPackageTest, -ov, /var/folders/jn/3j5zlmnj4zs5tlhls80bv42r000_dc/T/jdk.incubator.jpackage9865149966853880464/images/EmptyFolderPackageTest-tmp.dmg, -fs, HFS+, -format, UDRW] exited with 1 code
	at jdk.incubator.jpackage/jdk.incubator.jpackage.internal.Executor.executeExpectSuccess(Executor.java:75)
	at jdk.incubator.jpackage/jdk.incubator.jpackage.internal.IOUtils.exec(IOUtils.java:167)
	at jdk.incubator.jpackage/jdk.incubator.jpackage.internal.IOUtils.exec(IOUtils.java:135)
	at jdk.incubator.jpackage/jdk.incubator.jpackage.internal.MacDmgBundler.buildDMG(MacDmgBundler.java:325)
	at jdk.incubator.jpackage/jdk.incubator.jpackage.internal.MacDmgBundler.bundle(MacDmgBundler.java:91)
	... 5 more
TRACE: exec: Done. Exit code: 1
ERROR: Expected [0]. Actual [1]: Check command [/mesos/work_dir/jib-master/install/jdk-15+29-1432/macosx-x64.jdk/jdk-15.jdk/Contents/Home/bin/jpackage --input ./input --dest ./output --name EmptyFolderPackageTest --type dmg --main-jar hello.jar --main-class Hello --verbose](14) exited with 0 code
[  FAILED  ] EmptyFolderPackageTest; checks=30
----------System.err:(55/3900)----------


This is a Tier2 failure so I'm starting this bug as a P3.
This "hdiutil: create failed - No child processes" failure mode
is fairly recent (last few days to a week or so).
Comments
URL: https://hg.openjdk.java.net/jdk/jdk15/rev/6909e4a1f25b User: herrick Date: 2020-07-01 18:53:22 +0000
01-07-2020

http://cr.openjdk.java.net/~almatvee/8248059/webrev.02/ - Added fallback for creating DMG if original approach fails. In original approach DMG will be created by providing app image to hdiutil. It was noticed that helper sub-processes run by hdiutil to copy app image sometimes crashed or failed during automated testing. Fallback approach will create empty DMG and copy files manually. It was observed that in this case hdiutil does not run sub-process that caused tests to fail, so hopefully this workaround will fix issue. Both cases produces same working DMG. Tests which failed due to this issue was removed from ProblemList.
29-06-2020