Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

几个小问题 #52

Open
haitaoya opened this issue May 6, 2019 · 20 comments
Open

几个小问题 #52

haitaoya opened this issue May 6, 2019 · 20 comments

Comments

@haitaoya
Copy link

haitaoya commented May 6, 2019

image

点击加载更多提交后,日期的格式有点差异。- -

image


还有如果试题的唯一ID有过删除的话,ID产生了不连续编号。

那么后台的查询试题分类和试题标签 与 试题信息 无法完全匹配。
试题查询这里是按照Page的大小进行查询,比如从1001开始查询到10条,但是其中删除了5条,那么查询到的是(1001~1015)

List<Problem> problems = problemService.getProblemsUsingFilters(problemIdLowerBound, keyword, problemCategorySlug, problemTagSlug, false, NUMBER_OF_PROBLEMS_PER_PAGE);

试题分类和试题标签查询是按照当前ID 1001 到 1001 + pageSize (1010)的信息。
Map<Long, List<ProblemCategory>> problemCategoryRelationships =

最后后台管理显示的试题后边的试题标签和分类信息会显示空白。
这里怎么避免产生不连续的试题ID呢?

@hzxie
Copy link
Owner

hzxie commented May 6, 2019

  1. 更多提交的日期是由JS生成的。之前的日期是由JSP生成的。当年我调试过,两个格式是一致的。一会儿我看一下。因为我一直用英文版的,所以没发现。
  2. ID不连续很容易解决,但是一般不这么做。通过该查询的offset就可以。一会儿我看一下。

现在看当年还真的是比较稚嫩。

@haitaoya
Copy link
Author

haitaoya commented May 6, 2019

嗯嗯,还有我觉得一道试题的 提交数 和 通过数 统计的时候应该同一个用户多次提交只记作一次比较合理吧。
不然试题的AC率感觉不是很精确。

@hzxie
Copy link
Owner

hzxie commented May 6, 2019

AC率的确是这么算的吧。

@haitaoya
Copy link
Author

haitaoya commented May 6, 2019

@hzxie 嗯嗯,的确是这么算的。 我理解错误,不好意思 - -#

@haitaoya
Copy link
Author

haitaoya commented May 6, 2019

直接部署Judger端在Window系统上,怎么保证程序运行时的安全性呀?
如果部署到Docker中是不是可以起到沙箱的作用呢?

@hzxie
Copy link
Owner

hzxie commented May 7, 2019

Windows上你可以创建一个较低权限的帐户运行评测机。
在配置文件里设置账户的用户名和密码就可以了。

@haitaoya
Copy link
Author

haitaoya commented May 7, 2019

嗯,好的。

@haitaoya
Copy link
Author

haitaoya commented May 7, 2019

judge端支持在Windows Server 2008 R2服务器部署吗?
我放在了阿里云服务器上,提交一致system error - -#

@hzxie
Copy link
Owner

hzxie commented May 7, 2019

支持的。当年测试过。
System Error有日志吗?

@haitaoya
Copy link
Author

haitaoya commented May 7, 2019

有的。我找下

@haitaoya
Copy link
Author

haitaoya commented May 7, 2019

我从judger启动成功后截取的日志。 启动之后只提交了一次。 因为我在本地重建的项目,都重命名为了easyoj

