Не компилируется java файлы

Обсуждение вопросов, связанных с системой проведения турниров ejudge.
Post Reply
AndreyP
Posts:16
Joined:03 October 2011, 12:54
Не компилируется java файлы

Post by AndreyP » 17 September 2012, 10:31

Готовлюсь к олимпиаде. Установил Ejudge 2.3.24 и ядро 3.4.10+patch.
При отправке java файла получаю следующее сообщение:

Code: Select all

"javac" -source 1.6 -Xlint:unchecked  a_4.java
Error occurred during initialization of VM
Could not reserve enough space for object heap
Could not create the Java virtual machine.
[/size]
в логах:

Code: Select all

Mon Sep 17 10:02:05 2012:info:scan_dir: found 'G000DDINDAJQ' (priority 0)
Mon Sep 17 10:02:05 2012:info:Move: /home/ejudge/judges/compile/var/compile/queue/dir/G000DDINDAJQ -> /home/ejudge/judges/compile/var/compile/queue/out/30216_ejudge-2012_G000DDINDAJQ
Mon Sep 17 10:02:05 2012:info:reading file /home/ejudge/judges/compile/var/compile/queue/out/30216_ejudge-2012_G000DDINDAJQ
Mon Sep 17 10:02:05 2012:info:Copy: /home/ejudge/judges/compile/var/compile/src/G000DDINDAJQ.java -> /var/lib/ejudge/compile/work/000013.java
task_Start: execv(3): /home/ejudge/judges/compile/scripts/javac 000013.java 000013.jar 0</dev/null 1>>/var/lib/ejudge/compile/work/log 2>&1
Mon Sep 17 10:02:05 2012:info:Compilation failed
Mon Sep 17 10:02:05 2012:info:Copy: /var/lib/ejudge/compile/work/log -> /home/ejudge/judges/compile/var/compile/000001/report/000013
Mon Sep 17 10:02:05 2012:info:writing file /home/ejudge/judges/compile/var/compile/000001/status/in/30216_ejudge-2012_000013
Mon Sep 17 10:02:05 2012:info:Move: /home/ejudge/judges/compile/var/compile/000001/status/in/30216_ejudge-2012_000013 -> /home/ejudge/judges/compile/var/compile/000001/status/dir/000013
Mon Sep 17 10:02:05 2012:info:clear_directory: /var/lib/ejudge/compile/work cleared
[/size]
Файлы настроек java.cfg:

Code: Select all

version="1.6.0_24"
arg=""
long_name="Java JDK"
src_sfx=".java"
exe_sfx=".jar"
arch="java"
JAVARUN="java"
JAVACRUN="javac"
JAVADIR="/usr"
JAVAVER="1.6"
[/size]
файл serve.cfg:

Code: Select all

...
compile_max_vm_size = 512M
compile_max_file_size = 32M
....
[language]
id = 18
short_name = "javac"
long_name = "Java JDK 1.6.0_24"
arch = "java"
src_sfx = ".java"
exe_sfx = ".jar"
max_vm_size = 512M
....
[tester]
name = Linux-java
arch = "java"
abstract
no_core_dump
kill_signal = TERM
memory_limit_type = "java"
secure_exec_type = "java"
start_cmd = "runjava"
start_env = "LANG=C"
start_env = "EJUDGE_PREFIX_DIR"
[/size]
Подскажите, как решить проблему.
При попытке скомпилировать в ручную получаю:

Code: Select all

ejudge@ejudge-2012:/var/lib/ejudge/compile/work$ /home/ejudge/judges/compile/scripts/javac 00002.java 00002.jar
"javac" -source 1.6 -Xlint:unchecked  a_4.java
"/usr/bin/jar" cvfm "00002.jar" a_4.mf *.class
added manifest
adding: a_4.class(in = 1078) (out= 670)(deflated 37%)

ejudge@ejudge-2012:/var/lib/ejudge/compile/work$ /home/ejudge/judges/compile/scripts/javac 00001.java 00001.jar
"javac" -source 1.6 -Xlint:unchecked  a_b.java
"/usr/bin/jar" cvfm "00001.jar" a_b.mf *.class
added manifest
adding: a_b.class(in = 584) (out= 382)(deflated 34%)
[/size]

cher
Posts:1153
Joined:13 March 2004, 17:00
Contact:

Re: Не компилируется java файлы

Post by cher » 18 September 2012, 12:12

если это 64-битная система, попробуйте увеличить compile_max_vm_size

Code: Select all

compile_max_vm_size = 1G

AndreyP
Posts:16
Joined:03 October 2011, 12:54

Re: Не компилируется java файлы

Post by AndreyP » 18 September 2012, 15:34

