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

Changing grading method causes database error in moodle 2.1

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Fixed
    • Icon: Critical Critical
    • 2.1
    • 2.1
    • Quiz
    • MOODLE_21_STABLE
    • MOODLE_21_STABLE
    • qa.moodle.net
    • Hide

      Create a quiz, allowing multiple attempts, with grading method set to maximum grade.
      Login as a student and make multiple attempts.
      Then change the grading method to first or last attempt. (Ideally tr
      Verify that the grades are recomputed correctly, in particular that you don't get a fatal error.

      Ideally try changing between all the grading methods and verify the scores after each change.

      Show
      Create a quiz, allowing multiple attempts, with grading method set to maximum grade. Login as a student and make multiple attempts. Then change the grading method to first or last attempt. (Ideally tr Verify that the grades are recomputed correctly, in particular that you don't get a fatal error. Ideally try changing between all the grading methods and verify the scores after each change.

      I was doing QA test MDLQA-1093 and ran into a problem when changing grading method for a quiz.

      Error reading from database

      More information about this error

      Debug info: Table 'qa.iquiza' doesn't exist

      SELECT users.userid, qg.id, qg.grade, newgrades.newgrade

      FROM (
      SELECT userid
      FROM mdl_quiz_grades qg
      WHERE quiz = ?
      UNION
      SELECT DISTINCT userid
      FROM mdl_quiz_attempts quiza2
      WHERE
      quiza2.timefinish <> 0 AND
      quiza2.preview = 0 AND
      quiza2.quiz = ?
      ) users

      LEFT JOIN mdl_quiz_grades qg ON qg.userid = users.userid AND qg.quiz = ?

      LEFT JOIN (

      SELECT quiza.userid, MAX(quiza.sumgrades) * 5 AS newgrade
      FROM mdl_quiz_attempts quiza
      JOIN (
      SELECT
      iquiza.userid,
      MIN(attempt) AS firstattempt,
      MAX(attempt) AS lastattempt

      FROM

      {quiz_attempts iquiza}

      WHERE
      iquiza.timefinish <> 0 AND
      iquiza.preview = 0 AND
      iquiza.quiz = ?

      GROUP BY iquiza.userid
      ) first_last_attempts ON first_last_attempts.userid = quiza.userid
      WHERE
      quiza.attempt = first_last_attempts.firstattempt AND
      quiza.timefinish <> 0 AND
      quiza.preview = 0 AND
      quiza.quiz = ?
      GROUP BY quiza.userid
      ) newgrades ON newgrades.userid = users.userid

      WHERE
      ABS(newgrades.newgrade - qg.grade) > 0.000005 OR
      (newgrades.newgrade IS NULL) <> (qg.grade IS NULL)
      [array (
      0 => '6',
      1 => '6',
      2 => '6',
      3 => '6',
      4 => '6',
      )]
      Stack trace:
      line 391 of /lib/dml/moodle_database.php: dml_read_exception thrown
      line 794 of /lib/dml/mysqli_native_moodle_database.php: call to moodle_database->query_end()
      line 723 of /mod/quiz/locallib.php: call to mysqli_native_moodle_database->get_records_sql()
      line 119 of /mod/quiz/lib.php: call to quiz_update_all_final_grades()
      line 327 of /course/modedit.php: call to quiz_update_instance()

            timhunt Tim Hunt
            rsturley Steve Turley
            Eloy Lafuente (stronk7) Eloy Lafuente (stronk7)
            Eloy Lafuente (stronk7) Eloy Lafuente (stronk7)
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated:
              Resolved:

                Error rendering 'clockify-timesheets-time-tracking-reports:timer-sidebar'. Please contact your Jira administrators.