Moodle
  1. Moodle
  2. MDL-29803

"Site administration ► Reports ► Logs" gives "Fatal error: Allowed memory size of 134217728 bytes exhausted"

    Details

    • Type: Bug Bug
    • Status: Closed
    • Priority: Minor Minor
    • Resolution: Fixed
    • Affects Version/s: 2.0.5, 2.1.2, 2.2
    • Fix Version/s: 2.0.6, 2.1.3
    • Component/s: Course
    • Labels:
      None
    • Database:
      MySQL
    • Testing Instructions:
      Hide

      Going to site "Site administration ► Reports ► Logs" gives header and title "Choose which logs you want to see:" and below is empty.

      If error reporting in switched on, then PHP error occurs: Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 71 bytes) in /home/moodle/public_html/lib/dml/mysqli_native_moodle_database.php on line 820

      Expected result is the logs page.

      Show
      Going to site "Site administration ► Reports ► Logs" gives header and title "Choose which logs you want to see:" and below is empty. If error reporting in switched on, then PHP error occurs: Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 71 bytes) in /home/moodle/public_html/lib/dml/mysqli_native_moodle_database.php on line 820 Expected result is the logs page.
    • Workaround:
      Hide

      Adding limit to course/report/log/lib.php(353):

          $courseusers = get_enrolled_users($context, '', $selectedgroup, 'u.id, u.firstname, u.lastname, u.idnumber', 'lastname ASC, firstname ASC', 0, 10000);
      

      shows the page, but not all users.

      Is there a way to get the users list with less memory?

      Show
      Adding limit to course/report/log/lib.php(353): $courseusers = get_enrolled_users($context, '', $selectedgroup, 'u.id, u.firstname, u.lastname, u.idnumber', 'lastname ASC, firstname ASC', 0, 10000); shows the page, but not all users. Is there a way to get the users list with less memory?
    • Affected Branches:
      MOODLE_20_STABLE, MOODLE_21_STABLE, MOODLE_22_STABLE
    • Fixed Branches:
      MOODLE_20_STABLE, MOODLE_21_STABLE
    • Pull from Repository:
    • Rank:
      19312

      Description

      Going to site "Site administration ► Reports ► Logs" runs out of memory on our Moodle installation.

      Our site:

      • PHP memory limit: 128M
      • ~ 75 000 rows in users table.

      Little debugging shows, that the problem is in:

      #0 /home/moodle/public_html/lib/accesslib.php(3259): mysqli_native_moodle_database->get_records_sql('SELECT u.id, u....', Array, 0, 0)
      #1 /home/moodle/public_html/course/report/log/lib.php(353): get_enrolled_users(Object(stdClass), '', 0, 'u.id, u.firstna...', 'lastname ASC, f...')
      #2 /home/moodle/public_html/course/report/log/index.php(157): print_log_selector_form(Object(stdClass), 0, '1318712400', '', '', '', 0, 0, 1, 'showashtml')
      #3 {main}
      

        Issue Links

          Activity

          Mart Mangus created issue -
          Dan Poltawski made changes -
          Field Original Value New Value
          Link This issue has a non-specific relationship to MDL-17837 [ MDL-17837 ]
          Dan Poltawski made changes -
          Assignee moodle.com [ moodle.com ] Dan Poltawski [ poltawski ]
          Dan Poltawski made changes -
          Status Open [ 1 ] Waiting for integration review [ 10010 ]
          Pull from Repository git://git.luns.net.uk/moodle
          Fix Version/s 2.1.3 [ 11251 ]
          Pull 2.1 Branch MDL-29803
          Pull 2.1 Diff URL https://git.luns.net.uk/?p=moodle.git;a=commit;h=541a9978a8d3c4fe09d9b2d342e28fcacc97a410
          Hide
          Dan Poltawski added a comment -

          I have used the approach from MDL-17837 to at least fix this problem with the logs not displaying at all.

          However, it will still break on pressing the more button (attempting to display more users) - really there needs to be a better interface to fix that.

          Integrators: can be cherry-picked to master and 20_STABLE

          Show
          Dan Poltawski added a comment - I have used the approach from MDL-17837 to at least fix this problem with the logs not displaying at all. However, it will still break on pressing the more button (attempting to display more users) - really there needs to be a better interface to fix that. Integrators: can be cherry-picked to master and 20_STABLE
          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
          Eloy Lafuente (stronk7) made changes -
          Currently in integration Yes [ 10041 ]
          Eloy Lafuente (stronk7) made changes -
          Status Waiting for integration review [ 10010 ] Integration review in progress [ 10004 ]
          Integrator stronk7
          Hide
          Eloy Lafuente (stronk7) added a comment -

          Integrated to 20, 21 and master, thanks!

          Show
          Eloy Lafuente (stronk7) added a comment - Integrated to 20, 21 and master, thanks!
          Eloy Lafuente (stronk7) made changes -
          Status Integration review in progress [ 10004 ] Waiting for testing [ 10005 ]
          Affects Version/s 2.0.5 [ 10950 ]
          Affects Version/s 2.2 [ 10656 ]
          Fix Version/s 2.0.6 [ 11250 ]
          Rossiani Wijaya made changes -
          Status Waiting for testing [ 10005 ] Testing in progress [ 10011 ]
          Tester rwijaya
          Hide
          Rossiani Wijaya added a comment -

          I don't have large user in my testing site. Therefore this issue is working fine on my system.

          I will try to find a large sample site and test it there.

          If anybody else has a large site and want to test it on their system, I would appreciated.

          Thanks

          Show
          Rossiani Wijaya added a comment - I don't have large user in my testing site. Therefore this issue is working fine on my system. I will try to find a large sample site and test it there. If anybody else has a large site and want to test it on their system, I would appreciated. Thanks
          Hide
          Dan Poltawski added a comment -

          Just to note that you can test this by creating a large user dataset with a csv file and then try uploading it - this is how I did it

          Show
          Dan Poltawski added a comment - Just to note that you can test this by creating a large user dataset with a csv file and then try uploading it - this is how I did it
          Hide
          Mart Mangus added a comment -

          Hei!

          The fix works as described – logs page now appear but pressing "more" button brings out of memory error.

          Tested with the same site that is in description of this bug.

          Thanks!

          Show
          Mart Mangus added a comment - Hei! The fix works as described – logs page now appear but pressing "more" button brings out of memory error. Tested with the same site that is in description of this bug. Thanks!
          Hide
          Rossiani Wijaya added a comment -

          Hi Mart,

          Thank you for testing this issue.

          I also tested this issue with 75000 users and confirm that the more button produce out of memory error. I will create a new issue to fix the more button page.

          The patch works on addressing this issue, therefore I'm passing this test.

          Show
          Rossiani Wijaya added a comment - Hi Mart, Thank you for testing this issue. I also tested this issue with 75000 users and confirm that the more button produce out of memory error. I will create a new issue to fix the more button page. The patch works on addressing this issue, therefore I'm passing this test.
          Rossiani Wijaya made changes -
          Status Testing in progress [ 10011 ] Tested [ 10006 ]
          Rossiani Wijaya made changes -
          Link This issue has a non-specific relationship to MDL-30212 [ MDL-30212 ]
          Hide
          Eloy Lafuente (stronk7) added a comment -

          Yes, you got this finally upstream, just in time for Moodle 2.2beta. Congrats and thanks!

          Ciao

          Show
          Eloy Lafuente (stronk7) added a comment - Yes, you got this finally upstream, just in time for Moodle 2.2beta. Congrats and thanks! Ciao
          Eloy Lafuente (stronk7) made changes -
          Status Tested [ 10006 ] Closed [ 6 ]
          Resolution Fixed [ 1 ]
          Currently in integration Yes [ 10041 ]
          Integration date 15/Nov/11

            People

            • Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: