Project: moodle
Issue MDL-54751: Recycle Bin - deleting large complex objects forces user to wait
With the recycle bin enabled, deleting large, complex objects forces the user to wait until the backup process has completed before they can do anything else. When you delete small objects (e.g., labels, simple pages), the deletion occurs quickly. By "deletion," I mean this workflow: 1. Turn editing on 2. Delete item 3. Turn editing off But when you delete a larger, complex object, step 3 above -- turning editing off -- can take a long time ( up to > 2 minutes), and there is no indication (other than what the browser provides) that something is happening. You basically have to wait for it to finish. Something that used to happen immediately -- turning editing off after deleting something (regardless of its complexity) -- can take minutes with the Recycle Bin enabled. An example of a "large, complex object" is a quiz with 95 questions and 155 student responses. Obviously, Moodle is working on backing up the quiz, and since it's rather complex (lots of responses), it takes time. The same thing happens on restore. Restoring this kind of quiz can take some time, but there isn't any kind of progress indicator to let the user know that something is happening and that it may take some time. The concern here is that with the recycle bin enabled, a fundamental aspect of the Moodle experience has changed; i.e., deleting some objects no longer happens quickly if they are complex. How long it takes for Moodle to return control when turning editing back off after deleting an object depends on how large/complex that object is. And Moodle provides no progress indicator that something is happening. We also saw this behavior when testing the recycle bin plugin our Moodle 2.7 site (we also saw session lock errors for large object deletions). We also see this issue on a test Moodle 3.1 server with the recycle bin enabled. While this quiz example may represent an outlier, users delete all sort of things... small and large objects.
Story points: 5