Изменения в версии 3.10.1

From EjudgeWiki

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

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

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

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

Серверные компоненты ej-users, ej-jobs, ej-super-run, ej-super-server, 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-server

При создании пользователей по 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.