Run-time error вместо TLE

Обсуждение вопросов, связанных с системой проведения турниров ejudge.
Post Reply
igor
Posts:4
Joined:23 March 2007, 12:24
Contact:
Run-time error вместо TLE

Post by igor » 09 November 2008, 14:09

Если TL стоит 4 с. или больше, то вместо диагностики TLE выдаётся Run-time error Signal 9 (SIGKILL)

Если ставить TL в миллисекундах, то этот глюк возникает начиная с 3999.

Проявляется на g++ и fpc, другие языки не проверял.

Можно ли это как-то исправить?

Ejudge 2.3.11, reuse 4.3.6, ядро 2.6.9 (не патченное), gcc-3.4.6-10, glibc-2.3.4-2.41
Игорь Григорьев

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

Re: Run-time error вместо TLE

Post by cher » 12 November 2008, 23:04

В чем проблема пока до конца не ясно, но есть work-around.

Надо установить reuse-4.3.7. После установки ejudge перекомпилировать не нужно.

igor
Posts:4
Joined:23 March 2007, 12:24
Contact:

Re: Run-time error вместо TLE

Post by igor » 13 November 2008, 23:34

Спасибо. Установил, помогло.

Тем временем обнаружил аналогичную проблему с ML. Памяти вроде программе выделяется, сколько указано, но при превышении идёт диагностика Run-time error (Signal 6 (SIGABRT), когда память динамическая; Signal 11 (SIGSEGV), когда статическая). Проверял на g++.

Параметр enable_memory_limit_error вроде как ни на что не влияет.
Игорь Григорьев

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

Re: Run-time error вместо TLE

Post by cher » 13 November 2008, 23:51

На непатченном ядре memory limit не определяется.

Post Reply