Details

    • Type: Sub-task Sub-task
    • Status: Closed
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: 2.3, 2.5
    • Fix Version/s: 2.5
    • Component/s: Libraries, Performance
    • Labels:
    • Testing Instructions:
      Hide

      Testing difficulty: Medium (test site upgrades and add-on installation to be done)

      1. Make sure that upgrading 2.3 -> patched 2.5 and 2.4 -> patched 2.5 works with no error related to this patch.
      2. Make sure that all tests from lib/tests/pluginlib_test.php pass.
      3. Browse the test site for a while and make sure everything seems to work as expected (JavaScript, file picker etc). Watch the MUC usage stats in the footer (you may need to define MDL_PERF and MDL_PERFTOFOOT constants in config.php). You should get hits in core_plugin* caches at most of the pages (at some administration pages, these caches are automatically purged so you can see the caches being set there with no hits).
      4. Try to disable/enable some activity modules, blocks, filters, repositories and/or portfolios. Again, no regression should be spotted.
      5. Try to install some add-on module or block. Again, no new error message or warning should be detected.
      6. So far so good? Hmm. That's suspicious... Anyway, let us consider it tested Thanks!
      Show
      Testing difficulty: Medium (test site upgrades and add-on installation to be done) Make sure that upgrading 2.3 -> patched 2.5 and 2.4 -> patched 2.5 works with no error related to this patch. Make sure that all tests from lib/tests/pluginlib_test.php pass. Browse the test site for a while and make sure everything seems to work as expected (JavaScript, file picker etc). Watch the MUC usage stats in the footer (you may need to define MDL_PERF and MDL_PERFTOFOOT constants in config.php). You should get hits in core_plugin* caches at most of the pages (at some administration pages, these caches are automatically purged so you can see the caches being set there with no hits). Try to disable/enable some activity modules, blocks, filters, repositories and/or portfolios. Again, no regression should be spotted. Try to install some add-on module or block. Again, no new error message or warning should be detected. So far so good? Hmm. That's suspicious... Anyway, let us consider it tested Thanks!
    • Workaround:
      Hide

      Close your eyes and keep staying on your left foot only for a couple of minutes.

      Show
      Close your eyes and keep staying on your left foot only for a couple of minutes.
    • Affected Branches:
      MOODLE_23_STABLE, MOODLE_25_STABLE
    • Fixed Branches:
      MOODLE_25_STABLE
    • Pull from Repository:
    • Pull Master Branch:
      MDL-34401-muc-pluginlib
    • Rank:
      42796

      Description

      /lib/pluginlib has a number of static caches for things that don't change very much and may get called a lot. A good candidate for persistent caching between upgrades I think.

      $this->pluginsinfo
      $this->subpluginsinfo

      $pluginversions
      $blocksinfocache
      $globalstatescache
      $modulesinfocache
      $repositories
      $portfolios

      Other candidates are core functions like get_plugin_list().

        Issue Links

          Activity

          Hide
          Michael Aherne added a comment -

          Could the results of get_plugin_types also be cached between upgrades? If I understand it correctly, the speed of this function is the main thing stopping the implementation of subplugins for all plugin types.

          Show
          Michael Aherne added a comment - Could the results of get_plugin_types also be cached between upgrades? If I understand it correctly, the speed of this function is the main thing stopping the implementation of subplugins for all plugin types.
          Hide
          David Mudrak added a comment -

          I am extending the focus of this issue. I discovered couple of core functions (like get_plugin_list()) that are called very often with no caching. My initial tests show that we can significantly reduce Wall time spent in these functions by applying MUC, too.

          Show
          David Mudrak added a comment - I am extending the focus of this issue. I discovered couple of core functions (like get_plugin_list()) that are called very often with no caching. My initial tests show that we can significantly reduce Wall time spent in these functions by applying MUC, too.
          Hide
          David Mudrak added a comment -

          DEAR INTEGRATORS,

          the patchset introduces couple of new MUC caches. Firstly there are caches for get_plugin_types() and get_plugin_list() core functions that minimise the Wall time spent in these function significantly (as measured by the profiler).

          Then, all current static variables in lib/pluginlib.php are replaced with MODE_REQUEST caches and then again into proper MODE_APPLICATION caches. This is implemented in separate commits so that the logic of the transition is better documented in the code history. These new caches save ~5 DB requests per page and remove ~170 file inclusions at some pages.

          I must apologize as the integrator will probably experience conflicts in version.php several times (as I increased the version during the development). You may wish to just discard these conflicts and make sure that the version is increased before this is going to be tested. There is no explicit uprade step and MUC automatically re-scans definitions if needed so the intermediate version bumps are not really needed.

          Show
          David Mudrak added a comment - DEAR INTEGRATORS, the patchset introduces couple of new MUC caches. Firstly there are caches for get_plugin_types() and get_plugin_list() core functions that minimise the Wall time spent in these function significantly (as measured by the profiler). Then, all current static variables in lib/pluginlib.php are replaced with MODE_REQUEST caches and then again into proper MODE_APPLICATION caches. This is implemented in separate commits so that the logic of the transition is better documented in the code history. These new caches save ~5 DB requests per page and remove ~170 file inclusions at some pages. I must apologize as the integrator will probably experience conflicts in version.php several times (as I increased the version during the development). You may wish to just discard these conflicts and make sure that the version is increased before this is going to be tested. There is no explicit uprade step and MUC automatically re-scans definitions if needed so the intermediate version bumps are not really needed.
          Hide
          Damyon Wiese added a comment -

          The main moodle.git repository has just been updated with latest weekly modifications. You may wish to rebase your PULL branches to simplify history and avoid any possible merge conflicts. This would also make integrator's life easier next week.

          Thanks!

          Show
          Damyon Wiese added a comment - The main moodle.git repository has just been updated with latest weekly modifications. You may wish to rebase your PULL branches to simplify history and avoid any possible merge conflicts. This would also make integrator's life easier next week. Thanks!
          Hide
          Dan Poltawski added a comment -

          Hmm, one concern I have is that seems to significantly slow things for me:

          {pre}
          BEFORE:
          1.359413 secs
          RAM: 41.9MB
          RAM peak: 42.4MB
          Included 1000 files
          Contexts for which filters were loaded: 6
          Filters created: 18
          Pieces of content filtered: 8
          Strings filtered: 0
          get_string calls: 1264
          Included YUI modules: 0
          Other JavaScript modules: 3
          Log DB writes 1
          DB reads/writes: 77/0
          ticks: 136 user: 112 sys: 13 cuser: 0 csys: 0
          Load average: 2.46
          Session: 10.7KB
          Caches interaction by definition then store
          core/databasemeta
          ** static persist **: 28 / 18 / 0
          cachestore_file: 18 / 0 / 0
          adhoc/core_string
          cachestore_static: 2287 / 340 / 340
          core/htmlpurifier
          cachestore_file: 21 / 0 / 0
          core/calendar_subscriptions
          ** static persist **: 11 / 4 / 0
          cachestore_file: 4 / 0 / 0
          Total Hits / Misses / Sets : 2369 / 362 / 340

          AFTER:

          1.847111 secs
          RAM: 42.2MB
          RAM peak: 42.7MB
          Included 1000 files
          Contexts for which filters were loaded: 6
          Filters created: 18
          Pieces of content filtered: 8
          Strings filtered: 0
          get_string calls: 1264
          Included YUI modules: 0
          Other JavaScript modules: 3
          Log DB writes 1
          DB reads/writes: 77/0
          ticks: 184 user: 136 sys: 27 cuser: 0 csys: 0
          Load average: 1.80
          Session: 10.7KB
          Caches interaction by definition then store
          core/databasemeta
          ** static persist **: 28 / 18 / 0
          cachestore_file: 18 / 0 / 0
          adhoc/core_string
          cachestore_static: 2287 / 340 / 340
          core/pluginlist
          ** static persist **: 56 / 49 / 0
          cachestore_file: 8 / 41 / 41
          core/plugintypes
          ** static persist **: 1296 / 1 / 0
          cachestore_file: 0 / 1 / 2
          core/plugininfo_base
          ** static persist **: 868 / 2 / 0
          cachestore_file: 0 / 2 / 311
          core/plugininfo_mod
          ** static persist **: 72 / 1 / 0
          cachestore_file: 0 / 1 / 1
          core/plugininfo_block
          ** static persist **: 45 / 1 / 0
          cachestore_file: 0 / 1 / 1
          core/plugininfo_filter
          ** static persist **: 5 / 1 / 0
          cachestore_file: 0 / 1 / 1
          core/plugininfo_repository
          ** static persist **: 19 / 1 / 0
          cachestore_file: 0 / 1 / 1
          core/htmlpurifier
          cachestore_file: 21 / 0 / 0
          core/calendar_subscriptions
          ** static persist **: 11 / 4 / 0
          cachestore_file: 4 / 0 / 0
          Total Hits / Misses / Sets : 4738 / 466 / 698{pre}
          Show
          Dan Poltawski added a comment - Hmm, one concern I have is that seems to significantly slow things for me: {pre} BEFORE: 1.359413 secs RAM: 41.9MB RAM peak: 42.4MB Included 1000 files Contexts for which filters were loaded: 6 Filters created: 18 Pieces of content filtered: 8 Strings filtered: 0 get_string calls: 1264 Included YUI modules: 0 Other JavaScript modules: 3 Log DB writes 1 DB reads/writes: 77/0 ticks: 136 user: 112 sys: 13 cuser: 0 csys: 0 Load average: 2.46 Session: 10.7KB Caches interaction by definition then store core/databasemeta ** static persist **: 28 / 18 / 0 cachestore_file: 18 / 0 / 0 adhoc/core_string cachestore_static: 2287 / 340 / 340 core/htmlpurifier cachestore_file: 21 / 0 / 0 core/calendar_subscriptions ** static persist **: 11 / 4 / 0 cachestore_file: 4 / 0 / 0 Total Hits / Misses / Sets : 2369 / 362 / 340 AFTER: 1.847111 secs RAM: 42.2MB RAM peak: 42.7MB Included 1000 files Contexts for which filters were loaded: 6 Filters created: 18 Pieces of content filtered: 8 Strings filtered: 0 get_string calls: 1264 Included YUI modules: 0 Other JavaScript modules: 3 Log DB writes 1 DB reads/writes: 77/0 ticks: 184 user: 136 sys: 27 cuser: 0 csys: 0 Load average: 1.80 Session: 10.7KB Caches interaction by definition then store core/databasemeta ** static persist **: 28 / 18 / 0 cachestore_file: 18 / 0 / 0 adhoc/core_string cachestore_static: 2287 / 340 / 340 core/pluginlist ** static persist **: 56 / 49 / 0 cachestore_file: 8 / 41 / 41 core/plugintypes ** static persist **: 1296 / 1 / 0 cachestore_file: 0 / 1 / 2 core/plugininfo_base ** static persist **: 868 / 2 / 0 cachestore_file: 0 / 2 / 311 core/plugininfo_mod ** static persist **: 72 / 1 / 0 cachestore_file: 0 / 1 / 1 core/plugininfo_block ** static persist **: 45 / 1 / 0 cachestore_file: 0 / 1 / 1 core/plugininfo_filter ** static persist **: 5 / 1 / 0 cachestore_file: 0 / 1 / 1 core/plugininfo_repository ** static persist **: 19 / 1 / 0 cachestore_file: 0 / 1 / 1 core/htmlpurifier cachestore_file: 21 / 0 / 0 core/calendar_subscriptions ** static persist **: 11 / 4 / 0 cachestore_file: 4 / 0 / 0 Total Hits / Misses / Sets : 4738 / 466 / 698{pre}
          Hide
          David Mudrak added a comment -

          Hi Dan. Thanks for looking at it. I'm just wondering, what was the page you used for the comparison? Was it admin/index.php? As I can see, no pluguntype cache file store was hit and all were repopulated and set. It's what happens at admin/index.php as these caches are purged there. That might explain higher processing times. When using xhprof focused on a course/view.php page, my results were pretty ok.

          Show
          David Mudrak added a comment - Hi Dan. Thanks for looking at it. I'm just wondering, what was the page you used for the comparison? Was it admin/index.php? As I can see, no pluguntype cache file store was hit and all were repopulated and set. It's what happens at admin/index.php as these caches are purged there. That might explain higher processing times. When using xhprof focused on a course/view.php page, my results were pretty ok.
          Hide
          Dan Poltawski added a comment -

          It was /, however I tried on the course page too and saw similar results too.

          Show
          Dan Poltawski added a comment - It was /, however I tried on the course page too and saw similar results too.
          Hide
          Dan Poltawski added a comment - - edited

          Ok, on further examination it seems just to be the front page as an admin. Visiting the course pages, i'm consistently seeing a 0.1s improvement (and this is with a fast, local db, i'm sure the effects would be improved on a multiserver system).

          Show
          Dan Poltawski added a comment - - edited Ok, on further examination it seems just to be the front page as an admin. Visiting the course pages, i'm consistently seeing a 0.1s improvement (and this is with a fast, local db, i'm sure the effects would be improved on a multiserver system).
          Hide
          Dan Poltawski added a comment -

          Integrated to master, thanks David

          Show
          Dan Poltawski added a comment - Integrated to master, thanks David
          Hide
          Dan Poltawski added a comment -

          PHP Fatal error: Maximum function nesting level of '100' reached, aborting! in /var/lib/jenkins/git_repositories/master/cache/classes/config.php on line 288
          PHP Stack trace:
          PHP 1.

          {main}

          () /var/lib/jenkins/git_repositories/master/admin/cli/upgrade.php:0
          PHP 2. require() /var/lib/jenkins/git_repositories/master/admin/cli/upgrade.php:34
          PHP 3. require_once() /var/lib/jenkins/git_repositories/master/config.php:27
          PHP 4. initialise_cfg() /var/lib/jenkins/git_repositories/master/lib/setup.php:550
          PHP 5. get_config() /var/lib/jenkins/git_repositories/master/lib/setuplib.php:725
          PHP 6. cache::make() /var/lib/jenkins/git_repositories/master/lib/moodlelib.php:1414
          PHP 7. cache_factory->create_cache_from_definition() /var/lib/jenkins/git_repositories/master/cache/classes/loaders.php:169
          PHP 8. cache_factory->create_definition() /var/lib/jenkins/git_repositories/master/cache/classes/factory.php:175
          PHP 9. cache_factory->create_config_instance() /var/lib/jenkins/git_repositories/master/cache/classes/factory.php:357
          PHP 10. cache_config_writer::create_default_configuration() /var/lib/jenkins/git_repositories/master/cache/classes/factory.php:312
          PHP 11. cache_config_writer::locate_definitions() /var/lib/jenkins/git_repositories/master/cache/locallib.php:369
          PHP 12. get_plugin_types() /var/lib/jenkins/git_repositories/master/cache/locallib.php:437
          PHP 13. cache->get() /var/lib/jenkins/git_repositories/master/lib/moodlelib.php:8189
          PHP 14. cache->parse_key() /var/lib/jenkins/git_repositories/master/cache/classes/loaders.php:276
          PHP 15. cache_helper::hash_key() /var/lib/jenkins/git_repositories/master/cache/classes/loaders.php:811
          PHP 16. cache_definition->generate_single_key_prefix() /var/lib/jenkins/git_repositories/master/cache/classes/helper.php:488
          PHP 17. cache_definition->get_cache_identifier() /var/lib/jenkins/git_repositories/master/cache/classes/definition.php:727
          PHP 18. cache_helper::get_site_identifier() /var/lib/jenkins/git_repositories/master/cache/classes/definition.php:797
          PHP 19. cache_factory->create_config_instance() /var/lib/jenkins/git_repositories/master/cache/classes/helper.php:532
          PHP 20. cache_config_writer::create_default_configuration() /var/lib/jenkins/git_repositories/master/cache/classes/factory.php:312
          PHP 21. cache_config_writer::locate_definitions() /var/lib/jenkins/git_repositories/master/cache/locallib.php:369
          PHP 22. get_plugin_types() /var/lib/jenkins/git_repositories/master/cache/locallib.php:437
          PHP 23. cache->get() /var/lib/jenkins/git_repositories/master/lib/moodlelib.php:8189
          PHP 24. cache->parse_key() /var/lib/jenkins/git_repositories/master/cache/classes/loaders.php:276
          PHP 25. cache_helper::hash_key() /var/lib/jenkins/git_repositories/master/cache/classes/loaders.php:811
          PHP 26. cache_definition->generate_single_key_prefix() /var/lib/jenkins/git_repositories/master/cache/classes/helper.php:488
          PHP 27. cache_definition->get_cache_identifier() /var/lib/jenkins/git_repositories/master/cache/classes/definition.php:727
          PHP 28. cache_helper::get_site_identifier() /var/lib/jenkins/git_repositories/master/cache/classes/definition.php:797
          PHP 29. cache_factory->create_config_instance() /var/lib/jenkins/git_repositories/master/cache/classes/helper.php:532
          PHP 30. cache_config_writer::create_default_configuration() /var/lib/jenkins/git_repositories/master/cache/classes/factory.php:312
          PHP 31. cache_config_writer::locate_definitions() /var/lib/jenkins/git_repositories/master/cache/locallib.php:369
          PHP 32. get_plugin_types() /var/lib/jenkins/git_repositories/master/cache/locallib.php:437
          PHP 33. cache->get() /var/lib/jenkins/git_repositories/master/lib/moodlelib.php:8189
          PHP 34. cache->parse_key() /var/lib/jenkins/git_repositories/master/cache/classes/loaders.php:276
          PHP 35. cache_helper::hash_key() /var/lib/jenkins/git_repositories/master/cache/classes/loaders.php:811
          PHP 36. cache_definition->generate_single_key_prefix() /var/lib/jenkins/git_repositories/master/cache/classes/helper.php:488
          PHP 37. cache_definition->get_cache_identifier() /var/lib/jenkins/git_repositories/master/cache/classes/definition.php:727
          PHP 38. cache_helper::get_site_identifier() /var/lib/jenkins/git_repositories/master/cache/classes/definition.php:797
          PHP 39. cache_factory->create_config_instance() /var/lib/jenkins/git_repositories/master/cache/classes/helper.php:532
          PHP 40. cache_config_writer::create_default_configuration() /var/lib/jenkins/git_repositories/master/cache/classes/factory.php:312
          PHP 41. cache_config_writer::locate_definitions() /var/lib/jenkins/git_repositories/master/cache/locallib.php:369
          PHP 42. get_plugin_types() /var/lib/jenkins/git_repositories/master/cache/locallib.php:437
          PHP 43. cache->get() /var/lib/jenkins/git_repositories/master/lib/moodlelib.php:8189
          PHP 44. cache->parse_key() /var/lib/jenkins/git_repositories/master/cache/classes/loaders.php:276
          PHP 45. cache_helper::hash_key() /var/lib/jenkins/git_repositories/master/cache/classes/loaders.php:811
          PHP 46. cache_definition->generate_single_key_prefix() /var/lib/jenkins/git_repositories/master/cache/classes/helper.php:488
          PHP 47. cache_definition->get_cache_identifier() /var/lib/jenkins/git_repositories/master/cache/classes/definition.php:727
          PHP 48. cache_helper::get_site_identifier() /var/lib/jenkins/git_repositories/master/cache/classes/definition.php:797
          PHP 49. cache_factory->create_config_instance() /var/lib/jenkins/git_repositories/master/cache/classes/helper.php:532
          PHP 50. cache_config_writer::create_default_configuration() /var/lib/jenkins/git_repositories/master/cache/classes/factory.php:312
          PHP 51. cache_config_writer::locate_definitions() /var/lib/jenkins/git_repositories/master/cache/locallib.php:369
          PHP 52. get_plugin_types() /var/lib/jenkins/git_repositories/master/cache/locallib.php:437
          PHP 53. cache->get() /var/lib/jenkins/git_repositories/master/lib/moodlelib.php:8189
          PHP 54. cache->parse_key() /var/lib/jenkins/git_repositories/master/cache/classes/loaders.php:276
          PHP 55. cache_helper::hash_key() /var/lib/jenkins/git_repositories/master/cache/classes/loaders.php:811
          PHP 56. cache_definition->generate_single_key_prefix() /var/lib/jenkins/git_repositories/master/cache/classes/helper.php:488
          PHP 57. cache_definition->get_cache_identifier() /var/lib/jenkins/git_repositories/master/cache/classes/definition.php:727
          PHP 58. cache_helper::get_site_identifier() /var/lib/jenkins/git_repositories/master/cache/classes/definition.php:797
          PHP 59. cache_factory->create_config_instance() /var/lib/jenkins/git_repositories/master/cache/classes/helper.php:532
          PHP 60. cache_config_writer::create_default_configuration() /var/lib/jenkins/git_repositories/master/cache/classes/factory.php:312
          PHP 61. cache_config_writer::locate_definitions() /var/lib/jenkins/git_repositories/master/cache/locallib.php:369
          PHP 62. get_plugin_types() /var/lib/jenkins/git_repositories/master/cache/locallib.php:437
          PHP 63. cache->get() /var/lib/jenkins/git_repositories/master/lib/moodlelib.php:8189
          PHP 64. cache->parse_key() /var/lib/jenkins/git_repositories/master/cache/classes/loaders.php:276
          PHP 65. cache_helper::hash_key() /var/lib/jenkins/git_repositories/master/cache/classes/loaders.php:811
          PHP 66. cache_definition->generate_single_key_prefix() /var/lib/jenkins/git_repositories/master/cache/classes/helper.php:488
          PHP 67. cache_definition->get_cache_identifier() /var/lib/jenkins/git_repositories/master/cache/classes/definition.php:727
          PHP 68. cache_helper::get_site_identifier() /var/lib/jenkins/git_repositories/master/cache/classes/definition.php:797
          PHP 69. cache_factory->create_config_instance() /var/lib/jenkins/git_repositories/master/cache/classes/helper.php:532
          PHP 70. cache_config_writer::create_default_configuration() /var/lib/jenkins/git_repositories/master/cache/classes/factory.php:312
          PHP 71. cache_config_writer::locate_definitions() /var/lib/jenkins/git_repositories/master/cache/locallib.php:369
          PHP 72. get_plugin_types() /var/lib/jenkins/git_repositories/master/cache/locallib.php:437
          PHP 73. cache->get() /var/lib/jenkins/git_repositories/master/lib/moodlelib.php:8189
          PHP 74. cache->parse_key() /var/lib/jenkins/git_repositories/master/cache/classes/loaders.php:276
          PHP 75. cache_helper::hash_key() /var/lib/jenkins/git_repositories/master/cache/classes/loaders.php:811
          PHP 76. cache_definition->generate_single_key_prefix() /var/lib/jenkins/git_repositories/master/cache/classes/helper.php:488
          PHP 77. cache_definition->get_cache_identifier() /var/lib/jenkins/git_repositories/master/cache/classes/definition.php:727
          PHP 78. cache_helper::get_site_identifier() /var/lib/jenkins/git_repositories/master/cache/classes/definition.php:797
          PHP 79. cache_factory->create_config_instance() /var/lib/jenkins/git_repositories/master/cache/classes/helper.php:532
          PHP 80. cache_config_writer::create_default_configuration() /var/lib/jenkins/git_repositories/master/cache/classes/factory.php:312
          PHP 81. cache_config_writer::locate_definitions() /var/lib/jenkins/git_repositories/master/cache/locallib.php:369
          PHP 82. get_plugin_types() /var/lib/jenkins/git_repositories/master/cache/locallib.php:437
          PHP 83. cache->get() /var/lib/jenkins/git_repositories/master/lib/moodlelib.php:8189
          PHP 84. cache->parse_key() /var/lib/jenkins/git_repositories/master/cache/classes/loaders.php:276
          PHP 85. cache_helper::hash_key() /var/lib/jenkins/git_repositories/master/cache/classes/loaders.php:811
          PHP 86. cache_definition->generate_single_key_prefix() /var/lib/jenkins/git_repositories/master/cache/classes/helper.php:488
          PHP 87. cache_definition->get_cache_identifier() /var/lib/jenkins/git_repositories/master/cache/classes/definition.php:727
          PHP 88. cache_helper::get_site_identifier() /var/lib/jenkins/git_repositories/master/cache/classes/definition.php:797
          PHP 89. cache_factory->create_config_instance() /var/lib/jenkins/git_repositories/master/cache/classes/helper.php:532
          PHP 90. cache_config_writer::create_default_configuration() /var/lib/jenkins/git_repositories/master/cache/classes/factory.php:312
          PHP 91. cache_config_writer::locate_definitions() /var/lib/jenkins/git_repositories/master/cache/locallib.php:369
          PHP 92. get_plugin_types() /var/lib/jenkins/git_repositories/master/cache/locallib.php:437
          PHP 93. cache->get() /var/lib/jenkins/git_repositories/master/lib/moodlelib.php:8189
          PHP 94. cache->parse_key() /var/lib/jenkins/git_repositories/master/cache/classes/loaders.php:276
          PHP 95. cache_helper::hash_key() /var/lib/jenkins/git_repositories/master/cache/classes/loaders.php:811
          PHP 96. cache_definition->generate_single_key_prefix() /var/lib/jenkins/git_repositories/master/cache/classes/helper.php:488
          PHP 97. cache_definition->get_cache_identifier() /var/lib/jenkins/git_repositories/master/cache/classes/definition.php:727
          PHP 98. cache_helper::get_site_identifier() /var/lib/jenkins/git_repositories/master/cache/classes/definition.php:797
          PHP 99. cache_factory->create_config_instance() /var/lib/jenkins/git_repositories/master/cache/classes/helper.php:532
          Error upgrading from MOODLE_22_STABLE to master
          Build step 'Execute shell' marked build as failure
          Archiving artifacts
          Jabber notifier plugin: Sending notification to: integration@conference.moodle.org
          Finished: FAILURE

          Show
          Dan Poltawski added a comment - PHP Fatal error: Maximum function nesting level of '100' reached, aborting! in /var/lib/jenkins/git_repositories/master/cache/classes/config.php on line 288 PHP Stack trace: PHP 1. {main} () /var/lib/jenkins/git_repositories/master/admin/cli/upgrade.php:0 PHP 2. require() /var/lib/jenkins/git_repositories/master/admin/cli/upgrade.php:34 PHP 3. require_once() /var/lib/jenkins/git_repositories/master/config.php:27 PHP 4. initialise_cfg() /var/lib/jenkins/git_repositories/master/lib/setup.php:550 PHP 5. get_config() /var/lib/jenkins/git_repositories/master/lib/setuplib.php:725 PHP 6. cache::make() /var/lib/jenkins/git_repositories/master/lib/moodlelib.php:1414 PHP 7. cache_factory->create_cache_from_definition() /var/lib/jenkins/git_repositories/master/cache/classes/loaders.php:169 PHP 8. cache_factory->create_definition() /var/lib/jenkins/git_repositories/master/cache/classes/factory.php:175 PHP 9. cache_factory->create_config_instance() /var/lib/jenkins/git_repositories/master/cache/classes/factory.php:357 PHP 10. cache_config_writer::create_default_configuration() /var/lib/jenkins/git_repositories/master/cache/classes/factory.php:312 PHP 11. cache_config_writer::locate_definitions() /var/lib/jenkins/git_repositories/master/cache/locallib.php:369 PHP 12. get_plugin_types() /var/lib/jenkins/git_repositories/master/cache/locallib.php:437 PHP 13. cache->get() /var/lib/jenkins/git_repositories/master/lib/moodlelib.php:8189 PHP 14. cache->parse_key() /var/lib/jenkins/git_repositories/master/cache/classes/loaders.php:276 PHP 15. cache_helper::hash_key() /var/lib/jenkins/git_repositories/master/cache/classes/loaders.php:811 PHP 16. cache_definition->generate_single_key_prefix() /var/lib/jenkins/git_repositories/master/cache/classes/helper.php:488 PHP 17. cache_definition->get_cache_identifier() /var/lib/jenkins/git_repositories/master/cache/classes/definition.php:727 PHP 18. cache_helper::get_site_identifier() /var/lib/jenkins/git_repositories/master/cache/classes/definition.php:797 PHP 19. cache_factory->create_config_instance() /var/lib/jenkins/git_repositories/master/cache/classes/helper.php:532 PHP 20. cache_config_writer::create_default_configuration() /var/lib/jenkins/git_repositories/master/cache/classes/factory.php:312 PHP 21. cache_config_writer::locate_definitions() /var/lib/jenkins/git_repositories/master/cache/locallib.php:369 PHP 22. get_plugin_types() /var/lib/jenkins/git_repositories/master/cache/locallib.php:437 PHP 23. cache->get() /var/lib/jenkins/git_repositories/master/lib/moodlelib.php:8189 PHP 24. cache->parse_key() /var/lib/jenkins/git_repositories/master/cache/classes/loaders.php:276 PHP 25. cache_helper::hash_key() /var/lib/jenkins/git_repositories/master/cache/classes/loaders.php:811 PHP 26. cache_definition->generate_single_key_prefix() /var/lib/jenkins/git_repositories/master/cache/classes/helper.php:488 PHP 27. cache_definition->get_cache_identifier() /var/lib/jenkins/git_repositories/master/cache/classes/definition.php:727 PHP 28. cache_helper::get_site_identifier() /var/lib/jenkins/git_repositories/master/cache/classes/definition.php:797 PHP 29. cache_factory->create_config_instance() /var/lib/jenkins/git_repositories/master/cache/classes/helper.php:532 PHP 30. cache_config_writer::create_default_configuration() /var/lib/jenkins/git_repositories/master/cache/classes/factory.php:312 PHP 31. cache_config_writer::locate_definitions() /var/lib/jenkins/git_repositories/master/cache/locallib.php:369 PHP 32. get_plugin_types() /var/lib/jenkins/git_repositories/master/cache/locallib.php:437 PHP 33. cache->get() /var/lib/jenkins/git_repositories/master/lib/moodlelib.php:8189 PHP 34. cache->parse_key() /var/lib/jenkins/git_repositories/master/cache/classes/loaders.php:276 PHP 35. cache_helper::hash_key() /var/lib/jenkins/git_repositories/master/cache/classes/loaders.php:811 PHP 36. cache_definition->generate_single_key_prefix() /var/lib/jenkins/git_repositories/master/cache/classes/helper.php:488 PHP 37. cache_definition->get_cache_identifier() /var/lib/jenkins/git_repositories/master/cache/classes/definition.php:727 PHP 38. cache_helper::get_site_identifier() /var/lib/jenkins/git_repositories/master/cache/classes/definition.php:797 PHP 39. cache_factory->create_config_instance() /var/lib/jenkins/git_repositories/master/cache/classes/helper.php:532 PHP 40. cache_config_writer::create_default_configuration() /var/lib/jenkins/git_repositories/master/cache/classes/factory.php:312 PHP 41. cache_config_writer::locate_definitions() /var/lib/jenkins/git_repositories/master/cache/locallib.php:369 PHP 42. get_plugin_types() /var/lib/jenkins/git_repositories/master/cache/locallib.php:437 PHP 43. cache->get() /var/lib/jenkins/git_repositories/master/lib/moodlelib.php:8189 PHP 44. cache->parse_key() /var/lib/jenkins/git_repositories/master/cache/classes/loaders.php:276 PHP 45. cache_helper::hash_key() /var/lib/jenkins/git_repositories/master/cache/classes/loaders.php:811 PHP 46. cache_definition->generate_single_key_prefix() /var/lib/jenkins/git_repositories/master/cache/classes/helper.php:488 PHP 47. cache_definition->get_cache_identifier() /var/lib/jenkins/git_repositories/master/cache/classes/definition.php:727 PHP 48. cache_helper::get_site_identifier() /var/lib/jenkins/git_repositories/master/cache/classes/definition.php:797 PHP 49. cache_factory->create_config_instance() /var/lib/jenkins/git_repositories/master/cache/classes/helper.php:532 PHP 50. cache_config_writer::create_default_configuration() /var/lib/jenkins/git_repositories/master/cache/classes/factory.php:312 PHP 51. cache_config_writer::locate_definitions() /var/lib/jenkins/git_repositories/master/cache/locallib.php:369 PHP 52. get_plugin_types() /var/lib/jenkins/git_repositories/master/cache/locallib.php:437 PHP 53. cache->get() /var/lib/jenkins/git_repositories/master/lib/moodlelib.php:8189 PHP 54. cache->parse_key() /var/lib/jenkins/git_repositories/master/cache/classes/loaders.php:276 PHP 55. cache_helper::hash_key() /var/lib/jenkins/git_repositories/master/cache/classes/loaders.php:811 PHP 56. cache_definition->generate_single_key_prefix() /var/lib/jenkins/git_repositories/master/cache/classes/helper.php:488 PHP 57. cache_definition->get_cache_identifier() /var/lib/jenkins/git_repositories/master/cache/classes/definition.php:727 PHP 58. cache_helper::get_site_identifier() /var/lib/jenkins/git_repositories/master/cache/classes/definition.php:797 PHP 59. cache_factory->create_config_instance() /var/lib/jenkins/git_repositories/master/cache/classes/helper.php:532 PHP 60. cache_config_writer::create_default_configuration() /var/lib/jenkins/git_repositories/master/cache/classes/factory.php:312 PHP 61. cache_config_writer::locate_definitions() /var/lib/jenkins/git_repositories/master/cache/locallib.php:369 PHP 62. get_plugin_types() /var/lib/jenkins/git_repositories/master/cache/locallib.php:437 PHP 63. cache->get() /var/lib/jenkins/git_repositories/master/lib/moodlelib.php:8189 PHP 64. cache->parse_key() /var/lib/jenkins/git_repositories/master/cache/classes/loaders.php:276 PHP 65. cache_helper::hash_key() /var/lib/jenkins/git_repositories/master/cache/classes/loaders.php:811 PHP 66. cache_definition->generate_single_key_prefix() /var/lib/jenkins/git_repositories/master/cache/classes/helper.php:488 PHP 67. cache_definition->get_cache_identifier() /var/lib/jenkins/git_repositories/master/cache/classes/definition.php:727 PHP 68. cache_helper::get_site_identifier() /var/lib/jenkins/git_repositories/master/cache/classes/definition.php:797 PHP 69. cache_factory->create_config_instance() /var/lib/jenkins/git_repositories/master/cache/classes/helper.php:532 PHP 70. cache_config_writer::create_default_configuration() /var/lib/jenkins/git_repositories/master/cache/classes/factory.php:312 PHP 71. cache_config_writer::locate_definitions() /var/lib/jenkins/git_repositories/master/cache/locallib.php:369 PHP 72. get_plugin_types() /var/lib/jenkins/git_repositories/master/cache/locallib.php:437 PHP 73. cache->get() /var/lib/jenkins/git_repositories/master/lib/moodlelib.php:8189 PHP 74. cache->parse_key() /var/lib/jenkins/git_repositories/master/cache/classes/loaders.php:276 PHP 75. cache_helper::hash_key() /var/lib/jenkins/git_repositories/master/cache/classes/loaders.php:811 PHP 76. cache_definition->generate_single_key_prefix() /var/lib/jenkins/git_repositories/master/cache/classes/helper.php:488 PHP 77. cache_definition->get_cache_identifier() /var/lib/jenkins/git_repositories/master/cache/classes/definition.php:727 PHP 78. cache_helper::get_site_identifier() /var/lib/jenkins/git_repositories/master/cache/classes/definition.php:797 PHP 79. cache_factory->create_config_instance() /var/lib/jenkins/git_repositories/master/cache/classes/helper.php:532 PHP 80. cache_config_writer::create_default_configuration() /var/lib/jenkins/git_repositories/master/cache/classes/factory.php:312 PHP 81. cache_config_writer::locate_definitions() /var/lib/jenkins/git_repositories/master/cache/locallib.php:369 PHP 82. get_plugin_types() /var/lib/jenkins/git_repositories/master/cache/locallib.php:437 PHP 83. cache->get() /var/lib/jenkins/git_repositories/master/lib/moodlelib.php:8189 PHP 84. cache->parse_key() /var/lib/jenkins/git_repositories/master/cache/classes/loaders.php:276 PHP 85. cache_helper::hash_key() /var/lib/jenkins/git_repositories/master/cache/classes/loaders.php:811 PHP 86. cache_definition->generate_single_key_prefix() /var/lib/jenkins/git_repositories/master/cache/classes/helper.php:488 PHP 87. cache_definition->get_cache_identifier() /var/lib/jenkins/git_repositories/master/cache/classes/definition.php:727 PHP 88. cache_helper::get_site_identifier() /var/lib/jenkins/git_repositories/master/cache/classes/definition.php:797 PHP 89. cache_factory->create_config_instance() /var/lib/jenkins/git_repositories/master/cache/classes/helper.php:532 PHP 90. cache_config_writer::create_default_configuration() /var/lib/jenkins/git_repositories/master/cache/classes/factory.php:312 PHP 91. cache_config_writer::locate_definitions() /var/lib/jenkins/git_repositories/master/cache/locallib.php:369 PHP 92. get_plugin_types() /var/lib/jenkins/git_repositories/master/cache/locallib.php:437 PHP 93. cache->get() /var/lib/jenkins/git_repositories/master/lib/moodlelib.php:8189 PHP 94. cache->parse_key() /var/lib/jenkins/git_repositories/master/cache/classes/loaders.php:276 PHP 95. cache_helper::hash_key() /var/lib/jenkins/git_repositories/master/cache/classes/loaders.php:811 PHP 96. cache_definition->generate_single_key_prefix() /var/lib/jenkins/git_repositories/master/cache/classes/helper.php:488 PHP 97. cache_definition->get_cache_identifier() /var/lib/jenkins/git_repositories/master/cache/classes/definition.php:727 PHP 98. cache_helper::get_site_identifier() /var/lib/jenkins/git_repositories/master/cache/classes/definition.php:797 PHP 99. cache_factory->create_config_instance() /var/lib/jenkins/git_repositories/master/cache/classes/helper.php:532 Error upgrading from MOODLE_22_STABLE to master Build step 'Execute shell' marked build as failure Archiving artifacts Jabber notifier plugin: Sending notification to: integration@conference.moodle.org Finished: FAILURE
          Hide
          Dan Poltawski added a comment -

          This caused behat init to die horribly with segfault and it was breaking cli install too:
          http://integration.moodle.org/job/05.%20Compare%20installed-upgraded%20DB%20from%2022_STABLE%20(master)/524/console

          Show
          Dan Poltawski added a comment - This caused behat init to die horribly with segfault and it was breaking cli install too: http://integration.moodle.org/job/05.%20Compare%20installed-upgraded%20DB%20from%2022_STABLE%20(master)/524/console
          Hide
          Dan Poltawski added a comment -

          Since we caught this failure quickly and not many people had upgraded to integration I rewrote integration history to revert this.

          David is at a UK Moot, so it seemed safer to avoid having the branch broken by this.

          Show
          Dan Poltawski added a comment - Since we caught this failure quickly and not many people had upgraded to integration I rewrote integration history to revert this. David is at a UK Moot, so it seemed safer to avoid having the branch broken by this.
          Hide
          David Monllaó added a comment -

          Same problem using admin/tool/behat/cli/util.php, but no segmentation fault

          davidm@davidm-desktop:/var/www/INTEGRATION/master$ php admin/tool/behat/cli/util.php --enable
          PHP Fatal error:  Maximum function nesting level of '100' reached, aborting! in /home/davidm/Desktop/moodlecode/INTEGRATION/master/cache/classes/config.php on line 104
          PHP Stack trace:
          PHP   1. {main}() /home/davidm/Desktop/moodlecode/INTEGRATION/master/admin/tool/behat/cli/util.php:0
          PHP   2. require() /home/davidm/Desktop/moodlecode/INTEGRATION/master/admin/tool/behat/cli/util.php:151
          PHP   3. initialise_cfg() /home/davidm/Desktop/moodlecode/INTEGRATION/master/lib/setup.php:550
          PHP   4. get_config() /home/davidm/Desktop/moodlecode/INTEGRATION/master/lib/setuplib.php:725
          PHP   5. cache::make() /home/davidm/Desktop/moodlecode/INTEGRATION/master/lib/moodlelib.php:1414
          PHP   6. cache_factory->create_cache_from_definition() /home/davidm/Desktop/moodlecode/INTEGRATION/master/cache/classes/loaders.php:169
          PHP   7. cache_factory->create_definition() /home/davidm/Desktop/moodlecode/INTEGRATION/master/cache/classes/factory.php:175
          PHP   8. cache_factory->create_config_instance() /home/davidm/Desktop/moodlecode/INTEGRATION/master/cache/classes/factory.php:357
          PHP   9. cache_config_writer::create_default_configuration() /home/davidm/Desktop/moodlecode/INTEGRATION/master/cache/classes/factory.php:312
          PHP  10. cache_config_writer::locate_definitions() /home/davidm/Desktop/moodlecode/INTEGRATION/master/cache/locallib.php:369
          PHP  11. get_plugin_types() /home/davidm/Desktop/moodlecode/INTEGRATION/master/cache/locallib.php:437
          PHP  12. cache->get() /home/davidm/Desktop/moodlecode/INTEGRATION/master/lib/moodlelib.php:8189
          PHP  13. cache->parse_key() /home/davidm/Desktop/moodlecode/INTEGRATION/master/cache/classes/loaders.php:276
          PHP  14. cache_helper::hash_key() /home/davidm/Desktop/moodlecode/INTEGRATION/master/cache/classes/loaders.php:811
          PHP  15. cache_definition->generate_single_key_prefix() /home/davidm/Desktop/moodlecode/INTEGRATION/master/cache/classes/helper.php:488
          PHP  16. cache_definition->get_cache_identifier() /home/davidm/Desktop/moodlecode/INTEGRATION/master/cache/classes/definition.php:727
          PHP  17. cache_helper::get_site_identifier() /home/davidm/Desktop/moodlecode/INTEGRATION/master/cache/classes/definition.php:797
          PHP  18. cache_factory->create_config_instance() /home/davidm/Desktop/moodlecode/INTEGRATION/master/cache/classes/helper.php:532
          PHP  19. cache_config_writer::create_default_configuration() /home/davidm/Desktop/moodlecode/INTEGRATION/master/cache/classes/factory.php:312
          PHP  20. cache_config_writer::locate_definitions() /home/davidm/Desktop/moodlecode/INTEGRATION/master/cache/locallib.php:369
          PHP  21. get_plugin_types() /home/davidm/Desktop/moodlecode/INTEGRATION/master/cache/locallib.php:437
          PHP  22. cache->get() /home/davidm/Desktop/moodlecode/INTEGRATION/master/lib/moodlelib.php:8189
          PHP  23. cache->parse_key() /home/davidm/Desktop/moodlecode/INTEGRATION/master/cache/classes/loaders.php:276
          PHP  24. cache_helper::hash_key() /home/davidm/Desktop/moodlecode/INTEGRATION/master/cache/classes/loaders.php:811
          PHP  25. cache_definition->generate_single_key_prefix() /home/davidm/Desktop/moodlecode/INTEGRATION/master/cache/classes/helper.php:488
          PHP  26. cache_definition->get_cache_identifier() /home/davidm/Desktop/moodlecode/INTEGRATION/master/cache/classes/definition.php:727
          PHP  27. cache_helper::get_site_identifier() /home/davidm/Desktop/moodlecode/INTEGRATION/master/cache/classes/definition.php:797
          PHP  28. cache_factory->create_config_instance() /home/davidm/Desktop/moodlecode/INTEGRATION/master/cache/classes/helper.php:532
          PHP  29. cache_config_writer::create_default_configuration() /home/davidm/Desktop/moodlecode/INTEGRATION/master/cache/classes/factory.php:312
          PHP  30. cache_config_writer::locate_definitions() /home/davidm/Desktop/moodlecode/INTEGRATION/master/cache/locallib.php:369
          PHP  31. get_plugin_types() /home/davidm/Desktop/moodlecode/INTEGRATION/master/cache/locallib.php:437
          PHP  32. cache->get() /home/davidm/Desktop/moodlecode/INTEGRATION/master/lib/moodlelib.php:8189
          PHP  33. cache->parse_key() /home/davidm/Desktop/moodlecode/INTEGRATION/master/cache/classes/loaders.php:276
          PHP  34. cache_helper::hash_key() /home/davidm/Desktop/moodlecode/INTEGRATION/master/cache/classes/loaders.php:811
          PHP  35. cache_definition->generate_single_key_prefix() /home/davidm/Desktop/moodlecode/INTEGRATION/master/cache/classes/helper.php:488
          PHP  36. cache_definition->get_cache_identifier() /home/davidm/Desktop/moodlecode/INTEGRATION/master/cache/classes/definition.php:727
          PHP  37. cache_helper::get_site_identifier() /home/davidm/Desktop/moodlecode/INTEGRATION/master/cache/classes/definition.php:797
          PHP  38. cache_factory->create_config_instance() /home/davidm/Desktop/moodlecode/INTEGRATION/master/cache/classes/helper.php:532
          PHP  39. cache_config_writer::create_default_configuration() /home/davidm/Desktop/moodlecode/INTEGRATION/master/cache/classes/factory.php:312
          PHP  40. cache_config_writer::locate_definitions() /home/davidm/Desktop/moodlecode/INTEGRATION/master/cache/locallib.php:369
          PHP  41. get_plugin_types() /home/davidm/Desktop/moodlecode/INTEGRATION/master/cache/locallib.php:437
          PHP  42. cache->get() /home/davidm/Desktop/moodlecode/INTEGRATION/master/lib/moodlelib.php:8189
          PHP  43. cache->parse_key() /home/davidm/Desktop/moodlecode/INTEGRATION/master/cache/classes/loaders.php:276
          PHP  44. cache_helper::hash_key() /home/davidm/Desktop/moodlecode/INTEGRATION/master/cache/classes/loaders.php:811
          PHP  45. cache_definition->generate_single_key_prefix() /home/davidm/Desktop/moodlecode/INTEGRATION/master/cache/classes/helper.php:488
          PHP  46. cache_definition->get_cache_identifier() /home/davidm/Desktop/moodlecode/INTEGRATION/master/cache/classes/definition.php:727
          PHP  47. cache_helper::get_site_identifier() /home/davidm/Desktop/moodlecode/INTEGRATION/master/cache/classes/definition.php:797
          PHP  48. cache_factory->create_config_instance() /home/davidm/Desktop/moodlecode/INTEGRATION/master/cache/classes/helper.php:532
          PHP  49. cache_config_writer::create_default_configuration() /home/davidm/Desktop/moodlecode/INTEGRATION/master/cache/classes/factory.php:312
          PHP  50. cache_config_writer::locate_definitions() /home/davidm/Desktop/moodlecode/INTEGRATION/master/cache/locallib.php:369
          PHP  51. get_plugin_types() /home/davidm/Desktop/moodlecode/INTEGRATION/master/cache/locallib.php:437
          PHP  52. cache->get() /home/davidm/Desktop/moodlecode/INTEGRATION/master/lib/moodlelib.php:8189
          PHP  53. cache->parse_key() /home/davidm/Desktop/moodlecode/INTEGRATION/master/cache/classes/loaders.php:276
          PHP  54. cache_helper::hash_key() /home/davidm/Desktop/moodlecode/INTEGRATION/master/cache/classes/loaders.php:811
          PHP  55. cache_definition->generate_single_key_prefix() /home/davidm/Desktop/moodlecode/INTEGRATION/master/cache/classes/helper.php:488
          PHP  56. cache_definition->get_cache_identifier() /home/davidm/Desktop/moodlecode/INTEGRATION/master/cache/classes/definition.php:727
          PHP  57. cache_helper::get_site_identifier() /home/davidm/Desktop/moodlecode/INTEGRATION/master/cache/classes/definition.php:797
          PHP  58. cache_factory->create_config_instance() /home/davidm/Desktop/moodlecode/INTEGRATION/master/cache/classes/helper.php:532
          PHP  59. cache_config_writer::create_default_configuration() /home/davidm/Desktop/moodlecode/INTEGRATION/master/cache/classes/factory.php:312
          PHP  60. cache_config_writer::locate_definitions() /home/davidm/Desktop/moodlecode/INTEGRATION/master/cache/locallib.php:369
          PHP  61. get_plugin_types() /home/davidm/Desktop/moodlecode/INTEGRATION/master/cache/locallib.php:437
          PHP  62. cache->get() /home/davidm/Desktop/moodlecode/INTEGRATION/master/lib/moodlelib.php:8189
          PHP  63. cache->parse_key() /home/davidm/Desktop/moodlecode/INTEGRATION/master/cache/classes/loaders.php:276
          PHP  64. cache_helper::hash_key() /home/davidm/Desktop/moodlecode/INTEGRATION/master/cache/classes/loaders.php:811
          PHP  65. cache_definition->generate_single_key_prefix() /home/davidm/Desktop/moodlecode/INTEGRATION/master/cache/classes/helper.php:488
          PHP  66. cache_definition->get_cache_identifier() /home/davidm/Desktop/moodlecode/INTEGRATION/master/cache/classes/definition.php:727
          PHP  67. cache_helper::get_site_identifier() /home/davidm/Desktop/moodlecode/INTEGRATION/master/cache/classes/definition.php:797
          PHP  68. cache_factory->create_config_instance() /home/davidm/Desktop/moodlecode/INTEGRATION/master/cache/classes/helper.php:532
          PHP  69. cache_config_writer::create_default_configuration() /home/davidm/Desktop/moodlecode/INTEGRATION/master/cache/classes/factory.php:312
          PHP  70. cache_config_writer::locate_definitions() /home/davidm/Desktop/moodlecode/INTEGRATION/master/cache/locallib.php:369
          PHP  71. get_plugin_types() /home/davidm/Desktop/moodlecode/INTEGRATION/master/cache/locallib.php:437
          PHP  72. cache->get() /home/davidm/Desktop/moodlecode/INTEGRATION/master/lib/moodlelib.php:8189
          PHP  73. cache->parse_key() /home/davidm/Desktop/moodlecode/INTEGRATION/master/cache/classes/loaders.php:276
          PHP  74. cache_helper::hash_key() /home/davidm/Desktop/moodlecode/INTEGRATION/master/cache/classes/loaders.php:811
          PHP  75. cache_definition->generate_single_key_prefix() /home/davidm/Desktop/moodlecode/INTEGRATION/master/cache/classes/helper.php:488
          PHP  76. cache_definition->get_cache_identifier() /home/davidm/Desktop/moodlecode/INTEGRATION/master/cache/classes/definition.php:727
          PHP  77. cache_helper::get_site_identifier() /home/davidm/Desktop/moodlecode/INTEGRATION/master/cache/classes/definition.php:797
          PHP  78. cache_factory->create_config_instance() /home/davidm/Desktop/moodlecode/INTEGRATION/master/cache/classes/helper.php:532
          PHP  79. cache_config_writer::create_default_configuration() /home/davidm/Desktop/moodlecode/INTEGRATION/master/cache/classes/factory.php:312
          PHP  80. cache_config_writer::locate_definitions() /home/davidm/Desktop/moodlecode/INTEGRATION/master/cache/locallib.php:369
          PHP  81. get_plugin_types() /home/davidm/Desktop/moodlecode/INTEGRATION/master/cache/locallib.php:437
          PHP  82. cache->get() /home/davidm/Desktop/moodlecode/INTEGRATION/master/lib/moodlelib.php:8189
          PHP  83. cache->parse_key() /home/davidm/Desktop/moodlecode/INTEGRATION/master/cache/classes/loaders.php:276
          PHP  84. cache_helper::hash_key() /home/davidm/Desktop/moodlecode/INTEGRATION/master/cache/classes/loaders.php:811
          PHP  85. cache_definition->generate_single_key_prefix() /home/davidm/Desktop/moodlecode/INTEGRATION/master/cache/classes/helper.php:488
          PHP  86. cache_definition->get_cache_identifier() /home/davidm/Desktop/moodlecode/INTEGRATION/master/cache/classes/definition.php:727
          PHP  87. cache_helper::get_site_identifier() /home/davidm/Desktop/moodlecode/INTEGRATION/master/cache/classes/definition.php:797
          PHP  88. cache_factory->create_config_instance() /home/davidm/Desktop/moodlecode/INTEGRATION/master/cache/classes/helper.php:532
          PHP  89. cache_config_writer::create_default_configuration() /home/davidm/Desktop/moodlecode/INTEGRATION/master/cache/classes/factory.php:312
          PHP  90. cache_config_writer::locate_definitions() /home/davidm/Desktop/moodlecode/INTEGRATION/master/cache/locallib.php:369
          PHP  91. get_plugin_types() /home/davidm/Desktop/moodlecode/INTEGRATION/master/cache/locallib.php:437
          PHP  92. cache->get() /home/davidm/Desktop/moodlecode/INTEGRATION/master/lib/moodlelib.php:8189
          PHP  93. cache->parse_key() /home/davidm/Desktop/moodlecode/INTEGRATION/master/cache/classes/loaders.php:276
          PHP  94. cache_helper::hash_key() /home/davidm/Desktop/moodlecode/INTEGRATION/master/cache/classes/loaders.php:811
          PHP  95. cache_definition->generate_single_key_prefix() /home/davidm/Desktop/moodlecode/INTEGRATION/master/cache/classes/helper.php:488
          PHP  96. cache_definition->get_cache_identifier() /home/davidm/Desktop/moodlecode/INTEGRATION/master/cache/classes/definition.php:727
          PHP  97. cache_helper::get_site_identifier() /home/davidm/Desktop/moodlecode/INTEGRATION/master/cache/classes/definition.php:797
          PHP  98. cache_factory->create_config_instance() /home/davidm/Desktop/moodlecode/INTEGRATION/master/cache/classes/helper.php:532
          PHP  99. cache_config::config_file_exists() /home/davidm/Desktop/moodlecode/INTEGRATION/master/cache/classes/factory.php:288
          
          Show
          David Monllaó added a comment - Same problem using admin/tool/behat/cli/util.php, but no segmentation fault davidm@davidm-desktop:/ var /www/INTEGRATION/master$ php admin/tool/behat/cli/util.php --enable PHP Fatal error: Maximum function nesting level of '100' reached, aborting! in /home/davidm/Desktop/moodlecode/INTEGRATION/master/cache/classes/config.php on line 104 PHP Stack trace: PHP 1. {main}() /home/davidm/Desktop/moodlecode/INTEGRATION/master/admin/tool/behat/cli/util.php:0 PHP 2. require() /home/davidm/Desktop/moodlecode/INTEGRATION/master/admin/tool/behat/cli/util.php:151 PHP 3. initialise_cfg() /home/davidm/Desktop/moodlecode/INTEGRATION/master/lib/setup.php:550 PHP 4. get_config() /home/davidm/Desktop/moodlecode/INTEGRATION/master/lib/setuplib.php:725 PHP 5. cache::make() /home/davidm/Desktop/moodlecode/INTEGRATION/master/lib/moodlelib.php:1414 PHP 6. cache_factory->create_cache_from_definition() /home/davidm/Desktop/moodlecode/INTEGRATION/master/cache/classes/loaders.php:169 PHP 7. cache_factory->create_definition() /home/davidm/Desktop/moodlecode/INTEGRATION/master/cache/classes/factory.php:175 PHP 8. cache_factory->create_config_instance() /home/davidm/Desktop/moodlecode/INTEGRATION/master/cache/classes/factory.php:357 PHP 9. cache_config_writer::create_default_configuration() /home/davidm/Desktop/moodlecode/INTEGRATION/master/cache/classes/factory.php:312 PHP 10. cache_config_writer::locate_definitions() /home/davidm/Desktop/moodlecode/INTEGRATION/master/cache/locallib.php:369 PHP 11. get_plugin_types() /home/davidm/Desktop/moodlecode/INTEGRATION/master/cache/locallib.php:437 PHP 12. cache->get() /home/davidm/Desktop/moodlecode/INTEGRATION/master/lib/moodlelib.php:8189 PHP 13. cache->parse_key() /home/davidm/Desktop/moodlecode/INTEGRATION/master/cache/classes/loaders.php:276 PHP 14. cache_helper::hash_key() /home/davidm/Desktop/moodlecode/INTEGRATION/master/cache/classes/loaders.php:811 PHP 15. cache_definition->generate_single_key_prefix() /home/davidm/Desktop/moodlecode/INTEGRATION/master/cache/classes/helper.php:488 PHP 16. cache_definition->get_cache_identifier() /home/davidm/Desktop/moodlecode/INTEGRATION/master/cache/classes/definition.php:727 PHP 17. cache_helper::get_site_identifier() /home/davidm/Desktop/moodlecode/INTEGRATION/master/cache/classes/definition.php:797 PHP 18. cache_factory->create_config_instance() /home/davidm/Desktop/moodlecode/INTEGRATION/master/cache/classes/helper.php:532 PHP 19. cache_config_writer::create_default_configuration() /home/davidm/Desktop/moodlecode/INTEGRATION/master/cache/classes/factory.php:312 PHP 20. cache_config_writer::locate_definitions() /home/davidm/Desktop/moodlecode/INTEGRATION/master/cache/locallib.php:369 PHP 21. get_plugin_types() /home/davidm/Desktop/moodlecode/INTEGRATION/master/cache/locallib.php:437 PHP 22. cache->get() /home/davidm/Desktop/moodlecode/INTEGRATION/master/lib/moodlelib.php:8189 PHP 23. cache->parse_key() /home/davidm/Desktop/moodlecode/INTEGRATION/master/cache/classes/loaders.php:276 PHP 24. cache_helper::hash_key() /home/davidm/Desktop/moodlecode/INTEGRATION/master/cache/classes/loaders.php:811 PHP 25. cache_definition->generate_single_key_prefix() /home/davidm/Desktop/moodlecode/INTEGRATION/master/cache/classes/helper.php:488 PHP 26. cache_definition->get_cache_identifier() /home/davidm/Desktop/moodlecode/INTEGRATION/master/cache/classes/definition.php:727 PHP 27. cache_helper::get_site_identifier() /home/davidm/Desktop/moodlecode/INTEGRATION/master/cache/classes/definition.php:797 PHP 28. cache_factory->create_config_instance() /home/davidm/Desktop/moodlecode/INTEGRATION/master/cache/classes/helper.php:532 PHP 29. cache_config_writer::create_default_configuration() /home/davidm/Desktop/moodlecode/INTEGRATION/master/cache/classes/factory.php:312 PHP 30. cache_config_writer::locate_definitions() /home/davidm/Desktop/moodlecode/INTEGRATION/master/cache/locallib.php:369 PHP 31. get_plugin_types() /home/davidm/Desktop/moodlecode/INTEGRATION/master/cache/locallib.php:437 PHP 32. cache->get() /home/davidm/Desktop/moodlecode/INTEGRATION/master/lib/moodlelib.php:8189 PHP 33. cache->parse_key() /home/davidm/Desktop/moodlecode/INTEGRATION/master/cache/classes/loaders.php:276 PHP 34. cache_helper::hash_key() /home/davidm/Desktop/moodlecode/INTEGRATION/master/cache/classes/loaders.php:811 PHP 35. cache_definition->generate_single_key_prefix() /home/davidm/Desktop/moodlecode/INTEGRATION/master/cache/classes/helper.php:488 PHP 36. cache_definition->get_cache_identifier() /home/davidm/Desktop/moodlecode/INTEGRATION/master/cache/classes/definition.php:727 PHP 37. cache_helper::get_site_identifier() /home/davidm/Desktop/moodlecode/INTEGRATION/master/cache/classes/definition.php:797 PHP 38. cache_factory->create_config_instance() /home/davidm/Desktop/moodlecode/INTEGRATION/master/cache/classes/helper.php:532 PHP 39. cache_config_writer::create_default_configuration() /home/davidm/Desktop/moodlecode/INTEGRATION/master/cache/classes/factory.php:312 PHP 40. cache_config_writer::locate_definitions() /home/davidm/Desktop/moodlecode/INTEGRATION/master/cache/locallib.php:369 PHP 41. get_plugin_types() /home/davidm/Desktop/moodlecode/INTEGRATION/master/cache/locallib.php:437 PHP 42. cache->get() /home/davidm/Desktop/moodlecode/INTEGRATION/master/lib/moodlelib.php:8189 PHP 43. cache->parse_key() /home/davidm/Desktop/moodlecode/INTEGRATION/master/cache/classes/loaders.php:276 PHP 44. cache_helper::hash_key() /home/davidm/Desktop/moodlecode/INTEGRATION/master/cache/classes/loaders.php:811 PHP 45. cache_definition->generate_single_key_prefix() /home/davidm/Desktop/moodlecode/INTEGRATION/master/cache/classes/helper.php:488 PHP 46. cache_definition->get_cache_identifier() /home/davidm/Desktop/moodlecode/INTEGRATION/master/cache/classes/definition.php:727 PHP 47. cache_helper::get_site_identifier() /home/davidm/Desktop/moodlecode/INTEGRATION/master/cache/classes/definition.php:797 PHP 48. cache_factory->create_config_instance() /home/davidm/Desktop/moodlecode/INTEGRATION/master/cache/classes/helper.php:532 PHP 49. cache_config_writer::create_default_configuration() /home/davidm/Desktop/moodlecode/INTEGRATION/master/cache/classes/factory.php:312 PHP 50. cache_config_writer::locate_definitions() /home/davidm/Desktop/moodlecode/INTEGRATION/master/cache/locallib.php:369 PHP 51. get_plugin_types() /home/davidm/Desktop/moodlecode/INTEGRATION/master/cache/locallib.php:437 PHP 52. cache->get() /home/davidm/Desktop/moodlecode/INTEGRATION/master/lib/moodlelib.php:8189 PHP 53. cache->parse_key() /home/davidm/Desktop/moodlecode/INTEGRATION/master/cache/classes/loaders.php:276 PHP 54. cache_helper::hash_key() /home/davidm/Desktop/moodlecode/INTEGRATION/master/cache/classes/loaders.php:811 PHP 55. cache_definition->generate_single_key_prefix() /home/davidm/Desktop/moodlecode/INTEGRATION/master/cache/classes/helper.php:488 PHP 56. cache_definition->get_cache_identifier() /home/davidm/Desktop/moodlecode/INTEGRATION/master/cache/classes/definition.php:727 PHP 57. cache_helper::get_site_identifier() /home/davidm/Desktop/moodlecode/INTEGRATION/master/cache/classes/definition.php:797 PHP 58. cache_factory->create_config_instance() /home/davidm/Desktop/moodlecode/INTEGRATION/master/cache/classes/helper.php:532 PHP 59. cache_config_writer::create_default_configuration() /home/davidm/Desktop/moodlecode/INTEGRATION/master/cache/classes/factory.php:312 PHP 60. cache_config_writer::locate_definitions() /home/davidm/Desktop/moodlecode/INTEGRATION/master/cache/locallib.php:369 PHP 61. get_plugin_types() /home/davidm/Desktop/moodlecode/INTEGRATION/master/cache/locallib.php:437 PHP 62. cache->get() /home/davidm/Desktop/moodlecode/INTEGRATION/master/lib/moodlelib.php:8189 PHP 63. cache->parse_key() /home/davidm/Desktop/moodlecode/INTEGRATION/master/cache/classes/loaders.php:276 PHP 64. cache_helper::hash_key() /home/davidm/Desktop/moodlecode/INTEGRATION/master/cache/classes/loaders.php:811 PHP 65. cache_definition->generate_single_key_prefix() /home/davidm/Desktop/moodlecode/INTEGRATION/master/cache/classes/helper.php:488 PHP 66. cache_definition->get_cache_identifier() /home/davidm/Desktop/moodlecode/INTEGRATION/master/cache/classes/definition.php:727 PHP 67. cache_helper::get_site_identifier() /home/davidm/Desktop/moodlecode/INTEGRATION/master/cache/classes/definition.php:797 PHP 68. cache_factory->create_config_instance() /home/davidm/Desktop/moodlecode/INTEGRATION/master/cache/classes/helper.php:532 PHP 69. cache_config_writer::create_default_configuration() /home/davidm/Desktop/moodlecode/INTEGRATION/master/cache/classes/factory.php:312 PHP 70. cache_config_writer::locate_definitions() /home/davidm/Desktop/moodlecode/INTEGRATION/master/cache/locallib.php:369 PHP 71. get_plugin_types() /home/davidm/Desktop/moodlecode/INTEGRATION/master/cache/locallib.php:437 PHP 72. cache->get() /home/davidm/Desktop/moodlecode/INTEGRATION/master/lib/moodlelib.php:8189 PHP 73. cache->parse_key() /home/davidm/Desktop/moodlecode/INTEGRATION/master/cache/classes/loaders.php:276 PHP 74. cache_helper::hash_key() /home/davidm/Desktop/moodlecode/INTEGRATION/master/cache/classes/loaders.php:811 PHP 75. cache_definition->generate_single_key_prefix() /home/davidm/Desktop/moodlecode/INTEGRATION/master/cache/classes/helper.php:488 PHP 76. cache_definition->get_cache_identifier() /home/davidm/Desktop/moodlecode/INTEGRATION/master/cache/classes/definition.php:727 PHP 77. cache_helper::get_site_identifier() /home/davidm/Desktop/moodlecode/INTEGRATION/master/cache/classes/definition.php:797 PHP 78. cache_factory->create_config_instance() /home/davidm/Desktop/moodlecode/INTEGRATION/master/cache/classes/helper.php:532 PHP 79. cache_config_writer::create_default_configuration() /home/davidm/Desktop/moodlecode/INTEGRATION/master/cache/classes/factory.php:312 PHP 80. cache_config_writer::locate_definitions() /home/davidm/Desktop/moodlecode/INTEGRATION/master/cache/locallib.php:369 PHP 81. get_plugin_types() /home/davidm/Desktop/moodlecode/INTEGRATION/master/cache/locallib.php:437 PHP 82. cache->get() /home/davidm/Desktop/moodlecode/INTEGRATION/master/lib/moodlelib.php:8189 PHP 83. cache->parse_key() /home/davidm/Desktop/moodlecode/INTEGRATION/master/cache/classes/loaders.php:276 PHP 84. cache_helper::hash_key() /home/davidm/Desktop/moodlecode/INTEGRATION/master/cache/classes/loaders.php:811 PHP 85. cache_definition->generate_single_key_prefix() /home/davidm/Desktop/moodlecode/INTEGRATION/master/cache/classes/helper.php:488 PHP 86. cache_definition->get_cache_identifier() /home/davidm/Desktop/moodlecode/INTEGRATION/master/cache/classes/definition.php:727 PHP 87. cache_helper::get_site_identifier() /home/davidm/Desktop/moodlecode/INTEGRATION/master/cache/classes/definition.php:797 PHP 88. cache_factory->create_config_instance() /home/davidm/Desktop/moodlecode/INTEGRATION/master/cache/classes/helper.php:532 PHP 89. cache_config_writer::create_default_configuration() /home/davidm/Desktop/moodlecode/INTEGRATION/master/cache/classes/factory.php:312 PHP 90. cache_config_writer::locate_definitions() /home/davidm/Desktop/moodlecode/INTEGRATION/master/cache/locallib.php:369 PHP 91. get_plugin_types() /home/davidm/Desktop/moodlecode/INTEGRATION/master/cache/locallib.php:437 PHP 92. cache->get() /home/davidm/Desktop/moodlecode/INTEGRATION/master/lib/moodlelib.php:8189 PHP 93. cache->parse_key() /home/davidm/Desktop/moodlecode/INTEGRATION/master/cache/classes/loaders.php:276 PHP 94. cache_helper::hash_key() /home/davidm/Desktop/moodlecode/INTEGRATION/master/cache/classes/loaders.php:811 PHP 95. cache_definition->generate_single_key_prefix() /home/davidm/Desktop/moodlecode/INTEGRATION/master/cache/classes/helper.php:488 PHP 96. cache_definition->get_cache_identifier() /home/davidm/Desktop/moodlecode/INTEGRATION/master/cache/classes/definition.php:727 PHP 97. cache_helper::get_site_identifier() /home/davidm/Desktop/moodlecode/INTEGRATION/master/cache/classes/definition.php:797 PHP 98. cache_factory->create_config_instance() /home/davidm/Desktop/moodlecode/INTEGRATION/master/cache/classes/helper.php:532 PHP 99. cache_config::config_file_exists() /home/davidm/Desktop/moodlecode/INTEGRATION/master/cache/classes/factory.php:288
          Hide
          Aparup Banerjee added a comment -

          hm, it seems this is due to an xdebug (or some extensions) setting and not PHP? http://stackoverflow.com/questions/4293775/increasing-nesting-functions-calls-limit

          Show
          Aparup Banerjee added a comment - hm, it seems this is due to an xdebug (or some extensions) setting and not PHP? http://stackoverflow.com/questions/4293775/increasing-nesting-functions-calls-limit
          Hide
          Dan Poltawski added a comment -

          I expect that xdebug just stops it before infinitely looping to nothing. I got a segfault.

          Show
          Dan Poltawski added a comment - I expect that xdebug just stops it before infinitely looping to nothing. I got a segfault.
          Hide
          CiBoT added a comment -

          Moving this reopened issue out from current integration. Please, re-submit it for integration once ready.

          Show
          CiBoT added a comment - Moving this reopened issue out from current integration. Please, re-submit it for integration once ready.
          Hide
          David Mudrak added a comment -

          I remember myself having this error as well. And that is why MDL-37545 was reported and fixed. It seems like a loop problem inside MUC that is trying to use a cache that is not initialised yet. Sam H. might want to look at this eventually.

          Show
          David Mudrak added a comment - I remember myself having this error as well. And that is why MDL-37545 was reported and fixed. It seems like a loop problem inside MUC that is trying to use a cache that is not initialised yet. Sam H. might want to look at this eventually.
          Hide
          Sam Hemelryk added a comment -

          Linking to MDL-38387 as a blocker for this issue. It will fix the bug causing the infinite initialisation loop.

          The lesson learnt (by me) is that the cache API must not use caches internally.

          Show
          Sam Hemelryk added a comment - Linking to MDL-38387 as a blocker for this issue. It will fix the bug causing the infinite initialisation loop. The lesson learnt (by me) is that the cache API must not use caches internally.
          Hide
          David Mudrak added a comment -

          Well I must admit I was not able to reproduce failures reported by Dan and David Mo above. So I'm not a good person to test Sam's solution against this...

          I just rebased the branch for this issue and dealt with conflicts, not other addition. For me, upgrading from master works well - even without applying Sam's patch from MDL-38387 (maybe I did not try hard enough to reproduce the problem).

          I'm re-submitting this for integration now.

          Show
          David Mudrak added a comment - Well I must admit I was not able to reproduce failures reported by Dan and David Mo above. So I'm not a good person to test Sam's solution against this... I just rebased the branch for this issue and dealt with conflicts, not other addition. For me, upgrading from master works well - even without applying Sam's patch from MDL-38387 (maybe I did not try hard enough to reproduce the problem). I'm re-submitting this for integration now.
          Hide
          Aparup Banerjee added a comment -

          just checking in from MDL-38387, "I'm re-submitting this for integration now." but status = reopened , what am i missing?

          Show
          Aparup Banerjee added a comment - just checking in from MDL-38387 , "I'm re-submitting this for integration now." but status = reopened , what am i missing?
          Hide
          David Mudrak added a comment -

          Ooops! I'm sorry, I forgot to press the button. Thanks a lot Apu for catching this.

          Show
          David Mudrak added a comment - Ooops! I'm sorry, I forgot to press the button. Thanks a lot Apu for catching this.
          Hide
          Eloy Lafuente (stronk7) added a comment -

          The main moodle.git repository has just been updated with latest weekly modifications. You may wish to rebase your PULL branches to simplify history and avoid any possible merge conflicts. This would also make integrator's life easier next week.

          TIA and ciao

          Show
          Eloy Lafuente (stronk7) added a comment - The main moodle.git repository has just been updated with latest weekly modifications. You may wish to rebase your PULL branches to simplify history and avoid any possible merge conflicts. This would also make integrator's life easier next week. TIA and ciao
          Hide
          Eloy Lafuente (stronk7) added a comment -

          This has MDL-38387 defined as blocker... is that correct? Sam, David, seems you have different opinions?

          Show
          Eloy Lafuente (stronk7) added a comment - This has MDL-38387 defined as blocker... is that correct? Sam, David, seems you have different opinions?
          Hide
          Damyon Wiese added a comment -

          Thanks David,

          The blocker issue is now integrated so I have integrated this one for master.

          Show
          Damyon Wiese added a comment - Thanks David, The blocker issue is now integrated so I have integrated this one for master.
          Hide
          Damyon Wiese added a comment -

          (It will be good to get this one tested for as long as possible before the 25 release)

          Show
          Damyon Wiese added a comment - (It will be good to get this one tested for as long as possible before the 25 release)
          Hide
          Eloy Lafuente (stronk7) added a comment -

          so... passing as "nobody" tested it?

          Show
          Eloy Lafuente (stronk7) added a comment - so... passing as "nobody" tested it?
          Hide
          Dan Poltawski added a comment -

          Sorry, I was assigned as tester on this from initially integration, because I was teing whilst integrating, had no idea I was assigned it..

          Show
          Dan Poltawski added a comment - Sorry, I was assigned as tester on this from initially integration, because I was teing whilst integrating, had no idea I was assigned it..
          Hide
          Dan Poltawski added a comment -

          Really sorry about the delay, David should've shouted at me earlier, I was completely oblivious!

          Show
          Dan Poltawski added a comment - Really sorry about the delay, David should've shouted at me earlier, I was completely oblivious!
          Hide
          Dan Poltawski added a comment -

          Passing, looks good. Notes:

          1. Lots of misses on admin on frontpage, but as noted by david - that is to be expected
          2. On the upgrade from 24 -> 25 we get the missing cache definitions debug error. It would be nice to avoid that, but its not so important.
            Cache definitions reparsed causing cache reset in order to locate definition. You should bump the version number to ensure definitions are reprocessed.
            	•	line 411 of /cache/classes/factory.php: call to debugging()
            	•	line 181 of /cache/classes/factory.php: call to cache_factory->create_definition()
            	•	line 169 of /cache/classes/loaders.php: call to cache_factory->create_cache_from_definition()
            	•	line 1358 of /lib/outputrequirementslib.php: call to cache::make()
            	•	line 234 of /lib/outputrequirementslib.php: call to YUI_config->add_moodle_metadata()
            	•	line 600 of /lib/pagelib.php: call to page_requirements_manager->__construct()
            	•	line 717 of /lib/pagelib.php: call to moodle_page->magic_get_requires()
            	•	line 365 of /lib/outputrenderers.php: call to moodle_page->__get()
            	•	line 51 of /theme/base/layout/general.php: call to core_renderer->standard_head_html()
            	•	line 835 of /lib/outputrenderers.php: call to include()
            	•	line 765 of /lib/outputrenderers.php: call to core_renderer->render_page_layout()
            	•	line ? of unknownfile: call to core_renderer->header()
            	•	line 234 of /lib/outputrenderers.php: call to call_user_func_array()
            	•	line 146 of /admin/renderer.php: call to plugin_renderer_base->__call()
            	•	line 146 of /admin/renderer.php: call to core_admin_renderer->header()
            	•	line 220 of /admin/index.php: call to core_admin_renderer->upgrade_confirm_page()
            
          Show
          Dan Poltawski added a comment - Passing, looks good. Notes: Lots of misses on admin on frontpage, but as noted by david - that is to be expected On the upgrade from 24 -> 25 we get the missing cache definitions debug error. It would be nice to avoid that, but its not so important. Cache definitions reparsed causing cache reset in order to locate definition. You should bump the version number to ensure definitions are reprocessed. • line 411 of /cache/classes/factory.php: call to debugging() • line 181 of /cache/classes/factory.php: call to cache_factory->create_definition() • line 169 of /cache/classes/loaders.php: call to cache_factory->create_cache_from_definition() • line 1358 of /lib/outputrequirementslib.php: call to cache::make() • line 234 of /lib/outputrequirementslib.php: call to YUI_config->add_moodle_metadata() • line 600 of /lib/pagelib.php: call to page_requirements_manager->__construct() • line 717 of /lib/pagelib.php: call to moodle_page->magic_get_requires() • line 365 of /lib/outputrenderers.php: call to moodle_page->__get() • line 51 of /theme/base/layout/general.php: call to core_renderer->standard_head_html() • line 835 of /lib/outputrenderers.php: call to include() • line 765 of /lib/outputrenderers.php: call to core_renderer->render_page_layout() • line ? of unknownfile: call to core_renderer->header() • line 234 of /lib/outputrenderers.php: call to call_user_func_array() • line 146 of /admin/renderer.php: call to plugin_renderer_base->__call() • line 146 of /admin/renderer.php: call to core_admin_renderer->header() • line 220 of /admin/index.php: call to core_admin_renderer->upgrade_confirm_page()
          Hide
          Martin Dougiamas added a comment -

          yay!

          Show
          Martin Dougiamas added a comment - yay!
          Hide
          Damyon Wiese added a comment -

          This issue has been integrated upstream and is now available via git (and in some hours, via mirrors and downloads).

          Thanks for your contributions!

          Show
          Damyon Wiese added a comment - This issue has been integrated upstream and is now available via git (and in some hours, via mirrors and downloads). Thanks for your contributions!

            People

            • Votes:
              1 Vote for this issue
              Watchers:
              8 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: