javac memory error

Обсуждение вопросов, связанных с системой проведения турниров ejudge.
vyahhi
Posts:28
Joined:15 September 2011, 15:03
javac memory error

Post by vyahhi » 15 September 2011, 15:08

Решения, посланные на Java получают "Compilation error":

Code: Select all

"javac" -source 1.6 -Xlint:unchecked  Main.java
Error occurred during initialization of VM
Could not reserve enough space for object heap
Could not create the Java virtual machine.
При этом на машине (Ubuntu, 2.6.32-5-xen-amd64):

Code: Select all

Mem:   7333724k total,  5158860k used,  2174864k free,  1005852k buffers
Swap: 10485752k total,    61656k used, 10424096k free,  3641192k cached
С остальными языками (С++, Python) всё ОК.

Не подскажите, в чём может быть проблема?

P.S. Если сделать с тем же кодом

Code: Select all

javac -source 1.6 -Xlint:unchecked  Main.java
в консоли, то всё хорошо компилируется.


vk
Posts:165
Joined:24 August 2007, 13:44
Location:Ханты-Мансийск
Contact:

Re: javac memory error

Post by vk » 16 September 2011, 11:14


vyahhi
Posts:28
Joined:15 September 2011, 15:03

Re: javac memory error

Post by vyahhi » 16 September 2011, 14:47

Изменение

Code: Select all

compile_max_vm_size = 256M
на

Code: Select all

