Moodle
  1. Moodle
  2. MDL-35337

Fatal error trying to restore assignment in master taken from a 2.3 course

    Details

    • Type: Bug Bug
    • Status: Closed
    • Priority: Blocker Blocker
    • Resolution: Fixed
    • Affects Version/s: 2.4
    • Fix Version/s: 2.4
    • Component/s: Assignment
    • Labels:
    • Rank:
      44009

      Description

      Hi guys,

      I've just tried to restore a course backup in master of the World of Water course found at http://school.demo.moodle.net/course/view.php?id=115
      There were also several notices on that page.

      First up the fatal error including stack trace:

      Debug info: ERROR: null value in column "extensionduedate" violates not-null constraint
      INSERT INTO mdl_assign_grades (userid,timecreated,timemodified,grader,grade,locked,mailed,assignment,extensionduedate) VALUES($1,$2,$3,$4,$5,$6,$7,$8,$9) RETURNING id
      [array (
      'userid' => 109,
      'timecreated' => 1341062516,
      'timemodified' => 1341062516,
      'grader' => 92,
      'grade' => '7.00000',
      'locked' => '0',
      'mailed' => '0',
      'assignment' => 2,
      'extensionduedate' => NULL,
      )]
      Error code: dmlwriteexception
      Stack trace:
      line 427 of /lib/dml/moodle_database.php: dml_write_exception thrown
      line 239 of /lib/dml/pgsql_native_moodle_database.php: call to moodle_database->query_end()
      line 827 of /lib/dml/pgsql_native_moodle_database.php: call to pgsql_native_moodle_database->query_end()
      line 879 of /lib/dml/pgsql_native_moodle_database.php: call to pgsql_native_moodle_database->insert_record_raw()
      line 144 of /mod/assign/backup/moodle2/restore_assign_stepslib.php: call to pgsql_native_moodle_database->insert_record()
      line 131 of /backup/util/plan/restore_structure_step.class.php: call to restore_assign_activity_structure_step->process_assign_grade()
      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 212 of /backup/util/xml/parser/progressive_parser.class.php: call to progressive_parser->publish()
      line ? of unknownfile: call to progressive_parser->start_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 192 of /backup/moodle2/restore_activity_task.class.php: call to base_task->execute()
      line 163 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 315 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()

      Next the notices without stack traces (hopefully not needed):

      Notice: Undefined property: stdClass::$teamsubmissiongroupingid in mod/assign/backup/moodle2/restore_assign_stepslib.php on line 76

      Notice: Undefined property: stdClass::$groupid in mod/assign/backup/moodle2/restore_assign_stepslib.php on line 114

      Notice: Undefined property: stdClass::$extensionduedate in mod/assign/backup/moodle2/restore_assign_stepslib.php on line 142

      My apologies if there are already issues for these, I had a quick search but didn't find anything.

      To reproduce:

      1. Log into http://school.demo.moodle.net/course/view.php?id=115 as a manager
      2. Create a backup of the course and download it (use defaults)
      3. Restore on your local site (all defaults) and follow through until you need to map roles
      4. When asked to map out the roles just leave parent as nothing (doubt this is important but just so its known what I did)
      5. Click continue and wait (can take some time)
      6. Observe above errors.

      Cheers
      Sam

        Issue Links

          Activity

          Hide
          Damyon Wiese added a comment -

          This change properly sets the defaults for these tables on restore:
          grade - extensiondate,
          submission - groupid
          assign - teamsubmissiongroupingid

          Show
          Damyon Wiese added a comment - This change properly sets the defaults for these tables on restore: grade - extensiondate, submission - groupid assign - teamsubmissiongroupingid
          Hide
          Damyon Wiese added a comment -

          Course backup that triggers this bug.

          Show
          Damyon Wiese added a comment - Course backup that triggers this bug.
          Hide
          Dan Poltawski added a comment -

          The main moodle.git repository has just been updated with latest weekly modifications. You may wish to rebase your PULL branches to simplify history and avoid any possible merge conflicts. This would also make integrator's life easier next week.

          TIA and ciao

          Show
          Dan Poltawski added a comment - The main moodle.git repository has just been updated with latest weekly modifications. You may wish to rebase your PULL branches to simplify history and avoid any possible merge conflicts. This would also make integrator's life easier next week. TIA and ciao
          Hide
          Dan Poltawski added a comment -

          Thanks Daymon, i've integrated that now

          Show
          Dan Poltawski added a comment - Thanks Daymon, i've integrated that now
          Hide
          Rossiani Wijaya added a comment -

          Tested this on integration repo master.

          There is no error during the restore process.

          Test passed.

          Show
          Rossiani Wijaya added a comment - Tested this on integration repo master. There is no error during the restore process. Test passed.
          Hide
          Dan Poltawski added a comment -

          Congratulations, you've done it!

          Nf n erjneq sbe fhpprfshy vagrtengvba vagb guvf jrrxf eryrnfr, V pna abj qvfpybfr gb lbh gur rkvfgnapr bs shapgvba fge_ebg13(), gb tb va lbhe gbbyxvg nybat jvgu uggc://cuc.arg/znahny/ra/shapgvba.tmtrgff.cuc

          Cyrnfr qb abg nyybj guvf vasbezngvba gb cnff shegure.

          Show
          Dan Poltawski added a comment - Congratulations, you've done it! Nf n erjneq sbe fhpprfshy vagrtengvba vagb guvf jrrxf eryrnfr, V pna abj qvfpybfr gb lbh gur rkvfgnapr bs shapgvba fge_ebg13(), gb tb va lbhe gbbyxvg nybat jvgu uggc://cuc.arg/znahny/ra/shapgvba.tmtrgff.cuc Cyrnfr qb abg nyybj guvf vasbezngvba gb cnff shegure.

            People

            • Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: