Removing a timed assessment during take may disable timed assessment server thread. Timed assessments get stuck in progress.
Description
depends on
incorporates
is depended on by
is related to
Activity

Matthew Jones July 14, 2017 at 6:24 PM
Marking tested based on UVA's comments

Tiffany Stull June 13, 2017 at 8:56 AM
It seems other institutions may be experiencing this issue, so I've modified the title of the jira to hopefully make it easier to find. Also included a note in the description for workarounds to submit stuck exams.

David Hutchins April 17, 2017 at 1:25 PMEdited
We have had this (PR: https://github.com/sakaiproject/sakai/pull/4227) in production since 4/11/2017, and at the time of this comment have processed 4300 timed assessments, 208 of which were submitted by the timer code.

David Hutchins March 9, 2017 at 1:48 PM
I have re-written the TimedAssessmentQueue to use a ScheduledExecutorService with multiple threads, and converted the "thread" code into a Runnable that gets queued for each assessment, instead of the current one thread for all approach. We still need to finish testing, but so far it looks good.
Can't prove it, but I suspect this issue is responsible for a number of other "can't reproduce " timed assessment issues we have encountered.

Karen McPhaul March 9, 2017 at 10:17 AM
We experienced this on our 11.2 production instance. About week ago, out of the blue, we began getting daily reports of timed tests not submitting when the timer ran out. We verified that any time a student left a timed test before the timer ran out, the test would not submit when the time limit was reached. On a separate test system running 11.1, we followed the steps in this jira, the exception was thrown, and the problem began on that system. A full system restart did set things right again on both systems.
Details
Details
Priority
Affects versions
Fix versions
Components
Assignee

Reporter

We (UVa) encountered a fault on a production server, that proved difficult to hunt down. After investigation, the root cause of this fault was found to be that exceptions thrown from GradingService may cause SubmitTimedAssessmentThread to die before removing the offending item from the queue. After this has occurred, the server will not timer submit any further assessments from the thread. Restart of tomcat is required after this fault is encountered.
This condition can be reproduced as follows:
As Instructor:
Create a timed assessment with the publishes to GB
As Student:
Begin taking the assessment and see the timer counting down
Leave the assessment
As Instructor:
Delete the published assessment before the timer expires
Wait for the timer to attempt submission
In tomcat logs a GradebookServiceException is seen:
org.sakaiproject.tool.assessment.services.GradebookServiceException: org.sakaiproject.service.gradebook.shared.AssessmentNotFoundException: There is no assessment id=x in gradebook uid=xxx-xxx-xxx
If you attempt another timed assessment then leave it, the assessment it will never submit.
Note: Workarounds for institutions who may be experiencing this issue to get stuck exams submitted:
Instructor could use Autosubmit to retrieve stuck exams.
If the latest submission date for the exam had not passed so the student with the stuck exam could still access the link to it, the student could log out of the affected Sakai server and log into a different server (where the timers for all assessments are still working). Once on a server with functional timers, if the student with the stuck exam clicked the link to it and tried to continue taking the assessment, they’d be told their exam was already submitted and they couldn’t take it. At this point, the timer submit would be triggered and a couple minutes later, the submission would complete.