judge-server icon indicating copy to clipboard operation
judge-server copied to clipboard

Error loading java.security file

Open EnderturtleOrz opened this issue 2 years ago • 1 comments

I wrote a JAVA17.py for jdk 17 testing, But I cannot pass the self-test.

Environment: WSL2, Docker ubuntu 22.04, openjdk-17

Here are my config.yml, JAVA17.py, and the log.

config.yml

runtime:
  as_x64: /usr/bin/x86_64-linux-gnu-as
  as_x86: /usr/bin/as
  awk: /usr/bin/mawk
  cat: /usr/bin/cat
  g++: /usr/bin/g++
  g++11: /usr/bin/g++
  g++14: /usr/bin/g++
  g++17: /usr/bin/g++
  g++20: /usr/bin/g++-11
  gcc: /usr/bin/gcc
  gcc11: /usr/bin/gcc
  ld_x64: /usr/bin/x86_64-linux-gnu-ld
  ld_x86: /usr/bin/ld
  perl: /usr/bin/perl
  python3: /usr/bin/python3
  sed: /usr/bin/sed
  java17: /usr/lib/jvm/java-17-openjdk-amd64/bin/java
  javac17: /usr/lib/jvm/java-17-openjdk-amd64/bin/javac

problem_storage_globs:
  - /problems/*

JAVA17.py (mainly copy from JAVA.py)

from dmoj.executors.java_executor import JavacExecutor


class Executor(JavacExecutor):
    compiler = 'javac17'
    vm = 'java17'
    jvm_regex = r'java-17-|openjdk17'

    test_program = """\
import java.io.IOException;

interface IORunnable {
    public void run() throws IOException;
}

public class self_test {
    public static void run(IORunnable target) throws IOException {
        target.run();
    }

    public static void main(String[] args) throws IOException {
        run(() -> {
            byte[] buffer = new byte[4096];
            int read;
            while ((read = System.in.read(buffer)) >= 0)
                System.out.write(buffer, 0, read);
        });
    }
}"""

    def get_compile_args(self):
        return [self.get_compiler(), '-encoding', 'UTF-8', self._code]

log

   Self-testing JAVA17: Failed
2023-08-29 12:21:50     obj.compile()
2023-08-29 12:21:50   File "/judge/dmoj/executors/compiled_executor.py", line 212, in compile
2023-08-29 12:21:50     self.warning = self.get_compile_output(process)
2023-08-29 12:21:50   File "/judge/dmoj/executors/compiled_executor.py", line 194, in get_compile_output
2023-08-29 12:21:50     self.handle_compile_error(output)
2023-08-29 12:21:50   File "/judge/dmoj/executors/java_executor.py", line 276, in handle_compile_error
2023-08-29 12:21:50     raise CompileError(output)
2023-08-29 12:21:50 dmoj.error.CompileError: Exception in thread "main" java.lang.InternalError: Error loading java.security file
2023-08-29 12:21:50     at java.base/java.security.Security.initialize(Security.java:106)
2023-08-29 12:21:50     at java.base/java.security.Security$1.run(Security.java:84)
2023-08-29 12:21:50     at java.base/java.security.Security$1.run(Security.java:82)
2023-08-29 12:21:50     at java.base/java.security.AccessController.doPrivileged(AccessController.java:318)
2023-08-29 12:21:50     at java.base/java.security.Security.<clinit>(Security.java:82)
2023-08-29 12:21:50     at java.base/sun.security.util.SecurityProperties.getOverridableProperty(SecurityProperties.java:57)
2023-08-29 12:21:50     at java.base/sun.security.util.SecurityProperties.privilegedGetOverridable(SecurityProperties.java:48)
2023-08-29 12:21:50     at java.base/sun.security.util.SecurityProperties.includedInExceptions(SecurityProperties.java:72)
2023-08-29 12:21:50     at java.base/sun.security.util.SecurityProperties.<clinit>(SecurityProperties.java:36)
2023-08-29 12:21:50     at java.base/sun.security.util.FilePermCompat.<clinit>(FilePermCompat.java:45)
2023-08-29 12:21:50     at java.base/java.security.AccessControlContext.<init>(AccessControlContext.java:269)
2023-08-29 12:21:50     at java.base/java.security.AccessController.createWrapper(AccessController.java:647)
2023-08-29 12:21:50     at java.base/java.security.AccessController.doPrivileged(AccessController.java:460)
2023-08-29 12:21:50     at java.base/java.util.ResourceBundle$ResourceBundleProviderHelper.loadResourceBundle(ResourceBundle.java:3614)
2023-08-29 12:21:50     at java.base/java.util.ResourceBundle.loadBundle(ResourceBundle.java:1837)
2023-08-29 12:21:50     at java.base/java.util.ResourceBundle.findBundle(ResourceBundle.java:1768)
2023-08-29 12:21:50     at java.base/java.util.ResourceBundle.findBundle(ResourceBundle.java:1722)
2023-08-29 12:21:50     at java.base/java.util.ResourceBundle.findBundle(ResourceBundle.java:1722)
2023-08-29 12:21:50     at java.base/java.util.ResourceBundle.getBundleImpl(ResourceBundle.java:1656)
2023-08-29 12:21:50     at java.base/java.util.ResourceBundle.getBundleImpl(ResourceBundle.java:1575)
2023-08-29 12:21:50     at java.base/java.util.ResourceBundle.getBundleImpl(ResourceBundle.java:1549)
2023-08-29 12:21:50     at java.base/java.util.ResourceBundle.getBundle(ResourceBundle.java:932)
2023-08-29 12:21:50     at jdk.compiler/com.sun.tools.javac.util.JavacMessages.lambda$add$0(JavacMessages.java:121)
2023-08-29 12:21:50     at jdk.compiler/com.sun.tools.javac.util.JavacMessages.getBundles(JavacMessages.java:140)
2023-08-29 12:21:50     at jdk.compiler/com.sun.tools.javac.util.JavacMessages.setCurrentLocale(JavacMessages.java:80)
2023-08-29 12:21:50     at jdk.compiler/com.sun.tools.javac.util.JavacMessages.<init>(JavacMessages.java:112)
2023-08-29 12:21:50     at jdk.compiler/com.sun.tools.javac.util.JavacMessages.<init>(JavacMessages.java:89)
2023-08-29 12:21:50     at jdk.compiler/com.sun.tools.javac.util.JavacMessages.instance(JavacMessages.java:58)
2023-08-29 12:21:50     at jdk.compiler/com.sun.tools.javac.util.JCDiagnostic$Factory.<init>(JCDiagnostic.java:71)
2023-08-29 12:21:50     at jdk.compiler/com.sun.tools.javac.util.JCDiagnostic$Factory.instance(JCDiagnostic.java:61)
2023-08-29 12:21:50     at jdk.compiler/com.sun.tools.javac.util.Log.<init>(Log.java:319)
2023-08-29 12:21:50     at jdk.compiler/com.sun.tools.javac.util.Log.<init>(Log.java:256)
2023-08-29 12:21:50     at jdk.compiler/com.sun.tools.javac.util.Log.instance(Log.java:236)
2023-08-29 12:21:50     at jdk.compiler/com.sun.tools.javac.main.Main.compile(Main.java:203)
2023-08-29 12:21:50     at jdk.compiler/com.sun.tools.javac.main.Main.compile(Main.java:176)
2023-08-29 12:21:50     at jdk.compiler/com.sun.tools.javac.Main.compile(Main.java:64)
2023-08-29 12:21:50     at jdk.compiler/com.sun.tools.javac.Main.main(Main.java:50)

EnderturtleOrz avatar Aug 29 '23 05:08 EnderturtleOrz

Update: When I install jdk18, it is solved. But I don't know how it happened.

EnderturtleOrz avatar Aug 29 '23 09:08 EnderturtleOrz

I suspect this is fixed for good with https://github.com/DMOJ/judge-server/commit/95a432b68fce5c512a902a8f8226a01e4abaebf8.

Xyene avatar Jun 02 '24 21:06 Xyene