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

mod_lti error on restore under oracle database


      It seems that, since some weeks ago, we are getting a consistent error with oracle and behat tests:

      $ php admin/tool/behat/cli/run.php --feature=/var/www/html/mod/lti/tests/behat/backup_restore.feature
      Running single behat site:
      Moodle 3.5dev (Build: 20180208), 315a0a3aaf6be4f71362b3e1dd958c69cd464fbd
      Php: 7.2.1, oci:, OS: Linux 4.9.75-linuxkit-aufs x86_64
      Server OS "Linux", Browser: "firefox"
      Started at 09-02-2018, 20:13
      --- Failed steps:
      001 Scenario: Backup and restore course with preconfigured course LTI tool on the same site # /var/www/html/mod/lti/tests/behat/backup_restore.feature:50
            And I restore "test_backup.mbz" backup into "Course 2" course using this options:     # /var/www/html/mod/lti/tests/behat/backup_restore.feature:70
              Moodle exception: Error reading from database More information about this error
              Debug info:
               ORA-00932: inconsistent datatypes: expected - got CLOB
              SELECT id
                          FROM b_lti_types
                          WHERE baseurl = :o_baseurl AND course = :o_course AND name = :o_name AND toolproxyid IS NULL
              [array (
                'o_baseurl' => 'http://www.example.com/lti/provider.php',
                'o_course' => 3,
                'o_name' => 'My course tool',
              Error code: dmlreadexception
              Stack trace:
              line 486 of /lib/dml/moodle_database.php: dml_read_exception thrown
              line 277 of /lib/dml/oci_native_moodle_database.php: call to moodle_database->query_end()
              line 1142 of /lib/dml/oci_native_moodle_database.php: call to oci_native_moodle_database->query_end()
              line 1100 of /lib/dml/oci_native_moodle_database.php: call to oci_native_moodle_database->get_recordset_sql()
              line 183 of /mod/lti/backup/moodle2/restore_lti_stepslib.php: call to oci_native_moodle_database->get_record_sql()
              line 132 of /mod/lti/backup/moodle2/restore_lti_stepslib.php: call to restore_lti_activity_structure_step->find_existing_lti_type()
              line 137 of /backup/util/plan/restore_structure_step.class.php: call to restore_lti_activity_structure_step->process_ltitype()
      2 scenarios (1 passed, 1 failed)
      58 steps (44 passed, 1 failed, 13 skipped)
      4m9.77s (48.07Mb)

      Problem was introduced for 33, 34 and master recently (December 2017) by MDL-34161. Cause being the baseurl = :o_baseurl comparison. They are TEXT (CLOB) fields and it needs sql_compare_text() helper.


            stronk7 Eloy Lafuente (stronk7)
            stronk7 Eloy Lafuente (stronk7)
            Mark Nelson Mark Nelson
            Andrew Lyons Andrew Lyons
            CiBoT CiBoT
            0 Vote for this issue
            3 Start watching this issue


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