DMOJ / online-judge

A modern open-source online judge and contest platform system.
https://dmoj.ca
GNU Affero General Public License v3.0
949 stars 365 forks source link

MOSS doesn't check if submissions are virtual or not #1241

Open Dessertion opened 4 years ago

Dessertion commented 4 years ago

When MOSSing a contest, the submission script uploads all "in contest" submissions, including if they are submissions during a virtual contest.

Example: http://moss.stanford.edu/results/160969052/match2.html

https://dmoj.ca/submission/1940899 https://dmoj.ca/submission/1940897

These submissions were both made during virtual contests, but were caught in the MOSS detection.

Ninjaclasher commented 4 years ago

Assuming by virtual, you mean "spectating" (virtual should be filtered out properly already):

The original reason for including submissions from spectating participations was to prevent a user from submitting while spectating, and for another user to copy their code in a live participation. If spectating participations are not included, this scenario would not be caught by MOSS. Of course, the downside (which is described in this issue) would be if two users copy code while both are spectating, but that should probably still be considered cheating.

kiritofeng commented 3 years ago

The issue with the current implementation is the highest scoring submission is taken, regardless of whether it was a live participation or the result of spectating.

Thus we should run MOSS on both the highest scoring live and the highest scoring spectated submissions for each user.