Uploaded image for project: 'OpenOLAT'
  1. OpenOLAT
  2. OO-2600

RS publishing a course with a SCORM element

    XMLWordPrintable

    Details

    • Type: Bug
    • Status: Closed (View Workflow)
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: 11.3
    • Component/s: None
    • Labels:
      None

      Description

      This error appears sometimes on a single specific instance. The solution is to replace the pessimistic locking by a simple update statement. In both, last commit win.

      2017-03-07 09:44:57,897 [ajp-nio2-8017-exec-8] ERROR DBRuntimeException - OLAT::ERROR ^%^ N17-E6 ^%^ org.olat.core.logging
      https://xyz.olat.com/auth/RepositoryEntry/24084481/Editor/0 ^%^ Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko
      **RedScreen** commit failed, rollback transaction
      
      <dispatchinfo>
      	<componentinfo>
      		<compname>pbl.quick.auto</compname>
      		<compclass>org.olat.core.gui.components.link.Link</compclass>
      		<extendedinfo>n/a</extendedinfo>
      		<event>
      			<class&gt;org.olat.core.gui.control.Event</class&gt;
      			<command>pbl.quick.auto</command>
      			<tostring>com:pbl.quick.auto,org.olat.core.gui.control.Event@809d32e3</tostring>
      		</event>
      	</componentinfo>
      	<controllerinfo>
      		<controllername>org.olat.course.editor.QuickPublishController</controllername>
      		<controllername>org.olat.course.editor.EditorMainController</controllername>
      		<controllername>org.olat.course.run.CourseRuntimeController</controllername>
      		<controllername>org.olat.core.commons.fullWebApp.BaseFullWebappController</controllername>
      	</controllerinfo>
      </dispatchinfo>
      
      >>> stack of 1.cause::org.olat.core.logging.DBRuntimeException: commit failed, rollback transaction
      -> at org.olat.core.commons.persistence.DBImpl.commit(DBImpl.java:755)
         at org.olat.core.dispatcher.mapper.manager.MapperDAO.updateConfiguration(MapperDAO.java:82)
         at org.olat.core.dispatcher.mapper.manager.MapperServiceImpl.register(MapperServiceImpl.java:122)
         at org.olat.core.gui.control.controller.BasicController.registerCacheableMapper(BasicController.java:237)
         at org.olat.core.gui.control.controller.BasicController.registerCacheableMapper(BasicController.java:215)
         at org.olat.core.gui.control.generic.iframe.IFrameDisplayController.<init>(IFrameDisplayController.java:188)
         at org.olat.modules.scorm.ScormAPIandDisplayController.<init>(ScormAPIandDisplayController.java:179)
         at org.olat.modules.scorm.ScormMainManager.createScormAPIandDisplayController(ScormMainManager.java:133)
         at org.olat.course.nodes.scorm.ScormRunController.doLaunch(ScormRunController.java:309)
         at org.olat.course.nodes.scorm.ScormRunController.init(ScormRunController.java:157)
         at org.olat.course.nodes.scorm.ScormRunController.<init>(ScormRunController.java:124)
      >>> stack of 2.cause::javax.persistence.RollbackException: Error while committing the transaction
      -> at org.hibernate.internal.ExceptionConverterImpl.convertCommitException(ExceptionConverterImpl.java:75)
         at org.hibernate.engine.transaction.internal.TransactionImpl.commit(TransactionImpl.java:71)
         at org.olat.core.commons.persistence.DBImpl.commit(DBImpl.java:712)
         at org.olat.core.dispatcher.mapper.manager.MapperDAO.updateConfiguration(MapperDAO.java:82)
         at org.olat.core.dispatcher.mapper.manager.MapperServiceImpl.register(MapperServiceImpl.java:122
         at org.olat.core.gui.control.controller.BasicController.registerCacheableMapper(BasicController.java:237)
         at org.olat.core.gui.control.controller.BasicController.registerCacheableMapper(BasicController.java:215)
         at org.olat.core.gui.control.generic.iframe.IFrameDisplayController.<init>(IFrameDisplayController.java:188)
         at org.olat.modules.scorm.ScormAPIandDisplayController.<init>(ScormAPIandDisplayController.java:179)
         at org.olat.modules.scorm.ScormMainManager.createScormAPIandDisplayController(ScormMainManager.java:133)
         at org.olat.course.nodes.scorm.ScormRunController.doLaunch(ScormRunController.java:309)
      >>> stack of 3.cause::javax.persistence.OptimisticLockException: Batch update returned unexpected row count from update [0]; actual row count: 0; expected: 1
      -> at org.hibernate.internal.ExceptionConverterImpl.wrapStaleStateException(ExceptionConverterImpl.java:212)
         at org.hibernate.internal.ExceptionConverterImpl.convert(ExceptionConverterImpl.java:86)
         at org.hibernate.internal.ExceptionConverterImpl.convert(ExceptionConverterImpl.java:155)
         at org.hibernate.internal.ExceptionConverterImpl.convertCommitException(ExceptionConverterImpl.java:56)
         at org.hibernate.engine.transaction.internal.TransactionImpl.commit(TransactionImpl.java:71)
         at org.olat.core.commons.persistence.DBImpl.commit(DBImpl.java:712)
         at org.olat.core.dispatcher.mapper.manager.MapperDAO.updateConfiguration(MapperDAO.java:82)
         at org.olat.core.dispatcher.mapper.manager.MapperServiceImpl.register(MapperServiceImpl.java:122)
         at org.olat.core.gui.control.controller.BasicController.registerCacheableMapper(BasicController.java:237)
         at org.olat.core.gui.control.controller.BasicController.registerCacheableMapper(BasicController.java:215)
         at org.olat.core.gui.control.generic.iframe.IFrameDisplayController.<init>(IFrameDisplayController.java:188)
      >>> stack of 4.cause::org.hibernate.StaleStateException: Batch update returned unexpected row count from update [0]; actual row count: 0; expected: 1
      -> at org.hibernate.jdbc.Expectations$BasicExpectation.checkBatched(Expectations.java:67)
         at org.hibernate.jdbc.Expectations$BasicExpectation.verifyOutcome(Expectations.java:54)
         at org.hibernate.engine.jdbc.batch.internal.NonBatchingBatch.addToBatch(NonBatchingBatch.java:46)
         at org.hibernate.persister.entity.AbstractEntityPersister.update(AbstractEntityPersister.java:3186)
         at org.hibernate.persister.entity.AbstractEntityPersister.updateOrInsert(AbstractEntityPersister.java:3065)
         at org.hibernate.persister.entity.AbstractEntityPersister.update(AbstractEntityPersister.java:3445)
         at org.hibernate.action.internal.EntityUpdateAction.execute(EntityUpdateAction.java:145)
         at org.hibernate.engine.spi.ActionQueue.executeActions(ActionQueue.java:586)
         at org.hibernate.engine.spi.ActionQueue.executeActions(ActionQueue.java:460)
         at org.hibernate.event.internal.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:337)
         at org.hibernate.event.internal.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:39)
      

        Attachments

          Activity

            People

            Assignee:
            srosse Stéphane Rossé
            Reporter:
            srosse Stéphane Rossé
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Dates

              Created:
              Updated:
              Resolved:

                Time Tracking

                Estimated:
                Original Estimate - Not Specified
                Not Specified
                Remaining:
                Remaining Estimate - 0 minutes
                0m
                Logged:
                Time Spent - 35 minutes
                35m