[INFO] 2019-05-07 21:12:42,599 [main] com.easyoj.judger.application.ApplicationBootstrap - Easy Online Judge Judger started.
[INFO] 2019-05-07 21:13:08,535 [ActiveMQ Session Task-1] com.easyoj.judger.messenger.MessageReceiver - Received new submission task #1175
[DEBUG] 2019-05-07 21:13:09,535 [ActiveMQ Session Task-1] org.springframework.jdbc.datasource.DataSourceUtils - Fetching JDBC Connection from DataSource
[DEBUG] 2019-05-07 21:13:09,567 [ActiveMQ Session Task-1] org.springframework.jdbc.datasource.DataSourceUtils - Returning JDBC Connection to DataSource
[ERROR] 2019-05-07 21:13:09,567 [ActiveMQ Session Task-1] com.easyoj.judger.core.Dispatcher - catching
com.easyoj.judger.exception.CreateDirectoryException: Failed to create directory: F:/tmp/eoj-1175
	at com.easyoj.judger.core.Preprocessor.createTestCode(Preprocessor.java:44) ~[judger.jar:?]
	at com.easyoj.judger.core.Dispatcher.preprocess(Dispatcher.java:81) ~[judger.jar:?]
	at com.easyoj.judger.core.Dispatcher.createNewTask(Dispatcher.java:60) ~[judger.jar:?]
	at com.easyoj.judger.application.ApplicationDispatcher.onSubmissionCreated(ApplicationDispatcher.java:33) ~[judger.jar:?]
	at com.easyoj.judger.messenger.MessageReceiver.newSubmissionHandler(MessageReceiver.java:53) ~[judger.jar:?]
	at com.easyoj.judger.messenger.MessageReceiver.onMessage(MessageReceiver.java:32) ~[judger.jar:?]
	at org.springframework.jms.listener.AbstractMessageListenerContainer.doInvokeListener(AbstractMessageListenerContainer.java:761) ~[judger.jar:?]
	at org.springframework.jms.listener.AbstractMessageListenerContainer.invokeListener(AbstractMessageListenerContainer.java:699) ~[judger.jar:?]
	at org.springframework.jms.listener.AbstractMessageListenerContainer.doExecuteListener(AbstractMessageListenerContainer.java:674) ~[judger.jar:?]
	at org.springframework.jms.listener.AbstractMessageListenerContainer.executeListener(AbstractMessageListenerContainer.java:645) ~[judger.jar:?]
	at org.springframework.jms.listener.SimpleMessageListenerContainer.processMessage(SimpleMessageListenerContainer.java:322) ~[judger.jar:?]
	at org.springframework.jms.listener.SimpleMessageListenerContainer.lambda$createListenerConsumer$2(SimpleMessageListenerContainer.java:299) ~[judger.jar:?]
	at org.apache.activemq.ActiveMQMessageConsumer.dispatch(ActiveMQMessageConsumer.java:1404) [judger.jar:?]
	at org.apache.activemq.ActiveMQSessionExecutor.dispatch(ActiveMQSessionExecutor.java:131) [judger.jar:?]
	at org.apache.activemq.ActiveMQSessionExecutor.iterate(ActiveMQSessionExecutor.java:202) [judger.jar:?]
	at org.apache.activemq.thread.PooledTaskRunner.runTask(PooledTaskRunner.java:133) [judger.jar:?]
	at org.apache.activemq.thread.PooledTaskRunner$1.run(PooledTaskRunner.java:48) [judger.jar:?]
	at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) [?:1.8.0_131]
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) [?:1.8.0_131]
	at java.lang.Thread.run(Unknown Source) [?:1.8.0_131]
[DEBUG] 2019-05-07 21:13:09,567 [ActiveMQ Session Task-1] org.springframework.jdbc.datasource.DataSourceUtils - Fetching JDBC Connection from DataSource
[DEBUG] 2019-05-07 21:13:09,582 [ActiveMQ Session Task-1] org.springframework.jdbc.datasource.DataSourceUtils - Returning JDBC Connection to DataSource
[DEBUG] 2019-05-07 21:13:09,582 [ActiveMQ Session Task-1] org.springframework.jms.core.JmsTemplate - Executing callback on JMS Session: Cached JMS Session: ActiveMQSession {id=ID:iZm255mrnckeisZ-55494-1557234760943-1:1:1,started=true} java.lang.Object@609640d5
[DEBUG] 2019-05-07 21:13:09,598 [ActiveMQ Session Task-1] org.springframework.jms.connection.CachingConnectionFactory - Registering cached JMS MessageProducer for destination [queue://eojJudgeResultQueue]: ActiveMQMessageProducer { value=ID:iZm255mrnckeisZ-55494-1557234760943-1:1:1:1 }
[DEBUG] 2019-05-07 21:13:09,598 [ActiveMQ Session Task-1] org.springframework.jms.core.JmsTemplate - Sending created message: ActiveMQMapMessage {commandId = 0, responseRequired = false, messageId = null, originalDestination = null, originalTransactionId = null, producerId = null, destination = null, transactionId = null, expiration = 0, timestamp = 0, arrival = 0, brokerInTime = 0, brokerOutTime = 0, correlationId = null, replyTo = null, persistent = false, type = null, priority = 0, groupID = null, groupSequence = 0, targetConsumerId = null, compressed = false, userID = null, content = null, marshalledProperties = null, dataStructure = null, redeliveryCounter = 0, size = 0, properties = null, readOnlyProperties = false, readOnlyBody = false, droppable = false, jmsXGroupFirstForConsumer = false} ActiveMQMapMessage{ theTable = {submissionId=1175, event=ErrorOccurred} }
[INFO] 2019-05-07 21:13:09,598 [ActiveMQ Session Task-1] com.easyoj.judger.core.Compiler - Start compiling with command: javac -encoding UTF-8 F:/tmp/eoj-1175/riJIpjZPObil.java
[WARN] 2019-05-07 21:13:09,801 [ActiveMQ Session Task-1] org.springframework.jms.listener.SimpleMessageListenerContainer - Execution of JMS message listener failed, and no ErrorHandler has been set.
java.lang.Error: API:     CreateProcess
Code:    1326
Message: ????°?: δ?????§???ò?í?ó?
	at com.easyoj.judger.core.Runner.getRuntimeResult(Native Method) ~[judger.jar:?]
	at com.easyoj.judger.core.Runner.getRuntimeResult(Runner.java:154) ~[judger.jar:?]
	at com.easyoj.judger.core.Compiler.getCompileResult(Compiler.java:78) ~[judger.jar:?]
	at com.easyoj.judger.core.Compiler.getCompileResult(Compiler.java:35) ~[judger.jar:?]
	at com.easyoj.judger.core.Dispatcher.compile(Dispatcher.java:103) ~[judger.jar:?]
	at com.easyoj.judger.core.Dispatcher.createNewTask(Dispatcher.java:61) ~[judger.jar:?]
	at com.easyoj.judger.application.ApplicationDispatcher.onSubmissionCreated(ApplicationDispatcher.java:33) ~[judger.jar:?]
	at com.easyoj.judger.messenger.MessageReceiver.newSubmissionHandler(MessageReceiver.java:53) ~[judger.jar:?]
	at com.easyoj.judger.messenger.MessageReceiver.onMessage(MessageReceiver.java:32) ~[judger.jar:?]
	at org.springframework.jms.listener.AbstractMessageListenerContainer.doInvokeListener(AbstractMessageListenerContainer.java:761) ~[judger.jar:?]
	at org.springframework.jms.listener.AbstractMessageListenerContainer.invokeListener(AbstractMessageListenerContainer.java:699) ~[judger.jar:?]
	at org.springframework.jms.listener.AbstractMessageListenerContainer.doExecuteListener(AbstractMessageListenerContainer.java:674) ~[judger.jar:?]
	at org.springframework.jms.listener.AbstractMessageListenerContainer.executeListener(AbstractMessageListenerContainer.java:645) ~[judger.jar:?]
	at org.springframework.jms.listener.SimpleMessageListenerContainer.processMessage(SimpleMessageListenerContainer.java:322) ~[judger.jar:?]
	at org.springframework.jms.listener.SimpleMessageListenerContainer.lambda$createListenerConsumer$2(SimpleMessageListenerContainer.java:299) ~[judger.jar:?]
	at org.apache.activemq.ActiveMQMessageConsumer.dispatch(ActiveMQMessageConsumer.java:1404) [judger.jar:?]
	at org.apache.activemq.ActiveMQSessionExecutor.dispatch(ActiveMQSessionExecutor.java:131) [judger.jar:?]
	at org.apache.activemq.ActiveMQSessionExecutor.iterate(ActiveMQSessionExecutor.java:202) [judger.jar:?]
	at org.apache.activemq.thread.PooledTaskRunner.runTask(PooledTaskRunner.java:133) [judger.jar:?]
	at org.apache.activemq.thread.PooledTaskRunner$1.run(PooledTaskRunner.java:48) [judger.jar:?]
	at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) [?:1.8.0_131]
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) [?:1.8.0_131]
	at java.lang.Thread.run(Unknown Source) [?:1.8.0_131]

@haitaoya
Copy link
Author

haitaoya commented May 7, 2019

