Difference between revisions of "Изменения в версии 3.10.1"

From EjudgeWiki
(Created page with "Навигация: Главная страница/Система ejudge/Разработка/История версий/Изменения в в...")
 
(...)
Line 4: Line 4:
  
 
[[Изменения в версии 3.10.0|Предыдущая версия]]
 
[[Изменения в версии 3.10.0|Предыдущая версия]]
 +
 +
Добавлен <code>Dockerfile</code> и <code>docker-compose.yml</code>.
 +
Тестовую инсталляцию ejudge можно развернуть с помощью docker-compose.
 +
 +
Серверные компоненты ej-users, ej-jobs, ej-super-run, ej-super-serve, ej-contests, ej-agent обрабатывают сигнал USR1 для переоткрытия лог-файлов.
 +
 +
=== [[ejudge-setup]] ===
 +
 +
Поддерживается опция <code>-B</code>, которая включает
 +
генерацию инсталляционного скрипта для неинтерактивного запуска.
 +
 +
Поддерживается опция <code>-s</code> для генерации
 +
конфигурационных файлов с поддержкой контейнеризации.
 +
 +
В UI добавлен выбор опции "Install in slave mode?" по которой инсталляционный
 +
скрипт создает только файлы, необходимые для работы в режиме инвокера.
 +
 +
Поддерживается опция <code>-S</code> для генерации
 +
конфигурационных файлов в режиме инвокера (slave mode).
 +
 +
=== [[ejudge-control]] ===
 +
 +
Корректно поддерживается работа в docker.
 +
 +
Добавлена команда <code>rotate</code>, которая выполняет ротацию лог-файлов.
 +
 +
=== [[ej-agent]] ===
 +
 +
Добавлена опция <code>-l</code> для указания пути к лог-файлу.
 +
 +
=== [[ej-contests]] ===
 +
 +
В привилегированный API запрос <code>[[API:priv:submit-run|submit-run]]</code> добавлены два параметра: <code>not_ok_is_cf</code> и <code>rejudge_flag</code>.
 +
 +
ej-contests хранит некоторые переменные внутреннего состояния в области памяти, отображенной в файл <code>ej-contests-status</code>. Этот файл можно считать или отобразить в память и извлекать из него некоторые метрики работы процесса.
 +
 +
Исправлено падение при повторном удалении уже удаленных посылок
 +
[https://github.com/blackav/ejudge/issues/140 Issue 140].
 +
 +
Исправлена некорректная обработка зависимостей задач в некоторых
 +
случаях [https://github.com/blackav/ejudge/issues/135 Issue 135].
 +
 +
Доработано поведение при активном режиме дорешивания в
 +
виртуальных турнирах [https://github.com/blackav/ejudge/issues/138 Issue 138].
 +
После включения режима дорешивания участники не могут
 +
стартовать виртуальный турнир, но все задачи доступны для сдачи
 +
в режиме дорешивая.
 +
Те, у кого в момент включения дорешивания виртуальный турнир еще не закончился,
 +
заканчивают виртуальный турнир в "зачетном" режиме,
 +
после чего могут сдавать в режиме дорешивания.
 +
 +
=== [[ej-jobs]] ===
 +
 +
Исправления в плагин Telegram от vvd170501 [https://github.com/blackav/ejudge/pull/129 MR 129], [https://github.com/blackav/ejudge/pull/130 MR 130].
 +
 +
=== [[ej-suid-container]] ===
 +
 +
В режиме компиляции известные каталоги, которые используются
 +
для кеширования файлов некоторыми компиляторами, монтируются на tmpfs,
 +
то есть не сохраняются между запусками.
 +
 +
По умолчанию блокируются системные вызовы <code>unshare</code> и <code>memfd_create</code>. Добавлены опции <code>su</code> и <code>sm</code>, который разрешают
 +
эти системные вызовы.
 +
 +
=== [[ej-super-run]] ===
 +
 +
Исправлена ошибка работы в режиме кеширования [https://github.com/blackav/ejudge/issues/127 Issue 127].
 +
 +
=== [[ej-super-serve]] ===
 +
 +
При создании пользователей по CSV-файлу добавлена опция принудительной
 +
переустановки паролей у уже существующих пользователей.
 +
 +
=== [[ej-users]] ===
 +
 +
Если база данных уже существует, она не пересоздается.
 +
 +
=== Коннектор к MySQL/MariaDB ===
 +
 +
В таблицах MySQL используется BIGINT там, где ожидаются 64-битные
 +
числа.
 +
 +
Кодировка в таблицах MySQL изменена на utf8mb4, так как кодировка
 +
utf8 не поддерживает полный диапазон кодовых позиций Unicode [https://github.com/blackav/ejudge/issues/132 Issue 132].
 +
 +
Плагин для подключения к mysql поддерживает переменные окружения
 +
<code>EJUDGE_MYSQL_HOST</code>, <code>EJUDGE_MYSQL_PORT</code>,
 +
<code>EJUDGE_MYSQL_DATABASE</code>, <code>EJUDGE_MYSQL_USER</code>,
 +
<code>EJUDGE_MYSQL_PASSWORD</code>.
 +
 +
Плагин для подключения к mysql поддерживает чтение имени базы данных,
 +
хоста и порта для подключения из файла <code>mysql_password</code> с паролем
 +
к базе данных. Для этого в конфигурацию плагина <code>common_mysql<code>
 +
в файле <code>ejudge.xml</code> добавлен элемент <code>password_file_mode</code>,
 +
который должен содержать значение 1.
 +
 +
Добавлено автоматическое переподсоединение к БД в случае разрыва соединения.
 +
 +
=== Тестовый турнир ===
 +
 +
Добавлены решения задачи A+B на языках golang и kotlin [https://github.com/blackav/ejudge/pull/136 MR 135] от dkirienko.

Revision as of 13:53, 29 January 2023

Навигация: Главная страница/Система ejudge/Разработка/История версий/Изменения в версии 3.10.1

Время выхода: ?? ?? 2023 г.

Предыдущая версия

Добавлен Dockerfile и docker-compose.yml. Тестовую инсталляцию ejudge можно развернуть с помощью docker-compose.

Серверные компоненты ej-users, ej-jobs, ej-super-run, ej-super-serve, ej-contests, ej-agent обрабатывают сигнал USR1 для переоткрытия лог-файлов.

ejudge-setup

Поддерживается опция -B, которая включает генерацию инсталляционного скрипта для неинтерактивного запуска.

Поддерживается опция -s для генерации конфигурационных файлов с поддержкой контейнеризации.

В UI добавлен выбор опции "Install in slave mode?" по которой инсталляционный скрипт создает только файлы, необходимые для работы в режиме инвокера.

Поддерживается опция -S для генерации конфигурационных файлов в режиме инвокера (slave mode).

ejudge-control

Корректно поддерживается работа в docker.

Добавлена команда rotate, которая выполняет ротацию лог-файлов.

ej-agent

Добавлена опция -l для указания пути к лог-файлу.

ej-contests

В привилегированный API запрос submit-run добавлены два параметра: not_ok_is_cf и rejudge_flag.

ej-contests хранит некоторые переменные внутреннего состояния в области памяти, отображенной в файл ej-contests-status. Этот файл можно считать или отобразить в память и извлекать из него некоторые метрики работы процесса.

Исправлено падение при повторном удалении уже удаленных посылок Issue 140.

Исправлена некорректная обработка зависимостей задач в некоторых случаях Issue 135.

Доработано поведение при активном режиме дорешивания в виртуальных турнирах Issue 138. После включения режима дорешивания участники не могут стартовать виртуальный турнир, но все задачи доступны для сдачи в режиме дорешивая. Те, у кого в момент включения дорешивания виртуальный турнир еще не закончился, заканчивают виртуальный турнир в "зачетном" режиме, после чего могут сдавать в режиме дорешивания.

ej-jobs

Исправления в плагин Telegram от vvd170501 MR 129, MR 130.

ej-suid-container

В режиме компиляции известные каталоги, которые используются для кеширования файлов некоторыми компиляторами, монтируются на tmpfs, то есть не сохраняются между запусками.

По умолчанию блокируются системные вызовы unshare и memfd_create. Добавлены опции su и sm, который разрешают эти системные вызовы.

ej-super-run

Исправлена ошибка работы в режиме кеширования Issue 127.

ej-super-serve

При создании пользователей по CSV-файлу добавлена опция принудительной переустановки паролей у уже существующих пользователей.

ej-users

Если база данных уже существует, она не пересоздается.

Коннектор к MySQL/MariaDB

В таблицах MySQL используется BIGINT там, где ожидаются 64-битные числа.

Кодировка в таблицах MySQL изменена на utf8mb4, так как кодировка utf8 не поддерживает полный диапазон кодовых позиций Unicode Issue 132.

Плагин для подключения к mysql поддерживает переменные окружения EJUDGE_MYSQL_HOST, EJUDGE_MYSQL_PORT, EJUDGE_MYSQL_DATABASE, EJUDGE_MYSQL_USER,

EJUDGE_MYSQL_PASSWORD.

Плагин для подключения к mysql поддерживает чтение имени базы данных, хоста и порта для подключения из файла mysql_password с паролем к базе данных. Для этого в конфигурацию плагина common_mysql в файле ejudge.xml добавлен элемент password_file_mode, который должен содержать значение 1.

Добавлено автоматическое переподсоединение к БД в случае разрыва соединения.

Тестовый турнир

Добавлены решения задачи A+B на языках golang и kotlin MR 135 от dkirienko.