Проблемы с БД пользователей

Обсуждение вопросов, связанных с системой проведения турниров ejudge.
Post Reply
makkarpov
Posts:19
Joined:07 October 2015, 22:54
Проблемы с БД пользователей

Post by makkarpov » 07 October 2015, 23:07

Здравствуйте. Попытался поставить ejudge 3.4.2, но столкнулся с такой проблемой - судя по всему, глючит ej-users. Симптомы следующие:
  • частично не работают функции редактирования пользователей через serve-control (возвращают либо Invalid request, либо Database error)
  • нельзя залогиниться ни в master (просто игнорирует попытку логина, хотя в адресной строке светится URL вида /new-master/main-page/Sxxxx)
  • ни в контест (ошибка Invalid contest после перенаправления на /new-client/main-page/Sxxxx, хотя в таблице БД cookies поле contest_id выставлено правильно).
В ej-users.log либо ничего (случаи 2 и 3), либо следующее сообщение (случай 1):

Code: Select all

2015-10-07T20:03:37Z:info:PRIV_USER_INFO: 1, 1 -> OK, size=2478
mysql: SELECT * FROM members WHERE user_id = 1 AND contest_id = 1 ;
2015-10-07T20:03:37Z:error:EDIT_FIELD_SEQ: 1, 1, 1, 0 -> invalid field 1
Проблема имеется как на версии 3.4.2, так и на последней версии из git-а.

P.S.: Если эта проблема решится, то, в принципе, я смогу выложить образ ВМ с ядром 4.1.6 и ejudge 3.4.2, ибо текущий образ довольно старый. Если этот образ кому-то нужен, конечно же.

cher
Posts:1153
Joined:13 March 2004, 17:00
Contact:

Re: Проблемы с БД пользователей

Post by cher » 08 October 2015, 13:09

Какие у вас настройки?

makkarpov
Posts:19
Joined:07 October 2015, 22:54

Re: Проблемы с БД пользователей

Post by makkarpov » 08 October 2015, 13:46

Хм... Их там много, какие именно? MySQL, на БД права ALL PRIVELEGES для юзера ejudge, никаких специальных настроек для MySQL нет - только то, что сгенерировал ejudge-setup.

cher
Posts:1153
Joined:13 March 2004, 17:00
Contact:

Re: Проблемы с БД пользователей

Post by cher » 08 October 2015, 13:59

Опишите, пожалуйста, подробнее, какие действия вы выполняли, чтобы возникла ошибка.

makkarpov
Posts:19
Joined:07 October 2015, 22:54

Re: Проблемы с БД пользователей

Post by makkarpov » 08 October 2015, 14:03

Установка - действия весьма шаблонные:

Code: Select all

setenforce 0
./fedora-configure
make
sudo make install
ejudge-setup
./install-ejudge.sh
ln -sf /usr/share/ejudge/style/* /var/www/html/ejudge
(от юзера ejudge) ejudge-control start
Повторение бага простое - зайти в /new-client?contest_id=1 и попытаться войти под админской учеткой. Получится редитект на /new-client/main-page/Sxxxx и сообщение Error: Invalid contest на этой странице.

cher
Posts:1153
Joined:13 March 2004, 17:00
Contact:

Re: Проблемы с БД пользователей

Post by cher » 08 October 2015, 14:20

/new-client?contest_id=1 - это какой-то нестандартный URL. Как у вас apache настроен?

makkarpov
Posts:19
Joined:07 October 2015, 22:54

Re: Проблемы с БД пользователей

Post by makkarpov » 08 October 2015, 14:26

cher wrote:/new-client?contest_id=1 - это какой-то нестандартный URL. Как у вас apache настроен?
Ну в этом URL опущены части, предшествующие CGI-скриптам. Настройка:

Code: Select all

<Directory "/var/www/html">
    AllowOverride none
    Options FollowSymLinks Indexes
    Require all granted
</Directory>

ScriptAlias /ej/ "/var/www/cgi-bin/"

<Directory "/var/www/cgi-bin">
    AllowOverride none
    Options ExecCGI FollowSymLinks
    Require all granted
</Directory>
Соответственно, полный путь получается вида http://сервер:порт/ej/new-client?contest_id=1, а путь после редиректа - http://сервер:порт/ej/new-client/main-page/Sxxxxxxx?lt=1

cher
Posts:1153
Joined:13 March 2004, 17:00
Contact:

Re: Проблемы с БД пользователей

Post by cher » 08 October 2015, 14:39

А из serve-control можно перейти мастером в контест 1?

makkarpov
Posts:19
Joined:07 October 2015, 22:54

Re: Проблемы с БД пользователей

Post by makkarpov » 08 October 2015, 14:40

Нет. Показывает страницу аутентификации, хотя в URL идентификатор SID присутствует. В сам serve-control получается залогиниться без проблем.

cher
Posts:1153
Joined:13 March 2004, 17:00
Contact:

Re: Проблемы с БД пользователей

Post by cher » 08 October 2015, 14:45

Попробуйте в конфиге апача это:

Code: Select all

ScriptAliasMatch ^/ej/.+ "/var/www/cgi-bin/client"

makkarpov
Posts:19
Joined:07 October 2015, 22:54

Re: Проблемы с БД пользователей

Post by makkarpov » 08 October 2015, 14:54

Проблема со входом решилась, спасибо. Как я понимаю, это из-за того, что CGI-программа не получала часть URL с /main-page/Sxxxxx? Однако осталась проблема, что при попытке поставить любой флаг (Globally privileged, globally invisible, ...) я получаю Error 50: Database error.

cher
Posts:1153
Joined:13 March 2004, 17:00
Contact:

Re: Проблемы с БД пользователей

Post by cher » 08 October 2015, 15:34

Да, действительно. Спасибо, что сообщили.

makkarpov
Posts:19
Joined:07 October 2015, 22:54

Re: Проблемы с БД пользователей

Post by makkarpov » 08 October 2015, 18:55

Еще такой вопрос - как заставить serve-control генерировать ссылки вида /ej/master/main-page/Sxxxxx в колонке "Judge / Master / User" в таблице контестов? Сейчас он генерирует ссылки вида /ej/new-master?SID=xxxxx&action=3&contest_id=1, которые при этом не работают с ошибкой Error: Invalid session (но при том в master можно зайти через ссылку /ej/master/main-page/Sxxxxx).

И есть ли доступ к serve-control через программу new-client? Сейчас на него висит отдельный алиас, что, вероятно, и обеспечивает генерацию ссылок в CGI-стиле.

P.S. Если явно прописать пачку ScriptAlias, как это сделано в образе ВМ, то все работает, но ссылки в CGI-стиле.

Code: Select all

ScriptAlias /cgi-bin/ "/var/www/cgi-bin/"
ScriptAlias /master   "/var/www/cgi-bin/new-master"
ScriptAlias /client   "/var/www/cgi-bin/new-client"
ScriptAlias /new-judge "/var/www/cgi-bin/new-judge"
ScriptAlias /new-master "/var/www/cgi-bin/new-master"
ScriptAlias /new-client "/var/www/cgi-bin/new-client"
ScriptAlias /judge    "/var/www/cgi-bin/new-judge"
ScriptAlias /serve-control "/var/www/cgi-bin/serve-control"
ScriptAlias /users    "/var/www/cgi-bin/users"
ScriptAlias /register "/var/www/cgi-bin/new-register"
ScriptAlias /new-register "/var/www/cgi-bin/new-register"

cher
Posts:1153
Joined:13 March 2004, 17:00
Contact:

Re: Проблемы с БД пользователей

Post by cher » 08 October 2015, 22:31

Да, так и надо прописывать.

Post Reply