Если 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
Run-time error вместо TLE
Игорь Григорьев
Re: Run-time error вместо TLE
В чем проблема пока до конца не ясно, но есть work-around.
Надо установить reuse-4.3.7. После установки ejudge перекомпилировать не нужно.
Надо установить reuse-4.3.7. После установки ejudge перекомпилировать не нужно.
Re: Run-time error вместо TLE
Спасибо. Установил, помогло.
Тем временем обнаружил аналогичную проблему с ML. Памяти вроде программе выделяется, сколько указано, но при превышении идёт диагностика Run-time error (Signal 6 (SIGABRT), когда память динамическая; Signal 11 (SIGSEGV), когда статическая). Проверял на g++.
Параметр enable_memory_limit_error вроде как ни на что не влияет.
Тем временем обнаружил аналогичную проблему с ML. Памяти вроде программе выделяется, сколько указано, но при превышении идёт диагностика Run-time error (Signal 6 (SIGABRT), когда память динамическая; Signal 11 (SIGSEGV), когда статическая). Проверял на g++.
Параметр enable_memory_limit_error вроде как ни на что не влияет.
Игорь Григорьев
Re: Run-time error вместо TLE
На непатченном ядре memory limit не определяется.