Difference between revisions of "Инсталляция на ALT Linux:Известные проблемы"

From EjudgeWiki
Line 1: Line 1:
 
Навигация: [[Main Page|Главная страница]]/[[Система ejudge]]/[[Инсталляция]]/[[Инсталляция на ALT Linux]]/[[Инсталляция на ALT Linux:Известные проблемы|Известные проблемы]]
 
Навигация: [[Main Page|Главная страница]]/[[Система ejudge]]/[[Инсталляция]]/[[Инсталляция на ALT Linux]]/[[Инсталляция на ALT Linux:Известные проблемы|Известные проблемы]]
 +
 +
== Новая система не работает при попытке сделать reload config files ==
 +
 +
Если установлена ejudge версии 3.3.1+ и используется база данных MySQL, то при попытке сделать Reload Config Files может появляться такая ошибка:
 +
 +
<nowiki>The contest is temporarily not available. Please, retry the request a bit later.
 +
 +
2015-06-09T15:39:40Z:info:loading contest 1 configuration file
 +
2015-06-09T15:39:40Z:info:configuration file parsed ok
 +
mysql: SELECT config_val FROM config WHERE config_key = 'run_version' ;
 +
mysql: ALTER TABLE runs ADD COLUMN token_flags TINYINT NOT NULL
 +
DEFAULT 0 AFTER store_flags
 +
2015-06-09T15:39:40Z:error:database error: Duplicate column name 'token_flags'
 +
</nowiki>
 +
 +
Для устранения ошибки необходимо внести изменения в базу mysql. От пользователя root запустите mysql:
 +
 +
# mysql
 +
 +
И выполните команды:
 +
 +
mysql> use ejudge;
 +
mysql> update config set config_val = 7 where config_key = 'run_version';
 +
  
 
== "Утекание" файловых дескрипторов ==
 
== "Утекание" файловых дескрипторов ==

Revision as of 18:56, 9 June 2015

Навигация: Главная страница/Система ejudge/Инсталляция/Инсталляция на ALT Linux/Известные проблемы

Новая система не работает при попытке сделать reload config files

Если установлена ejudge версии 3.3.1+ и используется база данных MySQL, то при попытке сделать Reload Config Files может появляться такая ошибка:

The contest is temporarily not available. Please, retry the request a bit later. 2015-06-09T15:39:40Z:info:loading contest 1 configuration file 2015-06-09T15:39:40Z:info:configuration file parsed ok mysql: SELECT config_val FROM config WHERE config_key = 'run_version' ; mysql: ALTER TABLE runs ADD COLUMN token_flags TINYINT NOT NULL DEFAULT 0 AFTER store_flags 2015-06-09T15:39:40Z:error:database error: Duplicate column name 'token_flags'

Для устранения ошибки необходимо внести изменения в базу mysql. От пользователя root запустите mysql:

# mysql

И выполните команды:

mysql> use ejudge;
mysql> update config set config_val = 7 where config_key = 'run_version';


"Утекание" файловых дескрипторов

Проблема наблюдается при наличии следующих условий:

1. Ejudge установлен на ALT Linux, используется патченное ядро версий 3.4.3 - 3.4.7, включен безопасный запуск программ.

2. Тестируются решения на языке python3 (иные версии языка, в том числе python версии 2) не подвержены проблеме.

Проблема заключается в "утекании" системных файловых дескрипторов. Для мониторинга проблемы выведите содержимое файла /proc/sys/fs/file-nr:

# cat /proc/sys/fs/file-nr
4576	0	202451

Этот файл содержит три числа, первое - текущее значение использованных файловых дескрипторов, второе всегда равно 0, третье - максимально доступное значение файловых дескрипторов. При тестировании решений на python3 при выполнении указанных выше условий, количество использованных дескрипторов будет увеличиваться. При исчерпании всех файловых дескрипторов, система будет работать нестабильно, вплоть до полного отказа в работоспособности.

В настоящий момент способ устранения проблемы неизвестен. В качестве временного решения возможно:

1. Увеличение количества доступных файловых дескрипторов, например, для увеличения количества дескрипторов до 1000000 выполните команду (от пользователя root):

 # echo 1000000 > /proc/sys/fs/file-max

2. Перезагрузка системы.