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

error while writing to database while restoring a backed up course that uses course completion

    XMLWordPrintable

Details

    • MySQL
    • MOODLE_20_STABLE, MOODLE_21_STABLE, MOODLE_22_STABLE
    • MOODLE_20_STABLE, MOODLE_21_STABLE
    • wip-mdl-30466
    • Hide
      1. Create a course with course completion tracking
      2. Create a database activity and set "Require grade" in Activity completion to "Student must receive a grade to complete this activity"
      3. Backup and try restore
      4. no error should be encountered.

      Also, run test from MDL-28116 and MDLQA-1356
      NOTE:
      Make sure to test on 20_STABLE (if integrated)

      Show
      Create a course with course completion tracking Create a database activity and set "Require grade" in Activity completion to "Student must receive a grade to complete this activity" Backup and try restore no error should be encountered. Also, run test from MDL-28116 and MDLQA-1356 NOTE: Make sure to test on 20_STABLE (if integrated)

    Description

      I set up a course as per the instructions in MDLQA-1356. I had previously run an unrelated QA test testing course completion so it contained a database activity that required students to get a grade to before the activity would be marked complete. One student had completed the activity.

      I performed a full back up then restored into a new course and got the following error.

      Error writing to database

      More information about this error

      Debug info: Duplicate entry '3-8' for key 'mdl_courmoducomp_usecou_uix'
      INSERT INTO mdl_course_modules_completion (userid,completionstate,viewed,timemodified,coursemoduleid) VALUES(?,?,?,?,?)
      [array (
      0 => '3',
      1 => '1',
      2 => '0',
      3 => 1322192283,
      4 => 8,
      )]
      Stack trace:
       
          line 397 of /lib/dml/moodle_database.php: dml_write_exception thrown
          line 893 of /lib/dml/mysqli_native_moodle_database.php: call to moodle_database->query_end()
          line 935 of /lib/dml/mysqli_native_moodle_database.php: call to mysqli_native_moodle_database->insert_record_raw()
          line 2489 of /backup/moodle2/restore_stepslib.php: call to mysqli_native_moodle_database->insert_record()
          line 131 of /backup/util/plan/restore_structure_step.class.php: call to restore_userscompletion_structure_step->process_completion()
          line 103 of /backup/util/helper/restore_structure_parser_processor.class.php: call to restore_structure_step->process()
          line 125 of /backup/util/xml/parser/processors/grouped_parser_processor.class.php: call to restore_structure_parser_processor->dispatch_chunk()
          line 91 of /backup/util/helper/restore_structure_parser_processor.class.php: call to grouped_parser_processor->postprocess_chunk()
          line 148 of /backup/util/xml/parser/processors/simplified_parser_processor.class.php: call to restore_structure_parser_processor->postprocess_chunk()
          line 92 of /backup/util/xml/parser/processors/progressive_parser_processor.class.php: call to simplified_parser_processor->process_chunk()
          line 169 of /backup/util/xml/parser/progressive_parser.class.php: call to progressive_parser_processor->receive_chunk()
          line 253 of /backup/util/xml/parser/progressive_parser.class.php: call to progressive_parser->publish()
          line ? of unknownfile: call to progressive_parser->end_tag()
          line 158 of /backup/util/xml/parser/progressive_parser.class.php: call to xml_parse()
          line 137 of /backup/util/xml/parser/progressive_parser.class.php: call to progressive_parser->parse()
          line 105 of /backup/util/plan/restore_structure_step.class.php: call to progressive_parser->process()
          line 153 of /backup/util/plan/base_task.class.php: call to restore_structure_step->execute()
          line 182 of /backup/moodle2/restore_activity_task.class.php: call to base_task->execute()
          line 148 of /backup/util/plan/base_plan.class.php: call to restore_activity_task->execute()
          line 157 of /backup/util/plan/restore_plan.class.php: call to base_plan->execute()
          line 302 of /backup/controller/restore_controller.class.php: call to restore_plan->execute()
          line 147 of /backup/util/ui/restore_ui.class.php: call to restore_controller->execute_plan()
          line 46 of /backup/restore.php: call to restore_ui->execute()

      Attachments

        Issue Links

          Activity

            People

              rajeshtaneja Rajesh Taneja
              andyjdavis Andrew Davis
              Sam Marshall Sam Marshall
              Eloy Lafuente (stronk7) Eloy Lafuente (stronk7)
              Nobody Nobody
              Adrian Greeve, Jake Dallimore, Mathew May, Mihail Geshoski, Sujith Haridasan, Amaia Anabitarte, Carlos Escobedo, Ferran Recio, Ilya Tregubov, Laurent David, Sara Arjona (@sarjona), Adrian Greeve, Jake Dallimore, Mathew May, Mihail Geshoski, Sujith Haridasan
              Votes:
              0 Vote for this issue
              Watchers:
              0 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:
                9/Jan/12