скармливание сабмитов

Обсуждение вопросов, связанных с системой проведения турниров ejudge.
sufix
Posts:10
Joined:27 March 2008, 09:00
скармливание сабмитов

Post by sufix » 19 April 2008, 14:05

здравстуйте,
по некоторым причинам нам удобней использовать свой интерфейс отправки посылок и т.п.
в качестве интерфейса сайт на соседнем сервере.
возник вопрос, как это наиболее удобней и правильней сделать на вашей тестируюзей системе?
в частности проблема "скармливания" своих сабмитов. можно конечно отправлять через веб-интерфейс ejudge, но мне почему-то кажется что это не очень правильно.
если нет каких-либо уже готовых утилит для этого, я был бы благодарен, если вы укажете на что именно в исходниках стоит обратить внимание при написании своего "продукта".

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

Re: скармливание сабмитов

Post by cher » 19 April 2008, 16:39

Посмотрите на new-server-control. Эта программа позволяет выполнять многие действия из командной строки.

sufix
Posts:10
Joined:27 March 2008, 09:00

Re: скармливание сабмитов

Post by sufix » 19 April 2008, 18:24

странно. кроме stop/restart/status я команд не нашел.
или вы имели ввиду new-server-cmd?

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

Re: скармливание сабмитов

Post by cher » 19 April 2008, 18:55

да, new-server-cmd

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

Re: скармливание сабмитов

Post by cher » 29 April 2008, 23:15

Добавлена документация на new-server-cmd:
http://www.ejudge.ru/wiki/index.php/New-server-cmd

Обратите внимание, что она соответствует текущей версии в SVN. По сравнению с версией 2.3.8 были изменены названия нескольких команд и исправлены несколько ошибок.

sufix
Posts:10
Joined:27 March 2008, 09:00

Re: скармливание сабмитов

Post by sufix » 29 May 2008, 18:58

1)я еще в 2.3.7 исправлял эту, на мой взгляд, все-таки ошибку.
мне кажется, в new-server-cmd.c функция parse_int должна выглядеть примерно так:

Code: Select all

static int
parse_int(const char *str, int *p_val)
{
  int v;
  char *eptr = 0;

  errno = 0;
  v = strtol(str, &eptr, 10);
  if (errno || *eptr) return -1;
  *p_val = v;
  return 0;
}
но и в 2.3.8 она тоже осталась
2)мне кажется, функция prepare_submit_run должна информировать о run_id, присовенном посылке, чтобы потом мониторить результат.
я попытался исправить этот недочет, но хоть и работает, получилось криво
заранее спасибо

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

Re: скармливание сабмитов

Post by cher » 02 June 2008, 20:13

sufix wrote:1)я еще в 2.3.7 исправлял эту, на мой взгляд, все-таки ошибку.
мне кажется, в new-server-cmd.c функция parse_int должна выглядеть примерно так:

Code: Select all

static int
parse_int(const char *str, int *p_val)
{
  int v;
  char *eptr = 0;

  errno = 0;
  v = strtol(str, &eptr, 10);
  if (errno || *eptr) return -1;
  *p_val = v;
  return 0;
}
но и в 2.3.8 она тоже осталась
2)мне кажется, функция prepare_submit_run должна информировать о run_id, присовенном посылке, чтобы потом мониторить результат.
я попытался исправить этот недочет, но хоть и работает, получилось криво
заранее спасибо
1) нужен текущий SVN snapshot;
2) при посылке присвоенный run_id печатается на стандартный поток вывода.

sufix
Posts:10
Joined:27 March 2008, 09:00

Re: скармливание сабмитов

Post by sufix » 03 June 2008, 04:08

спасибо.
странно, но при отправке решения с помощью команды run-submit ничего в stdout не выводится

sufix
Posts:10
Joined:27 March 2008, 09:00

Re: скармливание сабмитов

Post by sufix » 21 August 2009, 10:57

здравствуйте,
правильно ли я понимаю, что пока нет другого способа смотреть подробную информацию о том как run проходил конкретные тесты(для score_system=kirov/olympiad) кроме как в var/archive/xmlreports?

vk
Posts:165
Joined:24 August 2007, 13:44
Location:Ханты-Мансийск
Contact:

Re: скармливание сабмитов

Post by vk » 27 August 2009, 16:52

Тоже интересно. К тому же, если все время лазить в файлы, чтобы посмотреть результаты проверки, то есть риск заблокировать запись в файл именно в тот момент, когда система захочет в него что-нибудь записать...

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

Re: скармливание сабмитов

Post by cher » 28 August 2009, 14:08

sufix wrote:здравствуйте,
правильно ли я понимаю, что пока нет другого способа смотреть подробную информацию о том как run проходил конкретные тесты(для score_system=kirov/olympiad) кроме как в var/archive/xmlreports?
http://www.ejudge.ru/wiki/index.php/New ... ump-report

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

Re: скармливание сабмитов

Post by cher » 28 August 2009, 14:13

vk wrote:Тоже интересно. К тому же, если все время лазить в файлы, чтобы посмотреть результаты проверки, то есть риск заблокировать запись в файл именно в тот момент, когда система захочет в него что-нибудь записать...
Запись в файл не заблокируется, но есть риск получить частично обновленный файл.

mincer
Posts:11
Joined:18 March 2009, 19:57

Re: скармливание сабмитов

Post by mincer » 08 January 2010, 19:08

Версия ejudge 2.3.14. В serve.cfg контеста cтоит ignore_duplicated_runs = 0. Из веб-интерфейса одинаковые посылки проходят спокойно, а ejudge-contests-cmd пишет: "request failed: 81, This submit is duplicate of the run 1".

vk
Posts:165
Joined:24 August 2007, 13:44
Location:Ханты-Мансийск
Contact:

Re: скармливание сабмитов

Post by vk » 12 January 2010, 13:16

mincer:
Из какого веб-интерфейса? Пользовательского или администраторского? Из админского могут спокойно проходить.

mincer
Posts:11
Joined:18 March 2009, 19:57

Re: скармливание сабмитов

Post by mincer » 12 January 2010, 19:03

И из админского, и из клиентского (непривелег. пользователь). Проблема-то в том, что вроде как игнорировать не должен, а при посылке из консоли игнорирует. У меня такого наблюдается подобный эффект?

Post Reply