/usr/bin/kumir2-bc: error while loading shared libraries

Обсуждение вопросов, связанных с системой проведения турниров ejudge.
Post Reply
rotkart
Posts:17
Joined:07 October 2013, 14:49
/usr/bin/kumir2-bc: error while loading shared libraries

Post by rotkart » 20 February 2014, 08:21

Доброго дня!
Помогите, пожалуйста понять, как побороть проблему:
пытаюсь добавить имеющийся у в ALTLinux p7 репозитории kumir2-2.1.0-alt0.beta4 в качестве языка проверки в систему ejudge-2.3.29.1-alt0.M70T.1
При помощи консольного kumir2-bc из исходника .kum получается некий исполняемый файл .kod, который запускается, принимает тестовые данные, выводит верные ответы на тесты.
По вики на ejudge.ru написал правила и конфиги, проверил их в консоли ssh, запущенной без опций -Y или -X - все опции отрабатывают штатно.
Добавил язык в ejudge через ejudge-configure-compilers, он появился в списке. Создал новый контест с этим языком. При проверке программы на каждом тесте возникает ошибка:

Code: Select all

/usr/bin/kumir2-bc: error while loading shared libraries: libX11.so.6: failed to map segment from shared object: Cannot allocate memory
Версии:

Code: Select all

[root@stervmac ~]# find /usr/lib* -name 'libX11.so.6'
/usr/lib/libX11.so.6
/usr/lib64/libX11.so.6
[root@stervmac ~]# rpm -qf /usr/lib/libX11.so.6
i586-libX11-1.5.99.902-alt1
[root@stervmac ~]# rpm -qf /usr/lib64/libX11.so.6
libX11-1.5.99.902-alt1
Пробовал выставлять disable security и insecure - не помогает.

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

Re: /usr/bin/kumir2-bc: error while loading shared libraries

Post by cher » 20 February 2014, 09:38

Не хватает памяти. Попробуйте увеличить memory limit.

rotkart
Posts:17
Joined:07 October 2013, 14:49

Re: /usr/bin/kumir2-bc: error while loading shared libraries

Post by rotkart » 20 February 2014, 10:00

cher wrote:Не хватает памяти. Попробуйте увеличить memory limit.
Я правильно понял, что увеличить нужно compile_max_vm_size = 256M?
Сделал compile_max_vm_size = 1G
Рестартовал турнир с перегрузкой конфига. Не помогло.

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

Re: /usr/bin/kumir2-bc: error while loading shared libraries

Post by cher » 20 February 2014, 10:09

попробуйте из командной строки подобрать, сколько памяти ему нужно, устанавливая ulimit

rotkart
Posts:17
Joined:07 October 2013, 14:49

Re: /usr/bin/kumir2-bc: error while loading shared libraries

Post by rotkart » 20 February 2014, 10:15

cher wrote:попробуйте из командной строки подобрать, сколько памяти ему нужно, устанавливая ulimit
А из командной строки все работает, ошибок нет:

Code: Select all

[root@stervmac test]# ls 
001.kum
[root@stervmac test]# /usr/lib/ejudge/lang/in/kumir2.in 001.kum 001
[root@stervmac test]# ls 
001  001.kum
[root@stervmac test]# ./001 
never say never again
never always
always say always again
[root@stervmac test]#

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

Re: /usr/bin/kumir2-bc: error while loading shared libraries

Post by cher » 20 February 2014, 10:18

ulimit -v MEM

rotkart
Posts:17
Joined:07 October 2013, 14:49

Re: /usr/bin/kumir2-bc: error while loading shared libraries

Post by rotkart » 20 February 2014, 10:23

Да у меня и так уже:

Code: Select all

[root@stervmac test]# ulimit -a
core file size          (blocks, -c) 0
data seg size           (kbytes, -d) unlimited
scheduling priority             (-e) 0
file size               (blocks, -f) unlimited
pending signals                 (-i) 30614
max locked memory       (kbytes, -l) 64
max memory size         (kbytes, -m) unlimited
open files                      (-n) 1024
pipe size            (512 bytes, -p) 8
POSIX message queues     (bytes, -q) 819200
real-time priority              (-r) 0
stack size              (kbytes, -s) 8192
cpu time               (seconds, -t) unlimited
max user processes              (-u) 1024
virtual memory          (kbytes, -v) unlimited
file locks                      (-x) unlimited

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

Re: /usr/bin/kumir2-bc: error while loading shared libraries

Post by cher » 20 February 2014, 10:33

Естественно, что из командной строки kumir2 работает, так как ограничение на размер виртуального адресного пространства не установлено. При запуске под ejudge устанавливается ограничение на размер виртуального адресного пространства (memory limit), поэтому kumir2 просто не хватает памяти.

Вам нужно подобрать, сколько памяти необходимо для работы kumir2. Для этого нужно пробовать устанавливать разные ограничения на размер виртуального адресного пространства, пока не будет найдено подходящее значение.

Установка ограничения в 1 мегабайт:

Code: Select all

ulimit -v  1024

rotkart
Posts:17
Joined:07 October 2013, 14:49

Re: /usr/bin/kumir2-bc: error while loading shared libraries

Post by rotkart » 20 February 2014, 10:50

cher wrote:Естественно, что из командной строки kumir2 работает, так как ограничение на размер виртуального адресного пространства не установлено. При запуске под ejudge устанавливается ограничение на размер виртуального адресного пространства (memory limit), поэтому kumir2 просто не хватает памяти.

Вам нужно подобрать, сколько памяти необходимо для работы kumir2. Для этого нужно пробовать устанавливать разные ограничения на размер виртуального адресного пространства, пока не будет найдено подходящее значение.

Установка ограничения в 1 мегабайт:

Code: Select all

ulimit -v  1024
Спасибо, подобрал:

Code: Select all

[root@stervmac test]# ulimit -v 262144
[root@stervmac test]# kumir2-bc 001.kum
[root@stervmac test]# ./001.kod
...
Ошибок запуска нет, то есть ограничение в 256Мбайт вполне достаточно для запуска в консоли.
compile_max_vm_size = 1G - это сейчас установлено в настройках турнира, заведомо большее значение.


P.S. Кстати, а при установке 2G или 2048M значение в окошке Maximum VM size for compilers, после нажатия на Change, само меняется на 4294967294G

rotkart
Posts:17
Joined:07 October 2013, 14:49

Re: /usr/bin/kumir2-bc: error while loading shared libraries

Post by rotkart » 20 February 2014, 11:11

Спасибо за помощь!!!
Я недосмотрел в настройках абстрактных проблем!
Кроме compile_max_vm_size есть ещё max_vm_size!
Увеличил его!
Ошибка c libX11 ушла, появилась другая от самого kumir2.

rotkart
Posts:17
Joined:07 October 2013, 14:49

Re: /usr/bin/kumir2-bc: error while loading shared libraries

Post by rotkart » 20 February 2014, 13:56

cher wrote:Вам нужно подобрать, сколько памяти необходимо для работы kumir2
Ещё раз большое спасибо, разобрался, проверки идут!

Post Reply