compile_max_vm_size = 512M
в /home/judges/000003/conf/serve.cfg + ejudge-control stop + ejudge-control start + Restart management не помогло :(

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

Re: javac memory error

Post by cher » 19 September 2011, 17:15

попробуйте исправить в /home/judges/compile/conf/compile.cfg

vyahhi
Posts:28
Joined:15 September 2011, 15:03

Re: javac memory error

Post by vyahhi » 19 September 2011, 17:42

Добавил туда строку (её вообще не было):

Code: Select all

compile_max_vm_size = 512M
Не помогло.

Кстати, этот файл (/home/judges/compile/conf/compile.cfg) же

Code: Select all

# Generated by ejudge-configure-compilers, version 2.3.19+ (SVN r6401)
# Generation date: 2011/09/17 13:30:36
Всё равно перетёрся бы при следующем запуске ejudge-configure-compilers?

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

Re: javac memory error

Post by cher » 19 September 2011, 19:20

Может поставить размер 1G?

vyahhi
Posts:28
Joined:15 September 2011, 15:03

Re: javac memory error

Post by vyahhi » 20 September 2011, 16:05

Всё не помогло :(

vyahhi
Posts:28
Joined:15 September 2011, 15:03

Re: javac memory error

Post by vyahhi » 20 September 2011, 16:21

А возможно ли куда-то ручками прописать опции для javac (например compile/conf/lang.d/javac.cfg?). Откуда он вызывается и берёт "-source 1.6 -Xlint:unchecked"?

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

Re: javac memory error

Post by cher » 21 September 2011, 11:31

Смотрите в /home/judges/compile/scripts/javac и в исходниках файл extra/ej-javac.c

Но мне кажется, что где-то у вас с конфигурацией напутано.

vyahhi
Posts:28
Joined:15 September 2011, 15:03

Re: javac memory error

Post by vyahhi » 21 September 2011, 11:56

Мне тоже кажется, что проблема в конфигах, но никак не пойму, что не так... Кстати, если прописать ручками в /home/judges/compile/scripts/javac флаг -J-Xmx512M, то уже падает не javac от недостатка памяти, а jar :)

Code: Select all

"javac" -source 1.6 -J-Xmx512M -Xlint:unchecked  Main.java
"/usr/bin/jar" cvfm "000024.jar" Main.mf *.class
Error occurred during initialization of VM
Could not reserve enough space for object heap
Could not create the Java virtual machine.

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

Re: javac memory error

Post by cher » 23 September 2011, 07:54

А можете выложить или прислать конфигурационные файлы serve.cfg турнира и compile.cfg?

vyahhi
Posts:28
Joined:15 September 2011, 15:03

Re: javac memory error

Post by vyahhi » 24 September 2011, 16:57

/home/judges/000003/conf/serve.cfg:

Code: Select all

# -*- coding: utf-8 -*-
# $Id$
contest_id = 3

contest_time = 0
score_system = acm
board_fog_time = 0
board_unfog_time = 0
standings_locale = "en"

compile_dir = "../../compile/var/compile"

team_enable_src_view
team_enable_ce_view
problem_navigation


compile_max_vm_size = 512M
compile_max_stack_size = 256M
compile_max_file_size = 32M

ignore_success_time

stand_fancy_style
stand_show_ok_time
stand_enable_penalty

cr_serialization_key = 22723
show_astr_time
secure_run
detect_violations
enable_memory_limit_error
advanced_layout
enable_l10n
team_download_time = 0
cpu_bogomips = 4789

[language]
id = 2
short_name = "gcc"
long_name = "GNU C 4.4.5"
src_sfx = ".c"

[language]
id = 3
short_name = "g++"
long_name = "GNU C++ 4.4.5"
src_sfx = ".cpp"

[language]
id = 13
short_name = "python"
long_name = "Python 2.6.6"
arch = "linux-shared"
src_sfx = ".py"

[language]
id = 14
short_name = "perl"
long_name = "Perl 5.10.1"
arch = "linux-shared"
src_sfx = ".pl"

[language]
id = 18
short_name = "javac"
long_name = "Java JDK 1.6.0_26"
arch = "java"
src_sfx = ".java"
exe_sfx = ".jar"
disabled
max_vm_size = 1G

[language]
id = 21
short_name = "ruby"
long_name = "Ruby 1.8.7"
arch = "linux-shared"
src_sfx = ".rb"

[problem]
abstract
short_name = "Generic"
use_stdin
use_stdout
xml_file = "statement.xml"
test_sfx = ".dat"
use_corr
corr_dir = "%Ps"
corr_sfx = ".ans"
time_limit = 1
real_time_limit = 5
max_vm_size = 64M
max_stack_size = 64M
max_file_size = 64M
check_cmd = "check"

[problem]
id = 1
super = "Generic"
short_name = "AA"
long_name = "No Problem"
standard_checker = "cmp_int"

[problem]
id = 2
super = "Generic"
short_name = "A"
long_name = "ACGT"
standard_checker = "cmp_int_seq"

[problem]
id = 3
super = "Generic"
short_name = "B"
long_name = "Motif Finding"
time_limit = 2

[problem]
id = 4
super = "Generic"
short_name = "C"
long_name = "Motif Finding (Hard)"
time_limit = 2

[problem]
id = 5
super = "Generic"
short_name = "D"
long_name = "Protein Sequence"
max_vm_size = 32M

[problem]
id = 6
super = "Generic"
short_name = "E"
long_name = "Consensus & Profile"

[problem]
id = 7
super = "Generic"
short_name = "F"
long_name = "Pairwise Alignment"

[problem]
id = 8
super = "Generic"
short_name = "G"
long_name = "Linear Space Pairwise Alignment (Hard)"
max_vm_size = 16M

[problem]
id = 9
super = "Generic"
short_name = "H"
long_name = "Longest Palindromic Subsequence"
standard_checker = "cmp_int"

[tester]
name = Generic
arch = ""
abstract
no_core_dump
enable_memory_limit_error
kill_signal = KILL
memory_limit_type = "default"
secure_exec_type = "static"
clear_env
start_env = "PATH=/usr/local/bin:/usr/bin:/bin"
start_env = "HOME"
check_dir = "/home/ejudge/work"

[tester]
name = Linux-shared
arch = "linux-shared"
abstract
no_core_dump
enable_memory_limit_error
kill_signal = KILL
memory_limit_type = "default"
secure_exec_type = "dll"
clear_env
start_env = "PATH=/usr/local/bin:/usr/bin:/bin"
start_env = "HOME"
check_dir = "/home/ejudge/work"

[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"
check_dir = "/home/ejudge/work"

[tester]
any
super = Generic

[tester]
any
super = Linux-shared
arch = linux-shared

[tester]
any
super = Linux-java
arch = java

# audit: created 2011/09/09 20:42:38 1 (vyahhi) 192.168.0.2
# audit: edited 2011/09/09 20:44:30 1 (vyahhi) 192.168.0.2
# audit: edited 2011/09/12 20:56:59 1 (vyahhi) 192.168.0.20
# audit: edited 2011/09/12 21:16:38 1 (vyahhi) 192.168.0.20
# audit: edited 2011/09/13 00:57:07 1 (vyahhi) 192.168.0.20
# audit: edited 2011/09/13 11:49:31 1 (vyahhi) 192.168.211.173
# audit: edited 2011/09/13 11:50:21 1 (vyahhi) 192.168.211.173
# audit: edited 2011/09/13 12:10:57 1 (vyahhi) 192.168.211.173
# audit: edited 2011/09/13 12:39:58 1 (vyahhi) 192.168.211.173
# audit: edited 2011/09/13 12:41:55 1 (vyahhi) 192.168.211.173
# audit: edited 2011/09/13 16:48:37 1 (vyahhi) 192.168.211.173
# audit: edited 2011/09/15 16:00:57 1 (vyahhi) 192.168.211.55
# audit: edited 2011/09/15 16:40:42 1 (vyahhi) 192.168.211.55
# audit: edited 2011/09/15 16:42:02 1 (vyahhi) 192.168.211.55
# audit: edited 2011/09/15 16:50:23 1 (vyahhi) 192.168.211.55
# audit: edited 2011/09/15 16:50:45 1 (vyahhi) 192.168.211.55
# audit: edited 2011/09/15 16:53:53 1 (vyahhi) 192.168.211.55
# audit: edited 2011/09/15 16:55:37 1 (vyahhi) 192.168.211.55
# audit: edited 2011/09/15 16:57:08 1 (vyahhi) 192.168.211.55
# audit: edited 2011/09/17 12:32:39 1 (vyahhi) 192.168.211.132
# audit: edited 2011/09/17 12:43:29 1 (vyahhi) 192.168.211.132
# audit: edited 2011/09/17 12:53:52 1 (vyahhi) 192.168.211.132
# audit: edited 2011/09/17 13:07:52 1 (vyahhi) 192.168.211.132
# audit: edited 2011/09/17 14:11:25 1 (vyahhi) 192.168.211.132
# audit: edited 2011/09/17 14:15:10 1 (vyahhi) 192.168.211.132
# audit: edited 2011/09/17 14:42:24 1 (vyahhi) 192.168.211.132
# audit: edited 2011/09/17 14:43:30 1 (vyahhi) 192.168.211.132
# audit: edited 2011/09/17 14:44:51 1 (vyahhi) 192.168.211.132
# audit: edited 2011/09/17 14:46:28 1 (vyahhi) 192.168.211.132
# audit: edited 2011/09/17 15:43:58 1 (vyahhi) 192.168.211.132
# audit: edited 2011/09/17 15:45:28 1 (vyahhi) 192.168.211.132
# audit: edited 2011/09/17 16:23:35 1 (vyahhi) 192.168.211.132
# audit: edited 2011/09/17 16:24:57 1 (vyahhi) 192.168.211.132
# audit: edited 2011/09/17 16:25:59 1 (vyahhi) 192.168.211.132
# audit: edited 2011/09/17 17:31:06 1 (vyahhi) 192.168.211.132
# audit: edited 2011/09/17 17:34:19 1 (vyahhi) 192.168.211.132
# audit: edited 2011/09/17 17:35:01 1 (vyahhi) 192.168.211.132
# audit: edited 2011/09/17 17:52:44 1 (vyahhi) 192.168.211.132
# audit: edited 2011/09/18 09:26:17 1 (vyahhi) 92.100.89.141
# audit: edited 2011/09/19 16:27:22 1 (vyahhi) 192.168.0.2
# audit: edited 2011/09/19 17:06:07 1 (vyahhi) 192.168.0.2
# audit: edited 2011/09/19 18:09:30 1 (vyahhi) 192.168.0.2
# audit: edited 2011/09/19 18:09:53 1 (vyahhi) 192.168.0.2
# audit: edited 2011/09/19 18:11:23 1 (vyahhi) 192.168.0.2
# audit: edited 2011/09/19 18:52:05 1 (vyahhi) 192.168.0.2
# audit: edited 2011/09/20 09:08:29 1 (vyahhi) 192.168.0.2
# audit: edited 2011/09/20 09:10:35 1 (vyahhi) 192.168.0.2
# audit: edited 2011/09/20 09:19:01 1 (vyahhi) 192.168.0.2
# audit: edited 2011/09/20 09:45:34 1 (vyahhi) 192.168.0.2
# audit: edited 2011/09/20 09:51:56 1 (vyahhi) 192.168.0.2
# audit: edited 2011/09/20 16:30:16 1 (vyahhi) 192.168.0.2
# audit: edited 2011/09/20 17:08:06 1 (vyahhi) 192.168.0.2
# audit: edited 2011/09/21 15:04:00 1 (vyahhi) 192.168.211.151
# audit: edited 2011/09/21 15:04:23 1 (vyahhi) 192.168.211.151
# audit: edited 2011/09/21 15:05:33 1 (vyahhi) 192.168.211.151
# audit: edited 2011/09/21 16:00:49 1 (vyahhi) 192.168.211.151
# audit: edited 2011/09/21 16:01:10 1 (vyahhi) 192.168.211.151
# audit: edited 2011/09/24 11:13:12 1 (vyahhi) 192.168.0.2
# audit: edited 2011/09/24 11:13:43 1 (vyahhi) 192.168.0.2
/home/judges/compile/conf/compile.cfg:

Code: Select all

# Generated by ejudge-configure-compilers, version 2.3.19+ (SVN r6401)
# Generation date: 2011/09/17 13:30:36

root_dir = /home/judges/compile
cr_serialization_key = 22723

sleep_time = 1000

lang_config_dir = "/home/judges/compile/conf/lang.d"

[language]
id = 1
short_name = "fpc"
long_name = "Free Pascal"
src_sfx = ".pas"
cmd = "fpc"

[language]
id = 2
short_name = "gcc"
long_name = "GNU C"
src_sfx = ".c"
cmd = "gcc"

[language]
id = 3
short_name = "g++"
long_name = "GNU C++"
src_sfx = ".cpp"
cmd = "g++"

[language]
id = 4
short_name = "gpc"
long_name = "GNU Pascal"
src_sfx = ".pas"
cmd = "gpc"

[language]
id = 5
short_name = "gcj"
long_name = "GNU Java"
src_sfx = ".java"
insecure
cmd = "gcj"
arch = "linux-shared"

[language]
id = 6
short_name = "g77"
long_name = "GNU Fortran 77"
src_sfx = ".for"
cmd = "g77"

[language]
id = 7
short_name = "tpc"
long_name = "Borland Pascal"
src_sfx = ".pas"
exe_sfx = ".exe"
cmd = "tpc"
arch = "dos"

[language]
id = 8
short_name = "dcc"
long_name = "Borland Delphi 6 (Kylix)"
src_sfx = ".pas"
cmd = "dcc"
arch = "linux-shared"

[language]
id = 9
short_name = "bcc"
long_name = "Borland C"
src_sfx = ".c"
exe_sfx = ".exe"
cmd = "bcc"
arch = "dos"

[language]
id = 10
short_name = "bpp"
long_name = "Borland C++"
src_sfx = ".cpp"
exe_sfx = ".exe"
cmd = "bpp"
arch = "dos"

[language]
id = 11
short_name = "yabasic"
long_name = "YaBasic"
src_sfx = ".bas"
cmd = "yabasic"
arch = "linux-shared"

[language]
id = 12
short_name = "mzscheme"
long_name = "MzScheme"
src_sfx = ".scm"
cmd = "mzscheme"
arch = "linux-shared"

[language]
id = 13
short_name = "python"
long_name = "Python"
src_sfx = ".py"
cmd = "python"
arch = "linux-shared"

[language]
id = 14
short_name = "perl"
long_name = "Perl"
src_sfx = ".pl"
cmd = "perl"
arch = "linux-shared"

[language]
id = 15
short_name = "gprolog"
long_name = "GNU Prolog"
src_sfx = ".pro"
cmd = "gprolog"
arch = "linux-shared"

[language]
id = 16
short_name = "qb"
long_name = "Microsoft Quick Basic"
src_sfx = ".bas"
exe_sfx = ".exe"
cmd = "qb"
arch = "dos"

[language]
id = 18
short_name = "javac"
long_name = "Java JDK"
src_sfx = ".java"
exe_sfx = ".jar"
cmd = "javac"
arch = "java"

[language]
id = 19
short_name = "mcs"
long_name = "Mono C#"
src_sfx = ".cs"
exe_sfx = ".exe"
insecure
cmd = "mcs"
arch = "msil"

[language]
id = 20
short_name = "vbnc"
long_name = "Mono Visual Basic .NET"
src_sfx = ".vb"
exe_sfx = ".exe"
insecure
cmd = "vbnc"
arch = "msil"

[language]
id = 21
short_name = "ruby"
long_name = "Ruby"
src_sfx = ".rb"
cmd = "ruby"
arch = "linux-shared"

[language]
id = 22
short_name = "php"
long_name = "PHP"
src_sfx = ".php"
cmd = "php"
arch = "linux-shared"

[language]
id = 23
short_name = "python3"
long_name = "Python3"
src_sfx = ".py"
cmd = "python3"
arch = "linux-shared"

[language]
id = 24
short_name = "kumir"
long_name = "Kumir"
src_sfx = ".kum"
cmd = "kumir"
arch = "linux-shared"

[language]
id = 25
short_name = "make"
long_name = "Generic build"
src_sfx = ".tar"
binary
cmd = "make"
arch = "linux-shared"

[language]
id = 26
short_name = "ghc"
long_name = "The Glasgow Haskell Compiler"
src_sfx = ".hs"
insecure
cmd = "ghc"
arch = "linux-shared"

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

Re: javac memory error

Post by cher » 27 September 2011, 11:28

Все выглядит нормально.

Можно попробовать в скрипт javac вставить печать лимитов:
bash -c 'ulimit -a'
посмотреть, что выводится

vyahhi
Posts:28
Joined:15 September 2011, 15:03

Re: javac memory error

Post by vyahhi » 27 September 2011, 17:52

Code: Select all

core file size          (blocks, -c) 0
data seg size           (kbytes, -d) unlimited
scheduling priority             (-e) 0
file size               (blocks, -f) 32768
pending signals                 (-i) 16382
max locked memory       (kbytes, -l) 64
max memory size         (kbytes, -m) unlimited
open files                      (-n) 1024
pipe size            (512 bytes, -p) 8
POSIX message queues     (bytes, -q) 819200
real-time priority              (-r) 0
stack size              (kbytes, -s) 262144
cpu time               (seconds, -t) unlimited
max user processes              (-u) unlimited
virtual memory          (kbytes, -v) 1048576
file locks                      (-x) unlimited
"javac" -source 1.6 -Xlint:unchecked  Main.java
Error occurred during initialization of VM
Could not reserve enough space for object heap
Could not create the Java virtual machine.

Post Reply