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

"Internet connection is unreliable" issue in SCORMs

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Unresolved
    • Icon: Minor Minor
    • None
    • 3.11.6
    • SCORM
    • MOODLE_311_STABLE

      While opening SCORM packages with poorer connectivity, the popup and the message:
      "The SCORM player has determined that your Internet connection is unreliable or has been interrupted. If you continue in this SCORM activity, your progress may not be saved.
      You should exit the activity now, and return when you have a dependable Internet connection."
      appears.

      It would be easy to say that this is caused by poor connectivity and it's not a bug - but I think it is not that simple.

      The warning started appearing after upgrading to Moodle 3.8 or higher.
      The reason for this is the change for connectivity check in MDL-34498 .

      For SCORM module this is used in:
      https://github.com/moodle/moodle/blob/master/mod/scorm/player.php#L296

      // Add the keepalive system to keep checking for a connection.
      \core\session\manager::keepalive('networkdropped', 'mod_scorm', 30, 10);

      The issue there is that this keepalive call is used for 2 things:
      1. Checking network connectivity.
      2. Refreshing the session.

      Point 1 is not reliably checked here, because calling script:
      lib/ajax/service.php?sesskey=...&info=core_session_touch

      may timeout for other reasons than poor connectivity:

      • The Moodle session may be blocked.
      • The browser may queue this call because it's downloading other resources

      When opening SCORM package it is very common that a lot of assets is downloaded. And this error triggers.

      I think that the network connectivity check should be separated from session refresh. Checking static txt file was a good idea I think - as it removes the whole layer (PHP) and makes it easier to troubleshoot.

      Then - do we really need by defaults to refresh the session every 30 seconds? It's putting a lot of unnecessary stress on the servers with a lot of connections. Refreshing even every 15 minutes seems like enough.

            Unassigned Unassigned
            tmuras Tomasz Muras
            Votes:
            2 Vote for this issue
            Watchers:
            6 Start watching this issue

              Created:
              Updated:

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