-
Bug
-
Resolution: Fixed
-
Minor
-
4.2
-
MOODLE_402_STABLE
-
MOODLE_402_STABLE
-
MDL-76784-master -
Due to MDL-76129, the 'disabled' cache (used during install) can now use temporary request caches in some cases.
When used for modinfo cache, the system will try to use the versioned cache API (get_versioned). This API is implemented in all four cache loaders. However it is not implemented directly in cache stores.
The implementation for disabled cache directly returns cachestore_static without using a loader. As a result, this fails if a third-party plugin tries to do something that requires modinfo during its settings.php, for example. (I know! What idiot would ever do something so crazy! Hmm, who originally wrote mod_oublog...)
Default exception handler: Exception - Call to undefined method cachestore_static::get_versioned() D
|
ebug:
|
Error code: generalexceptionmessage
|
* line 478 of \lib\modinfolib.php: Error thrown
|
* line 441 of \lib\modinfolib.php: call to course_modinfo->__construct()
|
* line 2552 of \lib\modinfolib.php: call to course_modinfo::instance()
|
* line 589 of \course\lib.php: call to get_fast_modinfo()
|
* line 632 of \course\lib.php: call to course_create_sections_if_missing()
|
* line 22 of \mod\oublog\settings.php: call to course_add_cm_to_section()
|
* line 140 of \lib\classes\plugininfo\mod.php: call to include()
|
* line 47 of \admin\settings\plugins.php: call to core\plugininfo\mod->load_settings()
|
* line 8927 of \lib\adminlib.php: call to require()
|
* line 8959 of \lib\adminlib.php: call to admin_get_root()
|
* line 522 of \lib\installlib.php: call to admin_apply_default_settings()
|
* line 468 of \lib\phpunit\classes\util.php: call to install_cli_database()
|
* line 150 of \admin\tool\phpunit\cli\util.php: call to phpunit_util::install_site()
|
|
!!! Exception - Call to undefined method cachestore_static::get_versioned() !!!
|
!!
|
Error code: generalexceptionmessage !!
|
!! Stack trace: * line 478 of \lib\modinfolib.php: Error thrown
|
* line 441 of \lib\modinfolib.php: call to course_modinfo->__construct()
|
* line 2552 of \lib\modinfolib.php: call to course_modinfo::instance()
|
* line 589 of \course\lib.php: call to get_fast_modinfo()
|
* line 632 of \course\lib.php: call to course_create_sections_if_missing()
|
* line 22 of \mod\oublog\settings.php: call to course_add_cm_to_section()
|
* line 140 of \lib\classes\plugininfo\mod.php: call to include()
|
* line 47 of \admin\settings\plugins.php: call to core\plugininfo\mod->load_settings()
|
* line 8927 of \lib\adminlib.php: call to require()
|
* line 8959 of \lib\adminlib.php: call to admin_get_root()
|
* line 522 of \lib\installlib.php: call to admin_apply_default_settings()
|
* line 468 of \lib\phpunit\classes\util.php: call to install_cli_database()
|
* line 150 of \admin\tool\phpunit\cli\util.php: call to phpunit_util::install_site()
|
!!
|
I think this can be fixed just by wrapping the cachestore_static in a cache_request loader. Anyway I'll submit a fix, since this was my fault.
- blocks
-
MDL-76745 cache_disabled is missing check_lock_state, causing issues with some plugin installations
-
- Closed
-
- has to be done after
-
MDL-76791 Cache: Locking does not work when store supports multiple identifiers
-
- Closed
-
- is a clone of
-
MDL-76778 Provide static cache via cache_application during install
-
- Closed
-
- is a regression caused by
-
MDL-76129 Improve upgrade/install performance relating to capabilities and settings
-
- Closed
-
- will be (partly) resolved by
-
MDL-76791 Cache: Locking does not work when store supports multiple identifiers
-
- Closed
-