-
Bug
-
Resolution: Unresolved
-
Minor
-
None
-
3.11.6
-
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.