RFR: 8352728: InternalError loading java.security due to Windows parent folder permissions [v13]
Francisco Ferrari Bihurriet
fferrari at openjdk.org
Wed Dec 3 01:49:05 UTC 2025
On Tue, 2 Dec 2025 19:53:23 GMT, Francisco Ferrari Bihurriet <fferrari at openjdk.org> wrote:
>> test/jdk/java/security/Security/ConfigFileTestAnonymousPipes.sh line 1:
>>
>>> 1: #
>>
>> This test failed on linux-x64 and linux-aarch64 on our test systems. Here's a snippet of the logfile:
>>
>>
>> properties[0x3|main|Security.java:160|2025-12-02 13:35:48.066]: unable to load security properties from <(echo include /dev/stdin)
>> java.io.FileNotFoundException: <(echo include /dev/stdin)
>> at java.base/java.security.Security$SecPropLoader.loadExtraFromPath(Security.java:209)
>> at java.base/java.security.Security$SecPropLoader.loadExtraHelper(Security.java:178)
>> at java.base/java.security.Security$SecPropLoader.loadExtra(Security.java:157)
>> at java.base/java.security.Security$SecPropLoader.loadAll(Security.java:122)
>> at java.base/java.security.Security.initialize(Security.java:337)
>> at java.base/java.security.Security.<clinit>(Security.java:326)
>> at java.base/jdk.internal.misc.Unsafe.ensureClassInitialized0(Native Method)
>> at java.base/jdk.internal.misc.Unsafe.ensureClassInitialized(Unsafe.java:1195)
>> at java.base/java.lang.invoke.MethodHandles$Lookup.ensureInitialized(MethodHandles.java:2750)
>> at java.base/jdk.internal.access.SharedSecrets.ensureClassInitialized(SharedSecrets.java:504)
>> at java.base/jdk.internal.access.SharedSecrets.getJavaSecurityPropertiesAccess(SharedSecrets.java:320)
>> at java.base/sun.launcher.SecuritySettings.printSecurityProperties(SecuritySettings.java:88)
>> at java.base/sun.launcher.SecuritySettings.printSecuritySettings(SecuritySettings.java:63)
>> at java.base/sun.launcher.LauncherHelper.showSettings(LauncherHelper.java:172)
>
> Looks like `<(echo include /dev/stdin)` is being interpreted literally, instead of defining a [Bash Process Substitution](https://www.gnu.org/software/bash/manual/html_node/Process-Substitution.html).
>
> Thinking Bash would be the execution shell on all the platforms was probably a wrong assumption. Let me see if I can replace it by something else, otherwise I will need to give up and remove that second one.
>
> The first one must be passing, otherwise it would have exited without getting to the second one:
>
> https://github.com/openjdk/jdk/blob/4e7206c082e4b0152d999b32eba0063a506eff67/test/jdk/java/security/Security/ConfigFileTestAnonymousPipes.sh#L54
I managed to convert it to a Java test: 51a3ce86649e2e44048ae6028aea1edf0a72812d.
I would greatly appreciate if someone can run the new version in the same testing environment.
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/24465#discussion_r2583355106
More information about the security-dev
mailing list