Skip to content

Check whether there exists file conflict on both scheduler and judger #29

@LauYeeYu

Description

@LauYeeYu

If there is a file conflict, the behaviour depends on which file is prepared later than others. This is REALLY strange because it will cause the result to be random.

如果发生文件冲突,评测行为将依赖于评测程序中哪个文件后被准备好。这个行为会导致评测结果是随机的。

Example:

src.hpp is mentioned in the supportedFiles in config.json, and the spj version is 4. Either the file in the problem package or the file submitted will be use depending on which one has been prepared later.

config.jsonsupportedFiles 里有 src.hpp,评测点为 spj 4。评测机可能使用题目数据包中的 src.hpp,也可能使用用户提交的 src.hpp

Solution:

解决方案:

  • (Quick fix) The judger should detect the file conflict before fetching. 评测机应当在抓取数据前检测文件冲突。
  • (Better fix) The scheduler should detect the file conflict when generating the judger plan. Scheduler 应当在生成评测计划的时候检测文件冲突。

Note: The quick fix should be done even if the better fix is done because there are some judger plan that has already got a file conflict.

注意:即使已经完成了 better fix,也需要实现 quick fix,因为已经有了错误的数据包。

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions