Commit Graph

144 Commits

Author SHA1 Message Date
virusdefender
4c7c673f2f 修正docstring中的错误 2016-03-29 19:40:53 +08:00
virusdefender
951744a7cd 判题结果按照测试用例排序列表显示 2016-03-13 12:08:10 +08:00
virusdefender
cf2fc9df1a 指定使用nobody用户进行编译,防止#include</etc/shadow>等情况的发生
部分情况下,include敏感文件可能造成信息泄露。这里设置一下用户权限。
2016-03-05 11:42:17 +08:00
virusdefender
397f79a5b1 增加编译器错误显示限制,防止产生大量错误信息 2016-02-19 10:55:13 +08:00
virusdefender
f356d7b545 修复 Java 中文导致的编译错误 2016-02-04 21:52:21 +08:00
virusdefender
046867eb6c 编译错误的时候显示错误详情 2016-02-03 10:03:38 +08:00
virusdefender
6963b2879b java 不再使用沙箱 2016-02-02 10:23:23 +08:00
virusdefender
8dcd36b3d9 更换判题为新的 judger 2016-02-02 10:14:18 +08:00
virusdefender
ee35981fcb 编译器使用绝对路径,否则报找不到文件的异常。 2016-02-01 22:45:13 +08:00
virusdefender
65c2033120 使用 judger 运行编译器 2016-02-01 22:17:33 +08:00
virusdefender
efee635173 增加判题服务器 token 验证 2015-12-07 17:35:03 +08:00
virusdefender
3311a4c899 rpc 通信和判题初步测试通过;判题服务器不再依赖 redis 和 mysql。 2015-11-29 21:29:26 +08:00
virusdefender
236102b6ac 判题结果中返回 server 信息,便于统计 2015-11-29 01:24:15 +08:00
virusdefender
3e3770f669 完善 rpc 通信 server;将判题限制在一个容器中 2015-11-29 01:05:29 +08:00
virusdefender
d8966ed48a dev test 2015-11-28 20:32:49 +08:00
virusdefender
cf0a7f2bf2 Accept Merge Request #274 dev -> master : (dev -> master)
Merge Request: dev -> master
Created By: @virusdefender
Accepted By: @virusdefender
URL: https://coding.net/u/virusdefender/p/qduoj/git/merge/274
2015-10-10 21:00:01 +08:00
virusdefender
e68d3696e8 修复部分情况下的 system error 2015-10-10 18:43:35 +08:00
virusdefender
2b4400d68c Merge branch 'virusdefender-dev'
* virusdefender-dev:
  bootstrap 更新打包
  require.js 加载的 js 也加版本号
  修复导航栏在小屏幕上折叠后无法展开的问题
  增加比赛结果缓存
  优化比赛的前台显示样式;删除公告,没有提交的时候不显示表格的表头;修改部分 typo
  增强判题和 docker 安全性
  使用关联查询提供性能
  修复 ajax 提交 json 中文乱码的问题
  update security
  修复不能显示真实姓名的 bug
2015-09-29 21:30:41 +08:00
virusdefender
4ab1107627 增强判题和 docker 安全性 2015-09-25 15:05:17 +08:00
virusdefender
08373ebb02 update security 2015-09-25 13:10:09 +08:00
virusdefender
2df5cbe56c Merge branch 'dev'
* dev: (195 commits)
  修改刷新时间
  增加题目页面倒计时的 js
  增加比赛倒计时的 api
  增加判题帮助
  修复判断验证码是否存在的时候,用户不存在导致的报错
  记录用户输出 md5
  增加反馈链接
  add docker start tool
  rename mq
  不用的语言使用不同的系统调用过滤
  update java runtime security policy
  增加 clone 地址范围限制,否则 Java 无法运行
  fix mq run path error
  修复语言判断 bug
  add kill proc
  修改codeMirror中代码的样式
  修复数据库已有用户problems_statu字段为空造成的问题
  fix typo
  add c/c++ sys call filter
  --isolate-process true
  ...

Conflicts:
	judge/judger/settings.py
	judge/judger_controller/settings.py
	template/src/oj/contest/contest_problem.html
	template/src/oj/contest/submissions_list.html
