Judging backend server for the DMOJ online judge.
AGPL-3.0 License
This minor release contains improvements to MLE reporting for a few runtimes, as well as a few bugfixes.
java.lang.OutOfMemoryError
as well as certain GC failures are now mapped to MLE
verdicts.MLE
rather than RTE
or IR
when graded on problems with memory limits lower than baseline runtime overhead.problem_storage_globs
may not have been picked up.dmoj-cli
now indents batched cases.The full changelog is available here as well as below.
get_supported_problems_and_mtimes
won't recursively scan by @kiritofeng in https://github.com/DMOJ/judge-server/pull/1104
Result
and CheckerResult
by @kiritofeng in https://github.com/DMOJ/judge-server/pull/1106
Published by Xyene over 1 year ago
This is a bugfix release, fixing the behavior of problem storage configured through the new problem_storage_globs
key.
The full changelog is available here as well as below.
Published by Xyene over 1 year ago
This major release contains a number of features, sandboxing improvements, and support for the latest versions of many runtimes. Upgrading is strongly recommended.
Thanks to @Riolku, @kiritofeng, @int-y1 for contributing major changes in this release.
ptrace
-based sandboxing is no longer supported.RUBY2
executor has been renamed to RUBY
.JAVA
executor.COFFEE
executor) has been removed.pretest_test_cases
are now run unconditionally. See https://github.com/DMOJ/judge-server/issues/1068 for more details.sys.int_info.default_max_str_digits
limit. See https://github.com/python/cpython/issues/95778 for more details.problem_storage_globs
key. problem_storage_root
is now deprecated, and will be removed in a future release.f*
syscalls (e.g. fchmod
), exec
s. The current level of compiler sandboxing is intended to prevent e.g. #include
-ing arbitrary files that are readable by the judge user.EACCES
rather than EPERM
.SIGVTALRM
).dmoj-cli submit
as well as generators, graders, etc.The full changelog is available here as well as below.
subprocess.STDOUT
by @Xyene in https://github.com/DMOJ/judge-server/pull/961
str
instead of bytes
from get_compile_output
by @Xyene in https://github.com/DMOJ/judge-server/pull/960
_file_access_check
syscall-agnostic by @Xyene in https://github.com/DMOJ/judge-server/pull/993
requirements
to dependencies
by @Riolku in https://github.com/DMOJ/judge-server/pull/1023
result
to checkers by @Riolku in https://github.com/DMOJ/judge-server/pull/1021
setproctitle
by @kiritofeng in https://github.com/DMOJ/judge-server/pull/1038
capget
by @Xyene in https://github.com/DMOJ/judge-server/pull/1043
setrlimit
by @Xyene in https://github.com/DMOJ/judge-server/pull/1041
msync
by @Xyene in https://github.com/DMOJ/judge-server/pull/1042
/proc/self/cmdline
by @Xyene in https://github.com/DMOJ/judge-server/pull/1044
setrlimit
for the compiler by @Xyene in https://github.com/DMOJ/judge-server/pull/1045
setrlimit
for the Go runtime too, again by @Xyene in https://github.com/DMOJ/judge-server/pull/1047
setpgid
by @Xyene in https://github.com/DMOJ/judge-server/pull/1049
setpgid
at all by @Xyene in https://github.com/DMOJ/judge-server/pull/1050
INT_MAX_NUMBER_DIGITS
to match Python's limit by @kiritofeng in https://github.com/DMOJ/judge-server/pull/1052
clone3
by @Xyene in https://github.com/DMOJ/judge-server/pull/1053
INT_MAX_NUMBER_DIGITS
backwards compatible by @kiritofeng in https://github.com/DMOJ/judge-server/pull/1055
tkill
by @Xyene in https://github.com/DMOJ/judge-server/pull/1058
pretest_test_cases
if available by @Xyene in https://github.com/DMOJ/judge-server/pull/1070
no_implicit_optional
mypy error by @Riolku in https://github.com/DMOJ/judge-server/pull/1078
bool_env
by @kiritofeng in https://github.com/DMOJ/judge-server/pull/1080
Published by Xyene about 3 years ago
This is a bugfix release, ahead of the DMOJ judge dropping support for Linux kernels older than 4.8. It is the last release to support ptrace-only sandboxing; future releases will require seccomp-enabled kernels.
The full changelog is available here.
dmoj-cli
(https://github.com/DMOJ/judge-server/issues/335)linematches
checker for problems that reward points based on lines matchedEPERM
rather than ENOENT
linecount
checker moved into extended feedbackPublished by Xyene over 3 years ago
This major release contains a number of features and stability improvements. Upgrading from 2.1.0 is strongly recommended, as the sandbox in 2.1.0 is ineffective for x86 processes running on x64 systems. (In practice, this means the NASM, GAS32, and Turing executors are unsafe.)
The full changelog is available here.
Note: release v3.0.0 was skipped due to a packaging error.
int(...)
to avoid DOS attacks in custom checkersexecve
(fixes "failed to set up seccomp policy" errors when seccomp tries to malloc
)~/.local/share/racket
; #786poll
; #785data_grace
; #756clock_gettime64
poll
; #785Published by Xyene over 4 years ago
This minor release contains a number of features and stability improvements. Upgrading from 2.0.0 is strongly recommended.
The full changelog is available here.
bridged
checker for interfacing with e.g. testlib
checkersbridged
grader for interfacing with e.g. testlib
gradersSyntaxError
is now mapped to a compilation error, through py_compile
--skip-self-test
flag to skip self-tests at startupENOENT
and loggingpread64
syscallPR_SET_THP_DISABLE
prctl
TracedPopen
constructor, fixing a possible raceeventfd2
syscallpackage main
; #582mlock
syscall (needed as of go 1.14.1)clock_nanosleep
TypeError
in site when judge sends None
case points; #659cptbox
sandbox is now built with -O3
and -march=native
Published by Xyene about 5 years ago
This major release contains a number of stability improvements, and drops support for Windows and Python < 3.6. This release is meant to be used with the DMOJ Site v2.0.0 release.
The full changelog is available here.
test_cases
block for problems using standard naming conventions; #262main(String[] args)
; #366rustc
rather than cargo
version for Rust; fixes #534DMOJ_CARGO_OFFLINE
environment variable; #561Published by Xyene almost 6 years ago
This minor release includes a number of enhancements as well as some general bugfixes.
~/.dmojrc
, removing need to always pass -c
; #330mcs
over dmcs
during autoconfiguration; #333rstripped
checker's filter_new_line
parameter to be disabled; #343file
executable available; #309LD_LIBRARY_PATH
if present (for Termux to function)Published by quantum5 over 6 years ago
This minor release includes a number of enhancements as well as some general bugfixes.
process_vm_readv
when possiblePublished by Xyene almost 7 years ago
This minor release includes a number of enhancements as well as some general bugfixes.
dmoj-autoconf
to be piped to a file without --silent
; #289pty
-based unbuffering in favour of LD_PRELOAD
setvbuf
approach; #243init.yml
is not foundENOENT
for all invalid file accesses instead of killing process, makes configuration of many runtimes easier; #293--verbose
flag for dmoj-autoconf
ptrace(2)
failure causing judge hang; #213AttributeError
when exiting dmoj-cli
; #291out
parameter was specifiedsetup.py sdist
failure on Python 3Published by quantum5 almost 7 years ago
This releases fixes several bugs that prevented the judge from running on Python 3.
Published by quantum5 almost 7 years ago
Minor, cosmetic changes to enhance the appearance on PyPI.
Published by quantum5 almost 7 years ago
We decided to release an initial version so that you can enjoy a stable experience with pip install dmoj
.