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

Restoring course, duplicate assignment and/or quiz with long Desc generates error ORA-01460

    XMLWordPrintable

    Details

    • Database:
      Oracle
    • Testing Instructions:
      Hide

      1. Restore with Oracle the attached course. It includes some LONG (> 4000 byte) descriptions in activities. Should restore without error.
      2. Run unit tests for all DBs.

      Show
      1. Restore with Oracle the attached course. It includes some LONG (> 4000 byte) descriptions in activities. Should restore without error. 2. Run unit tests for all DBs.
    • Affected Branches:
      MOODLE_28_STABLE
    • Fixed Branches:
      MOODLE_28_STABLE, MOODLE_29_STABLE
    • Pull from Repository:
    • Pull Master Branch:

      Description

      By the tests we've done, the size of the field that contains the event's description on the calendar is max of 4.000.

      This seems the same issue reported in these issues:

      https://tracker.moodle.org/browse/MDL-50579
      https://tracker.moodle.org/browse/MDL-47176

      Steps to reproduce duplicating an assignment/quiz (it crashes on restoring a course too, because it seems to use the same function on both actions):

      • Create an assignment with a description of more than 4.000 chars.
      • In configuration, put a start/due date, in order to create an event on the calendar.
      • Save
      • In editor mode, duplicate the assignment. You'll get an error like this:

      =======

      S'ha produït un error en llegir a la base de dades

      Més informació d'aquest error

      Debug info: ORA-01460: unimplemented or unreasonable conversion requested
      SELECT *
      FROM (SELECT id
      FROM m_event
      WHERE dbms_lob.substr(name, 255,1) = dbms_lob.substr(:o_param1, 255,1)
      AND courseid = :o_param2
      AND repeatid = :o_param3
      AND modulename = :o_param4
      AND timestart = :o_param5
      AND timeduration = :o_param6
      AND dbms_lob.substr(description, 255,1) = dbms_lob.substr(:o_param7, 255,1))
      WHERE rownum <= :o_oracle_num_rows
      [array (
      'o_param1' => 'AP 1. Mòdul 1. Tema 1 Activitats preventives. Del 04/11/2014-20/11/2014',
      'o_param2' => 208,
      'o_param3' => '0',
      'o_param4' => 'assign',
      'o_param5' => 1419288900,
      'o_param6' => '0',
      'o_param7' => '<h1 class="aula"><span style="font-size:x-large;">La intersectorialitat dins les Activitats Preventives de Salut.</span></h1>
      <p>Les activitats preventives per a la salut han de tenir un enfocament multidisciplinari i intersectorial. Un clar exemple d’aquesta filosofia el representaria el projecte PAAS (Pla integral per a la promoció de la salut mitjançant l’Activitat física i l’Alimentació Saludable), elaborat pel Departament de Salut en resposta a l’increment observat en la prevalença d’obesitat, d’acord amb l’estratègia mundial de l’<a title="OMS" href="http://www.who.int/es/" target="_blank">OMS</a> i de la <a title="NAOS" href="http://www.naos.aesan.msssi.gob.es/" target="_blank">NAOS</a>.</p>
      <p>Les activitats preventives s’implementen des de molts diversos àmbits que els professionals sanitaris hem de conèixer i poder recomanar, si és el cas, a la nostra consulta.</p>
      <h3 class="aula">Objectius de l\'activitat</h3>
      <blockquote>
      <ul><li>Conèixer algun dels recursos en matèria de salut que tenim a l’abast, en aquest cas el <strong>PAAS</strong> (Pla integral per a la promoció de la salut mitjançant l’activitat física i l’alimentació saludable) per incorporar-los al dia a dia de la nostra feina.</li>
      <li title="Alimenatció mediterrània">Donar a conèixer el projecte <strong>AMED </strong>dins l’àmbit comunitari: promoció de l’alimentació mediterrània i saludable en els establiments de restauració.</li>
      </ul></blockquote>
      <h2 class="aula">Instruccions per a l\'alumnat</h2>
      <h3 class="aula">Descripció de l\'activitat:</h3>
      <p>1. Entra al enllaç del PAAS que et facilitem dins de documents complementaris i revisa els programes i les intervencions proposades en els diversos àmbits del programa. De tots ells, escull el que, sota el teu punt de vista, consideres que podria ser el més efectiu i eficient. Participa en el fòrum especificant:</p>
      <ul><li>Títol del programa/intervenció que has escollit.</li>
      <li>A quin àmbit pertany</li>
      <li>De què tracta el programa/intervenció? Breu resum.</li>
      <li>Perquè consideres que és efectiu?</li>
      <li>Perquè consideres que és eficient?</li>
      </ul><p>2. Llegeix la continuació del cas del sr. Antoni en el apartat de documents complementaris. En el mateix apartat, trobaràs el enllaç “Projecte AMED”, on hauràs de trobar els requisits que han de complir els restaurants per tal que els atorguin el distintiu Amed, i dins d’aquests has d’enumerar cinc requisits <strong>obligatoris</strong>.</p>
      <h3 class="aula">Ara hauràs de...</h3>
      <ul><li>Participar al fórum exposant el programa/intervenció que hagis escollit i especificar els 5 apartats que detallem a la descripció de l’activitat.</li>
      <li>Enumerar cinc dels requisits <strong>obligatoris</strong> que han de cumplir els restaurants per tal que els atorguin el distintiu Amed.</li>
      </ul><h3 class="aula">Format i extensió</h3>
      <ul><li>Participació al Fòrum de l\'activitat fent un “responder” al tema de debat que trobaràs “Activitat 1: PAAS”. Extensió màxima: 10 línies.</li>
      <li>Lliurament d\'un document de text amb l\'enumeració de 5 dels requisits <strong>obligatoris </strong>que han de complir els restaurants Amed: Extensió màxima 5 línies.</li>
      </ul><p style="padding-left:30px;"><span style="font-size:xx-small;">1 pàgina = 2100 caràcters / 330 paraules per pàgina</span></p>
      <p style="text-align:right;"><span style="font-size:small;">Per formalitzar el lliurament caldrà que guardeu el document que elaboreu amb el nom d\'arxiu següent:<strong><em><strong> cognom1_cognom2_modulX_actX</strong></em></strong></span></p>
      <p style="padding-left:30px;text-align:right;"><strong><span style="font-size:x-small;"><em>Tots els lliuraments per part dels alumnes segons la normativa de IL3 han de tenir aquest nom de i seguir aquesta estructura (sense accents)</em></span></strong></p>
      <h3 class="aula">Documents complementaris</h3>
      <ul><li><a title="PAAS" href="http://www20.gencat.cat/portal/site/salut/%20menuitem.f33aa5d2647ce0dbe23ffed3b0c0e1a0/?%20vgnextoid=0d2155a903ee2310VgnVCM2000009b0c1e0aRCRD&vgnextchannel=0d2155a903ee%202310VgnVCM2000009b0c1e0aRCRD" target="_blank"></a><a href="http://www20.gencat.cat/portal/site/salut/menuitem.f33aa5d2647ce0dbe23ffed3b0c0e1a0/?vgnextoid=0d2155a903ee2310VgnVCM2000009b0c1e0aRCRD&vgnextchannel=0d2155a903ee2310VgnVCM2000009b0c1e0aRCRD" target="_blank">PAAS. Pla integral per a la promoció de la salut mitjançant l’activitat física i l’alimentació saludable</a>.</li>
      </ul><div>
      <h3 class="aula" style="padding-left:30px;">Cas del Sr. Antoni: <i style="font-size:13px;font-weight:normal;line-height:1.231;">El senyor Antoni de 40 anys acudeix a la consulta del CAP perquè voldria perdre pes, tot i que ja intenta controlar la dieta per la seva hipercolesterolèmia diagnosticada de fa un temps. Li comenta a la infermera que ara té més temps, ja que la seva mare, ja disposa d’una cuidadora. L\'Antoni, vol aprofitar que ara pot dedicar-se més temps.</i></h3>
      <p class="aula" style="padding-left:30px;"><em>Dades del senyor Antoni</em>:</p>
      <ul><li><em>IMC: 30,04</em></li>
      <li><em>Pes: 92kg</em></li>
      <li><em>Alçada: 175cm</em></li>
      </ul><p style="padding-left:30px;" align="left"><em>Treballa de comercial i això l\'obliga a dinar cada dia de restaurant. Tinguem en compte els recursos que ens ofereix el PAAS, dins l’àmbit comunitari, que aconsellen el Sr. Antoni escollir, sempre que li sigui posible, restaurants acreditats amb el distintiu Amed (Alimentació mediterrània).</em></p>
      </div>
      <ul><li><a title="Alimenatció mediterrània" href="http://www.amed.cat/home.php" target="_blank">Projecte AMED</a></li>
      </ul><h3 class="aula">Criteris d\'avaluació</h3>
      <ul><li>Selecció d\'informació i argumentació al fòrum.</li>
      <li>Selecció correcta de 5 <strong>dels requisits obligatoris per als restaurants </strong>que vulguin obtenir l\'acreditació d\'alimentació Mediterrània.</li>
      </ul>',
      'o_oracle_num_rows' => 1,
      )]

      Error code: dmlreadexception

      Stack trace:
      line 443 of /lib/dml/moodle_database.php: dml_read_exception thrown
      line 271 of /lib/dml/oci_native_moodle_database.php: call to moodle_database->query_end()
      line 1093 of /lib/dml/oci_native_moodle_database.php: call to oci_native_moodle_database->query_end()
      line 1807 of /lib/dml/moodle_database.php: call to oci_native_moodle_database->get_recordset_sql()
      line 2425 of /backup/moodle2/restore_stepslib.php: call to moodle_database->record_exists_sql()
      line 137 of /backup/util/plan/restore_structure_step.class.php: call to restore_calendarevents_structure_step->process_calendarevents()
      line 103 of /backup/util/helper/restore_structure_parser_processor.class.php: call to restore_structure_step->process()
      line 178 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 190 of /backup/util/xml/parser/progressive_parser.class.php: call to progressive_parser_processor->receive_chunk()
      line 278 of /backup/util/xml/parser/progressive_parser.class.php: call to progressive_parser->publish()
      line ? of unknownfile: call to progressive_parser->end_tag()
      line 179 of /backup/util/xml/parser/progressive_parser.class.php: call to xml_parse()
      line 158 of /backup/util/xml/parser/progressive_parser.class.php: call to progressive_parser->parse()
      line 110 of /backup/util/plan/restore_structure_step.class.php: call to progressive_parser->process()
      line 181 of /backup/util/plan/base_task.class.php: call to restore_structure_step->execute()
      line 195 of /backup/moodle2/restore_activity_task.class.php: call to base_task->execute()
      line 177 of /backup/util/plan/base_plan.class.php: call to restore_activity_task->execute()
      line 167 of /backup/util/plan/restore_plan.class.php: call to base_plan->execute()
      line 333 of /backup/controller/restore_controller.class.php: call to restore_plan->execute()
      line 184 of /backup/util/ui/restore_ui.class.php: call to restore_controller->execute_plan()
      line 111 of /backup/restore.php: call to restore_ui->execute()

      =======

        Attachments

          Issue Links

            Activity

              People

              Assignee:
              stronk7 Eloy Lafuente (stronk7)
              Reporter:
              clopezm Carlos Lopez
              Peer reviewer:
              Tim Hunt
              Integrator:
              Andrew Nicols
              Tester:
              Rajesh Taneja
              Participants:
              Component watchers:
              Adrian Greeve, Jake Dallimore, Mathew May, Mihail Geshoski, Peter Dias, Andrew Nicols, Jun Pataleta, Michael Hawkins, Shamim Rezaie, Simey Lameze, Tim Hunt, Andrew Nicols, Jun Pataleta, Michael Hawkins, Shamim Rezaie, Simey Lameze
              Votes:
              1 Vote for this issue
              Watchers:
              7 Start watching this issue

                Dates

                Created:
                Updated:
                Resolved:
                Fix Release Date:
                14/Sep/15