Wall time-limit exceeded mono c#

Обсуждение вопросов, связанных с системой проведения турниров ejudge.
Post Reply
zayarniy2
Posts:24
Joined:24 August 2014, 10:24
Wall time-limit exceeded mono c#

Post by zayarniy2 » 10 November 2021, 19:32

Здравствуйте!
Решил использовать систему для проверки задач на C#.
Но столкнулся с неожиданной проблемой, в виде ошибки Wall time-limit exceeded.
При этом в отчете видно, что программа вывела результат.
---------------------------------------------------------------------------------------
Wall time-limit exceeded
Failed test: 1.

Max. CPU time: >1.000 (time-limit exceeded)

Tested on host: host1828359

CPU model: Intel(R) Xeon(R) CPU E5-2680 v2 @ 2.80GHz

CPU MHz: 2799.996

N Result Time (sec) Real time (sec) Max memory used Extra info Link
1 Wall time-limit exceeded 0.065 30.109 59834368 L I O A E C F

L Command-line parameters
I Test input
O Program output
A Correct output
E Program output to stderr
C Checker output
F Additional test information
====== Test #1 =======
--- Input: size 4 ---
1
1

--- Output: size 2 ---
1
--- Stderr: size 0 ---

--- Resource usage ---
program: { utime=30, stime=35, ptime=65, rtime=30109, maxvsz=59834368, maxrss=14036992, nvcsw=6, nivcsw=22 }
-------------------------------------------------------------------------------------------------------
Я так понимаю, что программа не завершается самостоятельно в отведенный срок.
Я пробовал менять real time с 5 на 30 секунд, это не помогает.
Проверил на простейшем тесте в котором нужно было просто вывести на экран сообщение, без ввода данных, но даже там программа не проходит тест, а выдает эту ошибку.
У меня подозрение, что исполнитель после выполнения дожидается нажатия на клавишу, но я не знаю, как это проверить.
Может кто что подскажет?
ejudge 3.8.0
Mono C# 4.6.2.0

zayarniy2
Posts:24
Joined:24 August 2014, 10:24

Re: Wall time-limit exceeded mono c#

Post by zayarniy2 » 22 November 2021, 11:58

Продолжаю попытки устранить проблему с Wall time-limit exceeded.
Обновил Mono до последней версии (6.12.0.122).
Теперь стало вываливаться вот такое сообщение.
Это в простейшей программе, которая выводит на экран "Hello!"

====== Test #1 =======
--- Input: size 0 ---

--- Output: size 2486 ---
Could not allocate 218904 (1 * 218904) bytes

=================================================================
Native Crash Reporting
=================================================================
Got a SIGABRT while executing native code. This usually indicates
a fatal error in the mono runtime or one of the native libraries
used by your application.
=================================================================

=================================================================
Native stacktrace:
=================================================================
0x55e810825139 - mono :
0x55e8108254b9 - mono :
0x55e8107d17af - mono :
0x55e8108246ef - mono :
0x7f6cac3f3980 - /lib/x86_64-linux-gnu/libpthread.so.0 :
0x7f6cab6effb7 - /lib/x86_64-linux-gnu/libc.so.6 : gsignal
0x7f6cab6f1921 - /lib/x86_64-linux-gnu/libc.so.6 : abort
0x55e810a82937 - mono :
0x55e810a659e3 - mono :
0x55e810a828b8 - mono :
0x55e810a82cf9 - mono : monoeg_g_logv
0x55e810a82d9f - mono : monoeg_g_log
0x55e810a82738 - mono : monoeg_g_calloc
0x55e8107c8e50 - mono :
0x55e81095cb93 - mono :
0x55e8107cf3c3 - mono :
0x55e8107d595d - mono :
0x55e8107d5a40 - mono :
0x40b3e393 - Unknown

=================================================================
Telemetry Dumper:
=================================================================
Crash reporter dumper exited due to fatal error.Pkilling 0x140104709113600x from 0x140104733822784x

=================================================================
Basic Fault Address Reporting
=================================================================
Memory around native instruction pointer (0x7f6cab6effb7):0x7f6cab6effa7 d2 4c 89 ce bf 02 00 00 00 b8 0e 00 00 00 0f 05 .L..............
0x7f6cab6effb7 48 8b 8c 24 08 01 00 00 64 48 33 0c 25 28 00 00 H..$....dH3.%(..
0x7f6cab6effc7 00 44 89 c0 75 1f 48 81 c4 18 01 00 00 c3 0f 1f .D..u.H.........
0x7f6cab6effd7 00 48 8b 15 89 be 3a 00 f7 d8 41 b8 ff ff ff ff .H....:...A.....

=================================================================
Managed Stacktrace:
=================================================================
at <unknown> <0xffffffff>
at System.Collections.Generic.EqualityComparer`1:CreateComparer <0x00122>
at System.Collections.Generic.Dictionary`2:.ctor <0x00092>
at System.Collections.Generic.Dictionary`2:.ctor <0x00042>
Could not allocate 218904 (1 * 218904) bytesCrash reporter dumper exited due to fatal error.
--- Stderr: size 0 ---

--- Resource usage ---
program: { utime=1950, stime=48, ptime=1998, rtime=2078, maxvsz=66932736, maxrss=12877824, nvcsw=8, nivcsw=629 }

Какая-то библиотека прерывает работу?
Не хватает памяти?
Может у кого есть какие идеи?
Помогите, кто может.
Очень хочется подключить C# к ejudge.

Да, и просто если запустить mono 1.exe - то программа выполняется без проблем.

zayarniy2
Posts:24
Joined:24 August 2014, 10:24

Re: Wall time-limit exceeded mono c#

Post by zayarniy2 » 24 November 2021, 03:13

Если долго мучатся, что-нибудь получится.
Я пока не уверен, но помоему помогло добавление в /home/judges/compile/conf/compile.cfg и в serve.cfg контестов строчек
run_max_stack_size = 8M # уменьшаем размер системного стека до минимального
run_max_vm_size = 4G # ограничение на максимальный размер адресного пространства

получилось так
[language]
id = 19
short_name = "mcs"
long_name = "Mono C# 4.6.2.0"
arch = "msil"
src_sfx = ".cs"
exe_sfx = ".exe"
insecure
run_max_stack_size = 8M # уменьшаем размер системного стека до минимального
run_max_vm_size = 4G # ограничение на максимальный размер адресного пространства

Ура!

Post Reply