Проблема с ej-contests

Обсуждение вопросов, связанных с системой проведения турниров ejudge.
Post Reply
apathism
Posts:64
Joined:09 January 2009, 22:54
Location:Мытищи, Россия
Проблема с ej-contests

Post by apathism » 15 January 2009, 14:10

Снова я...
Поставил, скомпилировал и настроил ejudge-2.3.13 под Ubuntu 8.10. Патч к ядру применил (2.6.27.10-cher1).
Контест, созданный конфигурационным скриптом работает нормально.

Затем создал свой контест со следующим файлом serve.cfg

Code: Select all

contest_id = 2

contest_time = 0
score_system = acm
virtual
board_fog_time = 0
board_unfog_time = 0
standings_locale = "ru"

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

team_enable_src_view
team_enable_rep_view
team_enable_ce_view
ignore_compile_errors
problem_navigation




stand_fancy_style

cr_serialization_key = 22723
secure_run
detect_violations
enable_memory_limit_error
enable_l10n
team_download_time = 0

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

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

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

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

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

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

[problem]
abstract
short_name = "Generic"
use_stdin
use_stdout
xml_file = "%Ps.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
check_cmd = "check_%lPs"

[problem]
id = 1
super = "Generic"
short_name = "A"
long_name = "A+B"
use_stdin = 0
input_file = "apb.in"
use_stdout = 0
output_file = "apb.out"
standard_checker = "cmp_long_long"

[problem]
id = 2
super = "Generic"
short_name = "B"
long_name = "Слоны"
use_stdin = 0
input_file = "elephants.in"
use_stdout = 0
output_file = "elephants.out"
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 = "work-disk/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 = "work-disk/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 = "work-disk/work"

[tester]
any
super = Generic

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

[tester]
any
super = Linux-java
arch = java
и следующим файлом 000002.xml

Code: Select all

<?xml version="1.0" encoding="utf-8" ?>
<contest id="2"
         autoregister="yes"
         disable_team_password="yes"
         simple_registration="yes"
         personal="yes"
         allow_reg_data_edit="yes"
         managed="yes"
         run_managed="yes">
  <name>Тренировочный контест</name>
  <name_en>Training contest</name_en>
  <default_locale>ru</default_locale>
  <register_access default="allow"/>
  <users_access default="allow"/>
  <master_access default="allow"/>
  <judge_access default="allow"/>
  <team_access default="allow"/>
  <serve_control_access default="allow"/>
  <caps>
    <cap login = "admin">
      MASTER_SET,
    </cap>
  </caps>
  <field id="homepage" mandatory="no"/>
  <field id="inst" mandatory="no"/>
  <field id="city" mandatory="no"/>
  <contestants min="1" max="1" initial="1">
  </contestants>
</contest>
Все работает хорошо, пока не будет сделана посылка. После нее все cgi программы, кроме serve-control выдают "Permission denied".

Мне удалось выяснить, что падает ej-contests. Запустив его вручную можно увидеть следующее сообщение:

Code: Select all

Thu Jan 15 13:50:40 2009:2:emerg:Internal: html.c: 3498: assertion failed: tdur <= contest_dur

Aborted
Подскажите, пожалуйста, в чем может быть проблема.
Корябкин Иван

dk
Posts:129
Joined:25 March 2006, 19:37
Location:Москва, школа 179
Contact:

Re: Проблема с ej-contests

Post by dk » 15 January 2009, 21:26

Кажется мне, что я уже натыкался на грабли с виртуальным контестом неограниченной длины. Попробуйте сделать виртуальный контест ограниченным по времени.

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

Re: Проблема с ej-contests

Post by cher » 15 January 2009, 21:40

Да, виртуальные контесты неограниченной длины не поддерживаются.

apathism
Posts:64
Joined:09 January 2009, 22:54
Location:Мытищи, Россия

Re: Проблема с ej-contests

Post by apathism » 15 January 2009, 22:02

спасибо
Корябкин Иван

peter
Posts:7
Joined:31 January 2009, 00:43

Re: Проблема с ej-contests

Post by peter » 31 January 2009, 00:49

Чего хочет ej-contests?:

Code: Select all

Sat Jan 31 03:41:41 2009:info:ej-contests 2.3.13, compiled Wed Jan 21 14:13:08 2009
Sat Jan 31 03:41:41 2009:error:configuration for files plugin is not specified
/opt/ejudge/bin/ej-contests: cannot initialize files database plugin
в изначально сгенерированном ejudge.xml не было настройки плугинов, добавление тэга <plugins/> не помогло. Или о чем идет речь? Использование mysql в качестве базы данных не нужно.
Петр Ромов

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

Re: Проблема с ej-contests

Post by cher » 31 January 2009, 16:58

Должно быть примерно так.

Code: Select all

  <plugins>
    <plugin type="nsdb" name="files">
      <config>
        <data_dir>/home/judges/data/nsdb_files</data_dir>
      </config>
    </plugin>
  </plugins>
Очень странно, что это не было создано при инсталляции.

Post Reply