2015-09-21 13:06:12 +08:00
virusdefender
18abd6a465 记录用户输出 md5 2015-09-19 15:07:31 +08:00
virusdefender
07f310b4b8 不用的语言使用不同的系统调用过滤 2015-09-18 13:13:03 +08:00
virusdefender
33ba871af0 update java runtime security policy 2015-09-18 12:52:00 +08:00
virusdefender
482a537ce0 增加 clone 地址范围限制,否则 Java 无法运行 2015-09-18 11:18:16 +08:00
virusdefender
a15059c114 add kill proc 2015-09-17 23:14:02 +08:00
virusdefender
9df3ffa782 fix typo 2015-09-17 20:21:55 +08:00
virusdefender
83539c13ea add c/c++ sys call filter 2015-09-17 19:56:51 +08:00
virusdefender
722d79a1c8 --isolate-process true 2015-09-17 18:09:14 +08:00
virusdefender
0f28c0e2ce 使用 superivisord 启动进程 2015-09-17 15:21:08 +08:00
virusdefender
878d71f60e 修复 celery 启动 docker 的时候 cannot enable tty mode on non tty input 的问题 2015-09-17 11:18:38 +08:00
virusdefender
e4533c9b76 更新 redis 环境变量 2015-09-17 09:44:31 +08:00
virusdefender
12e2c54aad 在环境变量中取数据库地址 2015-09-17 09:29:59 +08:00
virusdefender
cc138542b4 删除无用代码 2015-09-15 20:58:40 +08:00
virusdefender
2fe2d7b9cc judger 增加数据库连接 2015-09-15 16:35:39 +08:00
virusdefender
bf2c41713a 更新设置 2015-09-15 13:14:46 +08:00
virusdefender
c648e0008f 修改配置文件方便区分不同的开发环境 2015-09-14 18:20:36 +08:00
virusdefender
93c03b541b 创建 docker 镜像的时候使用阿里云的源 2015-09-14 13:15:53 +08:00
virusdefender
4c5fdc8bdf 删除 judger_controller 的日志配置 2015-09-12 21:48:26 +08:00
virusdefender
0c0d4225ca 判题中输出结果的比较去除最后的空行和空格 2015-09-12 20:01:34 +08:00
virusdefender
1dc0e8b742 增加判题中的日志记录,没有测试 2015-09-12 19:21:43 +08:00
virusdefender
354bb0302a 修复链接的时候的警告导致的编译错误 2015-09-12 17:57:44 +08:00
virusdefender
162913746f Accept Merge Request #173 : (dev-sxw -> dev) 2015-09-05 21:24:00 +08:00
sxw@401
49643c661a 添加宽松判题的client 2015-09-05 21:09:02 +08:00
lsxwxs
fc7f4ae3b7 对盘题系统针对新测试服务器进行调整,该分支将不会并入主分支[CI SKIP] 2015-09-03 00:41:36 +08:00
lsxwxs
6267b4d295 Merge branch 'for-contest' of git.coding.net:virusdefender/qduoj into for-contest
update
2015-09-03 00:29:15 +08:00
esp
69cc85eb01 correct the path of test case in judger 2015-09-03 00:28:34 +08:00
lsxwxs
5000bbc38f 原来的dockerimage里没有MySQL-python,所以又改了下[CI SKIP] 2015-09-02 23:03:05 +08:00
lsxwxs
eb376c49fc 漏了一个import[CI SKIP] 2015-09-02 22:59:43 +08:00
esp
655b18421e 这是为了能以root身份运行celery[CI SKIP] 2015-09-02 22:26:58 +08:00
esp
e4a5e4155b 为了在qduoj.cf上运行做了改动,因为判题和web都在一台机器上,这个docker image是从digitalOcean上download下来的[CI SKIP] 2015-09-02 20:26:55 +08:00
virusdefender
b54b0717f6 update docker file 2015-08-31 20:02:54 +08:00
virusdefender
e1256bf652 fix typo 2015-08-31 19:57:28 +08:00
virusdefender
a1b38d4a21 update docker name 2015-08-31 18:45:14 +08:00
virusdefender
dfe18495e4 update docker name 2015-08-31 18:43:30 +08:00
virusdefender
c528ab11fa 调试修改部分参数 2015-08-31 18:37:38 +08:00
virusdefender
70c64507cc 修改测试文件 2015-08-26 14:25:14 +08:00
virusdefender
c12c227ee9 使用 redis 消息队列来传递题目的结果。从而更新题目 ac 和 ts 计数器 2015-08-22 12:56:22 +08:00
virusdefender
fdf6b39c78 add message to mq 2015-08-22 12:31:28 +08:00
virusdefender
4b49fa5050 修改计数方式 2015-08-21 13:32:02 +08:00
virusdefender
e4ff9e642a 将队列长度计数器改为 redis 计数器 2015-08-21 13:25:30 +08:00
virusdefender
d8dd9cd72c 完成服务器判题队列长度监控功能 2015-08-20 13:47:57 +08:00
virusdefender
096873c028 增加队列长度统计信息 2015-08-19 16:39:04 +08:00
virusdefender
309eef710c 修改数据库地址 2015-08-17 12:58:13 +08:00
virusdefender
537da5d795 修改判题数据库 2015-08-17 12:48:10 +08:00
virusdefender
a36268bcc8 修改配置项目 2015-08-16 08:47:03 +08:00
virusdefender
a6bd787b86 修改 celery 配置文件格式 2015-08-15 23:46:25 +08:00
virusdefender
397927ef21 去除启动 docker 的超时 2015-08-15 17:52:07 +08:00
virusdefender
272169c0c8 去除对 subprocess32的依赖 2015-08-15 17:49:51 +08:00
virusdefender
5ab004638d 修复配置文件错误 2015-08-15 17:02:46 +08:00
virusdefender
088787443e 修改判题端配置文件 2015-08-15 17:00:55 +08:00
virusdefender
cb7dd2f820 修改判题的目录结构 2015-08-15 14:50:22 +08:00
virusdefender
92ab7e5fb2 更改项目结构 2015-08-12 16:49:25 +08:00
virusdefender
2ba1fa5669 修改部分命名风格 2015-08-12 14:56:18 +08:00
virusdefender
88be032a38 修改判题设置;增加web 和 mongodb 数据库的操作 2015-08-12 14:01:34 +08:00
virusdefender
8979def927 编译时忽略警告 2015-08-12 10:56:03 +08:00
virusdefender
408776910d 尝试一下判题 2015-08-12 10:24:06 +08:00
virusdefender
2752647f58 增加判题的测试用例文件 2015-08-10 20:19:35 +08:00
virusdefender
d37bbb3eab 修改判题的目录结构;增加celery 配置 2015-08-10 16:59:43 +08:00
virusdefender
26dab5bd91 修改项目结构,还有些混乱。 2015-07-31 23:23:15 +08:00
virusdefender
3ee4b57802 增加了题目的 model 修改几个 typo 2015-07-17 11:00:15 +08:00
virusdefender
dd7fe6ee44 给编译器也增加超时保护
比如使用include</dev/random>就可能导致编译器卡死,增加了一个编译超时。
重命名了exception模块
整理了部分格式
2015-07-07 21:04:38 +08:00
virusdefender
d85ed0a2ec 修复部分情况下解析lrun输出结果失败的问题
因为lrun的输出也是重定向到stderr的,程序也可能向这里面输出,造成解析错误和潜在的伪造输出结果的问题。
2015-07-07 19:26:40 +08:00
virusdefender
c033b2c1e8 增加java编译参数 2015-07-07 18:07:54 +08:00
virusdefender
ef88a8a155 修改部分常量定义
增加编译功能
2015-07-07 13:33:38 +08:00
virusdefender
cc0f720de9 修改代码风格和部分typo
主要是将类的私有变量进行了重命名,改为_开头
2015-07-06 19:20:12 +08:00
virusdefender
5f8f2acf82 修复代码输出重定向错误的问题 增加了输出结果判断
lrun在运行的时候,输入输出重定向的context是当前的shell,所以不能重定向到进程的tmpfs中。考虑在docker中开辟tmpfs缓存空间。
输出结果比较是采用的md5,暂时没考虑格式错误的情况。
2015-07-06 18:59:30 +08:00
virusdefender
f1915a8b33 使用更好的办法修复Python2不能pickle实例方法的问题
详见 https://virusdefender.net/index.php/archives/318/
2015-07-03 20:10:38 +08:00
virusdefender
b9143c6408 修复子进程中引发的异常无法捕获的bug
多进程中子进程引发异常之后并不会直接显示,而是在get()方法被访问的时候再次引发异常。参考http://stackoverflow.com/questions/22094852/how-to-catch-exceptions-in-workers-in-multiprocessing
2015-07-03 16:56:40 +08:00
virusdefender
a26757916e 删除多线程库 2015-07-03 16:02:23 +08:00
virusdefender
ae931b4dba 将判题控制器由多线程修改为多进程
我一定是sb了,使用Python的多线程跑cpu密集型的应用。
由于Python的GIL的存在,导致在cpu上每次只能有一个线程在运行。如果一个线程运行,而且cpu时间是3秒的话,那实际运行时间将大约3秒。如果两个线程同时在进行,那总运行时间几乎要翻倍。

而换用多进程之后,单个进行运行实际时间只是稍微大于cpu时间,两个进程同时运行的时候,总的时间也是cpu时间稍微增加。

同时Python2在多进程之间运行类方法的时候存在bug,使用了 http://stackoverflow.com/questions/1816958/cant-pickle-type-instancemethod-when-using-pythons-multiprocessing-pool-ma/7309686#7309686 的方法进行patch。然后不同进程之间共享的时候,要防止循环依赖,参考 http://stackoverflow.com/questions/25382455/python-notimplementederror-pool-objects-cannot-be-passed-between-processes
2015-07-03 16:01:53 +08:00
virusdefender
b43dfe37c8 judge在ubuntu上暂时能跑起来了 2015-07-02 23:39:18 +08:00
virusdefender
8f67c37d0c 调用lrun判题和解析判题结果的框架代码完成
使用Python代码调用lrun,然后解析结果。还没有完成,剩下输出对比。
2015-07-02 17:23:42 +08:00
virusdefender
00052d8e9b 创建新工程 添加了一些通用代码和数据库模型 2015-06-26 15:59:53 +08:00