fi-ksi / web-backend

Backend for KSI web written in Python.
MIT License
8 stars 3 forks source link

Isolate pro programovací moduly pro Naskoc@FI občas selhávají #157

Closed BorysekOndrej closed 1 year ago

BorysekOndrej commented 2 years ago

Při testování úlohy v Naskoc@FI je zhruba polovina mích odevzdání pro programovací modul neúspěšných. Kód mezi odevzdáními neměním, a děje se mi to ve více různých úlohách. Je to jak u spuštění, tak u odevzdání. Organizátorský výstup dostávám následující:

Isolate --init returned code 2
Traceback (most recent call last):
  File "/root/naskoc-web-backend/endpoint/runcode.py", line 49, in on_post
    result = util.programming.run(module, user.id, data,
  File "/root/naskoc-web-backend/util/programming.py", line 332, in run
    box_id = init_exec_environment()
  File "/root/naskoc-web-backend/util/programming.py", line 258, in init_exec_environment
    raise EIsolateError("Isolate --init returned code " +
util.programming.EIsolateError: Isolate --init returned code 2

Zběžně jsem se podíval, zda neuvidím něco v logu přímo na kleobisu, ale buď tam nic není, nebo se mi nedaří najít správný log.

esoadamo commented 2 years ago
Isolate --init for box '100' returned code (2)
---- STDOUT ----
b''
---- STDERR ----
b"Box already exists, run `isolate --cleanup' first\n"
Traceback (most recent call last):
  File "/root/naskoc-web-backend/endpoint/runcode.py", line 49, in on_post
    result = util.programming.run(module, user.id, data,
  File "/root/naskoc-web-backend/util/programming.py", line 338, in run
    box_id = init_exec_environment()
  File "/root/naskoc-web-backend/util/programming.py", line 259, in init_exec_environment
    raise EIsolateError(
util.programming.EIsolateError: Isolate --init for box '100' returned code (2)
---- STDOUT ----
b''
---- STDERR ----
b"Box already exists, run `isolate --cleanup' first\n"

Vypadá to, že se nějak špatně vyprazdňují boxíky. Přidal jsem nějaké debugging info a také offsetnul boxíky oproti KSI o stovku. Zatím bez účinku

esoadamo commented 2 years ago

Hotfixnuto v https://github.com/fi-naskoc/web-backend/commit/11a0a18085d65c39f1df21da5668b069abc4ba10

Fix spočívá v tom, že se snižuje možnost konfliktu boxíků z 2:3 na 1:99. Objevily se ale další problémy (viz FIXME v commitu), které vyžadují větší prozkoumání. Za mě ale good enough pro normální použití, zbytek se může vyřešit na hackatonu. Předělávám tedy z fix na improvement

esoadamo commented 2 years ago

Asi related v rámci FIXME https://github.com/fi-ksi/web-backend/issues/155