呃...好像是文件路径问题,我改下试试 (尴尬

@haitaoya
Copy link
Author

haitaoya commented May 7, 2019

[INFO] 2019-05-07 21:46:50,287 [ActiveMQ Session Task-3] com.easyoj.judger.messenger.MessageReceiver - Received new submission task #1176
[DEBUG] 2019-05-07 21:46:51,287 [ActiveMQ Session Task-3] org.springframework.jdbc.datasource.DataSourceUtils - Fetching JDBC Connection from DataSource
[DEBUG] 2019-05-07 21:46:51,287 [ActiveMQ Session Task-3] org.springframework.jdbc.datasource.DataSourceUtils - Returning JDBC Connection to DataSource
[DEBUG] 2019-05-07 21:46:51,287 [ActiveMQ Session Task-3] org.springframework.jdbc.datasource.DataSourceUtils - Fetching JDBC Connection from DataSource
[DEBUG] 2019-05-07 21:46:51,302 [ActiveMQ Session Task-3] org.springframework.jdbc.datasource.DataSourceUtils - Returning JDBC Connection to DataSource
[INFO] 2019-05-07 21:46:51,302 [ActiveMQ Session Task-3] com.easyoj.judger.core.Compiler - Start compiling with command: javac -encoding UTF-8 C:/tmp/eoj-1176/BScHhrViKCpr.java
[WARN] 2019-05-07 21:46:51,521 [ActiveMQ Session Task-3] org.springframework.jms.listener.SimpleMessageListenerContainer - Execution of JMS message listener failed, and no ErrorHandler has been set.
java.lang.Error: API:     CreateProcess
Code:    1326
Message: ????°?: δ?????§???ò?í?ó?
	at com.easyoj.judger.core.Runner.getRuntimeResult(Native Method) ~[judger.jar:?]
	at com.easyoj.judger.core.Runner.getRuntimeResult(Runner.java:154) ~[judger.jar:?]
	at com.easyoj.judger.core.Compiler.getCompileResult(Compiler.java:78) ~[judger.jar:?]
	at com.easyoj.judger.core.Compiler.getCompileResult(Compiler.java:35) ~[judger.jar:?]
	at com.easyoj.judger.core.Dispatcher.compile(Dispatcher.java:103) ~[judger.jar:?]
	at com.easyoj.judger.core.Dispatcher.createNewTask(Dispatcher.java:61) ~[judger.jar:?]
	at com.easyoj.judger.application.ApplicationDispatcher.onSubmissionCreated(ApplicationDispatcher.java:33) ~[judger.jar:?]
	at com.easyoj.judger.messenger.MessageReceiver.newSubmissionHandler(MessageReceiver.java:53) ~[judger.jar:?]
	at com.easyoj.judger.messenger.MessageReceiver.onMessage(MessageReceiver.java:32) ~[judger.jar:?]
	at org.springframework.jms.listener.AbstractMessageListenerContainer.doInvokeListener(AbstractMessageListenerContainer.java:761) ~[judger.jar:?]
	at org.springframework.jms.listener.AbstractMessageListenerContainer.invokeListener(AbstractMessageListenerContainer.java:699) ~[judger.jar:?]
	at org.springframework.jms.listener.AbstractMessageListenerContainer.doExecuteListener(AbstractMessageListenerContainer.java:674) ~[judger.jar:?]
	at org.springframework.jms.listener.AbstractMessageListenerContainer.executeListener(AbstractMessageListenerContainer.java:645) ~[judger.jar:?]
	at org.springframework.jms.listener.SimpleMessageListenerContainer.processMessage(SimpleMessageListenerContainer.java:322) ~[judger.jar:?]
	at org.springframework.jms.listener.SimpleMessageListenerContainer.lambda$createListenerConsumer$2(SimpleMessageListenerContainer.java:299) ~[judger.jar:?]
	at org.apache.activemq.ActiveMQMessageConsumer.dispatch(ActiveMQMessageConsumer.java:1404) [judger.jar:?]
	at org.apache.activemq.ActiveMQSessionExecutor.dispatch(ActiveMQSessionExecutor.java:131) [judger.jar:?]
	at org.apache.activemq.ActiveMQSessionExecutor.iterate(ActiveMQSessionExecutor.java:202) [judger.jar:?]
	at org.apache.activemq.thread.PooledTaskRunner.runTask(PooledTaskRunner.java:133) [judger.jar:?]
	at org.apache.activemq.thread.PooledTaskRunner$1.run(PooledTaskRunner.java:48) [judger.jar:?]
	at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) [?:1.8.0_131]
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) [?:1.8.0_131]
	at java.lang.Thread.run(Unknown Source) [?:1.8.0_131]

提交之后一直是 pending , 会不会是DLL链接库版本的问题呢...

@haitaoya
Copy link
Author

haitaoya commented May 8, 2019

......sorry
我忘记改密码了...服务器的密码和我本机的密码 不一致。。。。

抱歉抱歉抱歉...
image
这里的错误信息为什么是乱码呢。。。应该是window系统返回的错误信息。
怎么才能正常显示呀?

@hzxie
Copy link
Owner

hzxie commented May 8, 2019

Windows上编码默认是GBK,我用的应该是UTF-8。
反正自古以来就是乱七八糟的。反正我用英文版,懒得管这些破事儿。
我觉得也不重要吧。根据Error Code一查就知道啦。

@haitaoya
Copy link
Author

haitaoya commented May 8, 2019

嗯嗯。 好的

@haitaoya haitaoya closed this as completed May 8, 2019
@hzxie
Copy link
Owner

hzxie commented May 8, 2019

有一个建议: 下次能不能每个问题开新的issue。别一直回复。

@hzxie hzxie reopened this May 8, 2019
@hzxie
Copy link
Owner

hzxie commented May 8, 2019

你最开始的问题我还没解决。所以这个issue不能关。

@haitaoya
Copy link
Author

haitaoya commented May 8, 2019

嗯嗯,我下次注意。

@everlo
Copy link

everlo commented Apr 27, 2021

感谢作者大大的oj,小弟捣鼓了好久,总算是部署起来了,现在的话我们要增加题目。是通过什么方式操作的呢。貌似没有看到相关页面和接口呢

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants