GithubHelp home page GithubHelp logo

judge's People

Contributors

dc1020090 avatar pzread avatar silverneko avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

judge's Issues

Special judge support

Situation

The most general type of special judge needs to execute the check program from the problem author. Also pipe their standard I/O.

Expectation

Include checker in the problem pack, unpack and execute it when judging. Define spec of checker.

Drop the root permission

Situation

There are many file operations in challenge modules. It's really dangerous and unnecessary to do these with root permission.

Expectation

Drop the permission at most of the time. Only escalate privileges as and when needed.

Initialize resource limitation

Situation

The rlimit settings for test programs are default values now.

Expectation

Change rlimit setting to proper values.

Better solution for issue #4

Situation

Currently, we use prefetch to solve issue #4 , but it's a little ugly and not reliable.

Expectation

Control memory limit dynamically in light of OOM events and memory usage analysis.

Add Python 3 support

Situation

Need Python 3 judge support.

Expectation

Accept comp_type = python for problem configuration.

docker設定

在/etc/default/docker檔案中添加
DOCKER_OPTS = "--storage-driver=devicemapper"

Report CE details

Situation

Sometime we need CE message to debug.

Expectation

Provide C++, Python CE message with limited length.

Reminder

High Restrict Mode

  • Block clone, fork, vfork

Resource Limit

  • Unlimited stack

Refactor

  • Pointers of Sandbox are messes.

Dockerize

Situation

Dockerizing the project makes it easy to be deployed.

Expectation

Create Dockerfile.

Allow multiple judge instances

Situation

Currently, different judge instances have to run in separate directories; otherwise, the file operations will be conflict.

Expectation

Create separate working directory for each instance.

Handle standard/container/udev

Situation

judge will mount /dev to standard/container/udev, but won't umount. So it's dangerous to do file operation in standard/container even the judge is stopped.

Expectation

Umount standard/container/udev before the judge exited. Also do check and umount in the build-container.sh

Handle SIGINT, exit gently

Situation

There is only tornado default SIGINT handler now. Some environment changes need to be recovered after exit.

Expectation

Handle SIGINT, clean sandboxes and containers.

Deny creating process in high restricted mode

Situation

If test program can fork or clone, it will cause multiple measurement issues.
Since there is no need of allowing test programs to multithread currently, denying these actions is a solution.

Expectation

Use seccomp to block fork, vfork, clone syscalls.

Improve workload scheduling

Situation

The default scheduler of Linux is not suitable for judge workloads.

Expectation

Config the scheduler to improve the judge performance.

Refactor event loop

Situation

The code of event loop is copied from old code, need to refactor.

Stop set of tests early

Situation

The set of tests can be stopped early if any tests failed.

Expectation

Reduce the usage of time on fail tests.

Queue the challenge requests

Situation

Because creating a task costs lots of memory, the challenge requests from frontend must be queued first to prevent from resource exhaustion.

Expectation

Pend the request in a request queue, and limit the number of concurrent processing request.

docker build ARG

請問ARG是什麼?
我在build時跑出了這樣的東西,請問如何解決?
INFO[0000] Unknown instruction: ARG

Python3 UTF-8 support

Situation

When the code contains UTF-8 character, the python judge will report runtime error.

Error challenge will stuck judge

Situation

Any exception during challenge will abort the judge, then the running task count won't be decreased. Finally stuck the judge.

Expectation

Correctly handle exceptions.

Occasionally hanging

Situation

Sometime, the first SIGCHLD signal of child process won't deliver to the judge.

Draft API

Situation

The websocket API is internal now only for the Sprout OJ.

Expectation

Design the new high-level websocket API and publish.

Handle python exception properly

Situation

For now, most of exceptions in python code are not handled. Specially, the exceptions thrown by Future need to be well handled.

Websocket not closed after exception

Description

When an exception happens, the websocket wasn't closed by the server.
Hence the "frontend" may be kept waiting for a reponse indefinitely.

How to reproduce

Send a request to the server with an invalid "res_path" (e.g. mis-spelt pathname).

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.