Спасибо, проблема разрешилась.
Но почему нужно так много памяти для javac? На сервере всего 1G.

cher
Posts:1153
Joined:13 March 2004, 17:00
Contact:

Re: Не компилируется java файлы

Post by cher » 18 September 2012, 16:03

Ставить на 1GB памяти 64-битную систему - это не очень удачное решение.

AndreyP
Posts:16
Joined:03 October 2011, 12:54

Re: Не компилируется java файлы

Post by AndreyP » 18 September 2012, 18:20

Система Ubuntu стоит как клиент для Hyper-V x64, а на момент проведения олимпиады поднимаю до 3G. А для судентов она работает с 1G.
Last edited by AndreyP on 29 September 2012, 18:17, edited 1 time in total.

sergpet
Posts:15
Joined:28 November 2009, 09:40

Re: Не компилируется java файлы

Post by sergpet » 29 September 2012, 18:02

Кстати, обнаружил интересную ситуацию, если ставить

compile_max_vm_size более 1 G то Check contests settings пишет error.

Поставил 1G, отправил в систему 40 посылок на яве, и сделал реджадж, получилось так что часть посылок оттестировалось нормально, а часть дало Сompile error со следующей ошибкой.
javac" -source 1.6 -Xlint:unchecked Main.java
#
# A fatal error has been detected by the Java Runtime Environment:
#
# java.lang.OutOfMemoryError: requested 32744 bytes for ChunkPool::allocate. Out of swap space?
#
# Internal Error (allocation.cpp:117), pid=3922, tid=140120320116480
# Error: ChunkPool::allocate
#
# JRE version: 6.0_18-b18
# Java VM: OpenJDK 64-Bit Server VM (14.0-b16 mixed mode linux-amd64 )
# Derivative: IcedTea6 1.8.13
# Distribution: Debian GNU/Linux 6.0.4 (squeeze), package 6b18-1.8.13-0+squeeze2
# An error report file with more information is saved as:
# /home/ejudge/judges/compile/var/work/compile/hs_err_pid3922.log


The system is out of resources.
Consult the following stack trace for details.
java.lang.OutOfMemoryError
at java.io.UnixFileSystem.getBooleanAttributes0(Native Method)
at java.io.UnixFileSystem.getBooleanAttributes(UnixFileSystem.java:243)
at java.io.File.isFile(File.java:795)
at com.sun.tools.javac.util.JavacFileManager.listDirectory(JavacFileManager.java:336)
at com.sun.tools.javac.util.JavacFileManager.list(JavacFileManager.java:926)
at com.sun.tools.javac.jvm.ClassReader.fillIn(ClassReader.java:2091)
at com.sun.tools.javac.jvm.ClassReader.complete(ClassReader.java:1795)
at com.sun.tools.javac.code.Symbol.complete(Symbol.java:400)
at com.sun.tools.javac.comp.Enter.visitTopLevel(Enter.java:286)
at com.sun.tools.javac.tree.JCTree$JCCompilationUnit.accept(JCTree.java:454)
at com.sun.tools.javac.comp.Enter.classEnter(Enter.java:250)
at com.sun.tools.javac.comp.Enter.classEnter(Enter.java:264)
at com.sun.tools.javac.comp.Enter.complete(Enter.java:458)
at com.sun.tools.javac.comp.Enter.main(Enter.java:443)
at com.sun.tools.javac.main.JavaCompiler.enterTrees(JavaCompiler.java:836)
at com.sun.tools.javac.main.JavaCompiler.compile(JavaCompiler.java:741)
at com.sun.tools.javac.main.Main.compile(Main.java:380)
at com.sun.tools.javac.main.Main.compile(Main.java:306)
at com.sun.tools.javac.main.Main.compile(Main.java:297)
at com.sun.tools.javac.Main.compile(Main.java:82)
at com.sun.tools.javac.Main.main(Main.java:67)
#
# If you would like to submit a bug report, please include
# instructions how to reproduce the bug and visit:
# http://icedtea.classpath.org/bugzilla
#
Aborted
Какие могут быть мысли на этот счет ?

cher
Posts:1153
Joined:13 March 2004, 17:00
Contact:

Re: Не компилируется java файлы

Post by cher » 29 September 2012, 21:23

Какая у вас версия ejudge?

sergpet
Posts:15
Joined:28 November 2009, 09:40

Re: Не компилируется java файлы

Post by sergpet » 29 September 2012, 21:50

самая последняя: 2.3.24,
OS: debian 6.0.5, 64b. 2.6.32.5

cher
Posts:1153
Joined:13 March 2004, 17:00
Contact:

Re: Не компилируется java файлы

Post by cher » 26 October 2012, 23:35

Проблема будет исправлена в следующей версии.

Post Reply