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.