Ruoyu Zhong created SOLR-16733: ---------------------------------- Summary: Solr fails to start on macOS with OpenJDK 20 Key: SOLR-16733 URL: https://issues.apache.org/jira/browse/SOLR-16733 Project: Solr Issue Type: Bug Security Level: Public (Default Security Level. Issues are Public) Components: cli Affects Versions: 9.2 Environment: OS: macOS 13 (Ventura), on x86_64
(Note: this issue occurred on all combinations of macOS \{11, 12, 13} and \{x86_64, arm64}) Java: {code:java} $ java -version openjdk version "20" 2023-03-21 OpenJDK Runtime Environment (build 20+36-2344) OpenJDK 64-Bit Server VM (build 20+36-2344, mixed mode, sharing) {code} Reporter: Ruoyu Zhong Attachments: solr.log Solr failed to start on macOS (versions: 11, 12, 13; archs: x86_64, arm64) with OpenJDK 20. The following error was observed: {code:java} $ solr-9.2.0/bin/solr start -f *** [WARN] *** Your open file limit is currently 256. It should be set to 65000 to avoid operational disruption. If you no longer wish to see this warning, set SOLR_ULIMIT_CHECKS to false in your profile or solr.in.sh *** [WARN] *** Your Max Processes Limit is currently 1392. It should be set to 65000 to avoid operational disruption. If you no longer wish to see this warning, set SOLR_ULIMIT_CHECKS to false in your profile or solr.in.sh Java 20 detected. Enabled workaround for SOLR-16463 OpenJDK 64-Bit Server VM warning: -XX:+UseLargePages not supported in this VM CompileCommand: exclude com/github/benmanes/caffeine/cache/BoundedLocalCache.put bool exclude = true WARNING: A command line option has enabled the Security Manager WARNING: The Security Manager is deprecated and will be removed in a future release 2023-04-02 16:19:52.700 WARN (main) [] o.e.j.x.XmlConfiguration Unable to execute XmlConfiguration => java.security.AccessControlException: access denied ("java.io.FilePermission" "/" "read") at java.base/java.security.AccessControlContext.checkPermission(AccessControlContext.java:488) java.security.AccessControlException: access denied ("java.io.FilePermission" "/" "read") at java.security.AccessControlContext.checkPermission(AccessControlContext.java:488) ~[?:?] at java.security.AccessController.checkPermission(AccessController.java:1071) ~[?:?] at java.lang.SecurityManager.checkPermission(SecurityManager.java:411) ~[?:?] at java.lang.SecurityManager.checkRead(SecurityManager.java:742) ~[?:?] at sun.nio.fs.UnixPath.checkRead(UnixPath.java:788) ~[?:?] at sun.nio.fs.UnixFileSystemProvider.newDirectoryStream(UnixFileSystemProvider.java:448) ~[?:?] at sun.nio.fs.UnixPath.toRealPath(UnixPath.java:912) ~[?:?] at org.eclipse.jetty.util.resource.PathResource.<init>(PathResource.java:226) ~[jetty-util-10.0.13.jar:10.0.13] at org.eclipse.jetty.util.resource.Resource.newResource(Resource.java:204) ~[jetty-util-10.0.13.jar:10.0.13] at org.eclipse.jetty.util.resource.Resource.newResource(Resource.java:178) ~[jetty-util-10.0.13.jar:10.0.13] at org.eclipse.jetty.xml.XmlConfiguration.lambda$main$4(XmlConfiguration.java:1835) ~[jetty-xml-10.0.13.jar:10.0.13] at java.security.AccessController.doPrivileged(AccessController.java:571) ~[?:?] at org.eclipse.jetty.xml.XmlConfiguration.main(XmlConfiguration.java:1818) ~[jetty-xml-10.0.13.jar:10.0.13] at jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104) ~[?:?] at java.lang.reflect.Method.invoke(Method.java:578) ~[?:?] at org.eclipse.jetty.start.Main.invokeMain(Main.java:229) ~[start.jar:10.0.13] at org.eclipse.jetty.start.Main.start(Main.java:527) ~[start.jar:10.0.13] at org.eclipse.jetty.start.Main.main(Main.java:76) ~[start.jar:10.0.13] java.lang.reflect.InvocationTargetException at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:119) at java.base/java.lang.reflect.Method.invoke(Method.java:578) at org.eclipse.jetty.start.Main.invokeMain(Main.java:229) at org.eclipse.jetty.start.Main.start(Main.java:527) at org.eclipse.jetty.start.Main.main(Main.java:76) Caused by: java.security.AccessControlException: access denied ("java.io.FilePermission" "/" "read") at java.base/java.security.AccessControlContext.checkPermission(AccessControlContext.java:488) at java.base/java.security.AccessController.checkPermission(AccessController.java:1071) at java.base/java.lang.SecurityManager.checkPermission(SecurityManager.java:411) at java.base/java.lang.SecurityManager.checkRead(SecurityManager.java:742) at java.base/sun.nio.fs.UnixPath.checkRead(UnixPath.java:788) at java.base/sun.nio.fs.UnixFileSystemProvider.newDirectoryStream(UnixFileSystemProvider.java:448) at java.base/sun.nio.fs.UnixPath.toRealPath(UnixPath.java:912) at org.eclipse.jetty.util.resource.PathResource.<init>(PathResource.java:226) at org.eclipse.jetty.util.resource.Resource.newResource(Resource.java:204) at org.eclipse.jetty.util.resource.Resource.newResource(Resource.java:178) at org.eclipse.jetty.xml.XmlConfiguration.lambda$main$4(XmlConfiguration.java:1835) at java.base/java.security.AccessController.doPrivileged(AccessController.java:571) at org.eclipse.jetty.xml.XmlConfiguration.main(XmlConfiguration.java:1818) at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104) ... 4 more java.lang.reflect.InvocationTargetException at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:119) at java.base/java.lang.reflect.Method.invoke(Method.java:578) at org.eclipse.jetty.start.Main.invokeMain(Main.java:229) at org.eclipse.jetty.start.Main.start(Main.java:527) at org.eclipse.jetty.start.Main.main(Main.java:76) Caused by: java.security.AccessControlException: access denied ("java.io.FilePermission" "/" "read") at java.base/java.security.AccessControlContext.checkPermission(AccessControlContext.java:488) at java.base/java.security.AccessController.checkPermission(AccessController.java:1071) at java.base/java.lang.SecurityManager.checkPermission(SecurityManager.java:411) at java.base/java.lang.SecurityManager.checkRead(SecurityManager.java:742) at java.base/sun.nio.fs.UnixPath.checkRead(UnixPath.java:788) at java.base/sun.nio.fs.UnixFileSystemProvider.newDirectoryStream(UnixFileSystemProvider.java:448) at java.base/sun.nio.fs.UnixPath.toRealPath(UnixPath.java:912) at org.eclipse.jetty.util.resource.PathResource.<init>(PathResource.java:226) at org.eclipse.jetty.util.resource.Resource.newResource(Resource.java:204) at org.eclipse.jetty.util.resource.Resource.newResource(Resource.java:178) at org.eclipse.jetty.xml.XmlConfiguration.lambda$main$4(XmlConfiguration.java:1835) at java.base/java.security.AccessController.doPrivileged(AccessController.java:571) at org.eclipse.jetty.xml.XmlConfiguration.main(XmlConfiguration.java:1818) at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104) ... 4 moreUsage: java -jar $JETTY_HOME/start.jar [options] [properties] [configs] java -jar $JETTY_HOME/start.jar --help # for more information {code} Note: the warnings on open file limit and max processes limit do not seem related; the error still remains after {{ulimit -n 65000}} and {{{}ulimit -u 2088{}}}. {{ulimit -u 2088}} is macOS's hard limit. I have attached a full output log ({{{}solr.log{}}}) with {{_JAVA_OPTIONS}} set to {{{}-Djava.security.debug=access,failure,policy{}}}. I was running that on x86_64 macOS 13.3 (Ventura). (Note: [https://github.com/apache/solr/commit/f7fe594cdadeadd1e0061075a55a529793e72462] was applied.) A minimum reproducer: # Download and extract pre-built OpenJDK 20 binaries from [https://jdk.java.net/20/] (macOS / AArch64 or macOS / x64). # Download and extract Solr 9.2 binary release from [https://www.apache.org/dyn/closer.lua/solr/solr/9.2.0/solr-9.2.0.tgz?action=download] . # {code:java} export PATH="$PWD/jdk-20.jdk/Contents/Home/bin:$PATH"{code} # {code:java} ./solr-9.2.0/bin/solr start -f{code} # See error. This failure was observed while packaging OpenJDK 20 for Homebrew at [https://github.com/Homebrew/homebrew-core/pull/126319] . At the time of testing, Solr 9.1.1 was used. So I believe this error occurred on earlier versions, too. Thank you! Please let me know if any additional information is needed. -- This message was sent by Atlassian Jira (v8.20.10#820010) --------------------------------------------------------------------- To unsubscribe, e-mail: issues-unsubscr...@solr.apache.org For additional commands, e-mail: issues-h...@solr.apache.org