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

Notifications and messages nav popovers slow or unresponsive

    XMLWordPrintable

    Details

    • Testing Instructions:
      Hide

      Set up

      1. Create a site with more than 20 users
      2. Send some messages between each user
        1. You can use the create_messages.php script I've attached, if you like. It will send a bunch of messages from each user to each other user. You'll need to edit the script and set the amount of messages you'd like to send.
      3. Create a bunch of notifications for each user (more than 20 per user).
        1. You can use the attached create_notifications.php script I added. Just edit it to change the number of notifications you'd like to create.

      Notifications popover

      1. Log in with one of the users
      2. Open the notifications popover in the nav bar
      3. Confirm the notifications load
      4. Scroll down in the popover and confirm that it loads the next set of notifications

      Messages popover

      1. Log in with one of the users
      2. Open the messages popover in the nav bar
      3. Confirm the conversations load in a timely manner (should only be a couple of seconds at most (definitely not 10 seconds))
      4. Scroll to the bottom of the popover
      5. Confirm that the next set of conversations is loaded (it shouldn't load duplicates)
      6. Click one of the conversations and confirm it takes you to that conversation in the messages page

      Messages page

      1. Log in with one of the users
      2. Navigate to their messages (user menu > messages)
      3. Open the messages popover and confirm that the conversations are loaded in the same order as the messages page
      4. In the messages page, scroll down in the list of conversations and confirm that the next set of conversations is loaded
      5. Select the conversation second from the top and send that user a message
        1. Take note of which conversation was the first one
        2. If it's slow to load I've already created MDL-57482 to address that
      6. Navigate to a different page
      7. Open the messages popover and confirm that the user you just sent a message to is now first in the conversations list and the previous first conversation is now second

      Database indexes

      1. Confirm an index has been added to the isread column on the message_popup table
      2. Confirm indexes on useridto, timeusertodeleted, notification and useridfrom, timeuserfromdeleted, notification have been added to both the message and message_read tables
      Show
      Set up Create a site with more than 20 users Send some messages between each user You can use the create_messages.php script I've attached, if you like. It will send a bunch of messages from each user to each other user. You'll need to edit the script and set the amount of messages you'd like to send. Create a bunch of notifications for each user (more than 20 per user). You can use the attached create_notifications.php script I added. Just edit it to change the number of notifications you'd like to create. Notifications popover Log in with one of the users Open the notifications popover in the nav bar Confirm the notifications load Scroll down in the popover and confirm that it loads the next set of notifications Messages popover Log in with one of the users Open the messages popover in the nav bar Confirm the conversations load in a timely manner (should only be a couple of seconds at most (definitely not 10 seconds)) Scroll to the bottom of the popover Confirm that the next set of conversations is loaded (it shouldn't load duplicates) Click one of the conversations and confirm it takes you to that conversation in the messages page Messages page Log in with one of the users Navigate to their messages (user menu > messages) Open the messages popover and confirm that the conversations are loaded in the same order as the messages page In the messages page, scroll down in the list of conversations and confirm that the next set of conversations is loaded Select the conversation second from the top and send that user a message Take note of which conversation was the first one If it's slow to load I've already created MDL-57482 to address that Navigate to a different page Open the messages popover and confirm that the user you just sent a message to is now first in the conversations list and the previous first conversation is now second Database indexes Confirm an index has been added to the isread column on the message_popup table Confirm indexes on useridto, timeusertodeleted, notification and useridfrom, timeuserfromdeleted, notification have been added to both the message and message_read tables
    • Workaround:
      Hide

      From Martin:
      the fix on the server was to "increase the join buffers from 32M to 512M"

      Show
      From Martin: the fix on the server was to "increase the join buffers from 32M to 512M"
    • Affected Branches:
      MOODLE_32_STABLE
    • Fixed Branches:
      MOODLE_32_STABLE
    • Pull Master Branch:
      MDL-57370-master

      Description

      One very large sites using mysql (e.g. moodle.org) the notification and/or messages nav popovers are loading extremely slowly or not at all. In some cases it is killing the server.

      Helen reports:
      I tried to open the messages menu and it took forever loading
      and now I'm getting 'Something seems to be wrong with the Internet.'
      no problem opening the messages menu with a test account, just my account with messaging history

      Gavin reports:
      after logging intot moodle.org
      a) notifications dropdown spun and never loaded
      b) same with a fresh one on messages
      and then moodle site wouldnt respond at all

        Attachments

        1. bulkuser.php
          0.7 kB
        2. create_messages.php
          3 kB
        3. create_notifications.php
          1 kB
        4. get_conversations_new.php
          0.2 kB
        5. get_conversations_old.php
          0.3 kB
        6. query1.txt
          5 kB
        7. query2.txt
          4 kB
        8. query3.txt
          2 kB
        9. query4.txt
          2 kB
        10. query5.txt
          0.9 kB
        11. query6.txt
          1 kB

          Issue Links

            Activity

              People

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

                Dates

                • Created:
                  Updated:
                  Resolved:
                  Fix Release Date:
                  13/Mar/17