Uploaded image for project: 'Moodle'
  1. Moodle
  2. MDL-63798

Assignment restore fails with deleted group

    XMLWordPrintable

Details

    • MOODLE_35_STABLE, MOODLE_36_STABLE
    • MOODLE_35_STABLE
    • MDL-63798_assign_restore_groups
    • Hide
      • Create a course
      • Create a group
      • Enrol 2 students in the course, 1 in the group, 1 not in the group
      • Create an assignment, with group submission on, but do not require users to be a member of a group to submit
      • Log in as each of the students and submit something for the assignment
      • Log back in as admin and delete the group
      • Backup + restore the course

      Check:

      • Course restores without any errors
      Show
      Create a course Create a group Enrol 2 students in the course, 1 in the group, 1 not in the group Create an assignment, with group submission on, but do not require users to be a member of a group to submit Log in as each of the students and submit something for the assignment Log back in as admin and delete the group Backup + restore the course Check: Course restores without any errors

    Description

      Steps to reproduce:

      • Create a course
      • Create a group
      • Enrol 2 users in the course, 1 in the group, 1 not in the group
      • Create an assignment, with group submission on, but do not require users to be a member of a group to submit
      • Log in as each of the users and submit something for the assignment
      • Log back in as admin and delete the group
      • Backup + restore the course

      Expected result:

      • Backup restores successfully

      Actual result:

      • Error: "ERROR: duplicate key value violates unique constraint "mdl_assisubm_assusegroatt_uix"
        DETAIL: Key (assignment, userid, groupid, attemptnumber)=(2, 0, 0, 0) already exists.
        INSERT INTO mdl_assign_submission (userid,timecreated,timemodified,status,groupid,attemptnumber,latest,assignment) VALUES($1,$2,$3,$4,$5,$6,$7,$8) RETURNING id
        [array (
        'userid' => '0',
        'timecreated' => '1540804290',
        'timemodified' => '1540804297',
        'status' => 'submitted',
        'groupid' => 0,
        'attemptnumber' => '0',
        'latest' => 0,
        'assignment' => 2,
        )]
        Error code: dmlwriteexception"

      Reason: during restore, mod_assign maps any groupids it can't find onto 0 (no group), but there is already a no group submission in the same backup, so this causes the unique key violation.

      Suggested fix: skip restore of any assign submissions where the groupid is set but the group does not exist in the backup (as those submissions cannot be viewed anyway).

      Attachments

        Activity

          People

            davosmith Davo Smith
            davosmith Davo Smith
            Damyon Wiese Damyon Wiese
            Eloy Lafuente (stronk7) Eloy Lafuente (stronk7)
            Anna Carissa Sadia Anna Carissa Sadia
            Adrian Greeve, Jake Dallimore, Mathew May, Mihail Geshoski, Adrian Greeve, Jake Dallimore, Mathew May, Mihail Geshoski
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:
              14/Jan/19

              Time Tracking

                Estimated:
                Original Estimate - 0 minutes
                0m
                Remaining:
                Remaining Estimate - 0 minutes
                0m
                Logged:
                Time Spent - 30 minutes
                30m