Difference between revisions of "Изменения в версии 3.10.1"
(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 для переоткрытия лог-файлов.
Contents
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.