Skip to content

Fix Moodle 4.5 delete global blog issue#160

Open
owenherbert-catalyst wants to merge 1 commit intomoodleou:MOODLE_405_STABLEfrom
owenherbert-catalyst:gracefully-complete-blog-deletion
Open

Fix Moodle 4.5 delete global blog issue#160
owenherbert-catalyst wants to merge 1 commit intomoodleou:MOODLE_405_STABLEfrom
owenherbert-catalyst:gracefully-complete-blog-deletion

Conversation

@owenherbert-catalyst
Copy link

@owenherbert-catalyst owenherbert-catalyst commented Oct 22, 2025

This patch updates the function to return true instead of false when skipping deletion of a global blog. This ensures the ad-hoc task completes gracefully in Moodle 4.5. After the change we get Adhoc task complete instead of Adhoc task failed.

Before plugin code change:

Execute adhoc task: core_course\task\course_delete_modules
Adhoc task id: 3018
Adhoc task custom data: {"cms":[{"id":"1","course":"1","module":"55","instance":"1","section":"2","idnumber":null,"added":"1549578973","score":"0","indent":"0","visible":"0","visibleoncoursepage":"1","visibleold":"0","groupmode":"0","groupingid":"0","completion":"0","completiongradeitemnumber":null,"completionview":"0","completionexpected":"0","showdescription":"0","availability":null,"deletioninprogress":"1","completionpassgrade":"0","downloadcontent":"1","lang":null}],"userid":"174","realuserid":"174"}
... started 09:51:56. Current memory use 22.3 MB.
++ Skipping deletion of global blog (ID: 1). Global blogs cannot be deleted. ++
* line 135 of /mod/oublog/lib.php: call to debugging()
* line 753 of /course/lib.php: call to oublog_delete_instance()
* line 68 of /course/classes/task/course_delete_modules.php: call to course_delete_module()
* line 517 of /lib/classes/cron.php: call to core_course\task\course_delete_modules->execute()
* line 348 of /lib/classes/cron.php: call to core\cron::run_inner_adhoc_task()
* line 148 of /admin/cli/adhoc_task.php: call to core\cron::run_adhoc_task()
... used 11 dbqueries
... used 0.24819278717041 seconds
Adhoc task failed: core_course\task\course_delete_modules,Coding error detected, it must be fixed by a programmer: The following course modules could not be deleted:
 The course module 1 could not be deleted. error/cannotdeletemoduleinstance (Cannot delete the module oublog (instance).): /var/www/miclearn/course/lib.php(754) #0 /var/www/miclearn/course/classes/task/course_delete_modules.php(68): course_delete_module('1')
#1 /var/www/miclearn/lib/classes/cron.php(517): core_course\task\course_delete_modules->execute()
#2 /var/www/miclearn/lib/classes/cron.php(348): core\cron::run_inner_adhoc_task(Object(core_course\task\course_delete_modules))
#3 /var/www/miclearn/admin/cli/adhoc_task.php(148): core\cron::run_adhoc_task(3018)
#4 {main}
Backtrace:
* line 517 of /lib/classes/cron.php: call to core_course\task\course_delete_modules->execute()
* line 348 of /lib/classes/cron.php: call to core\cron::run_inner_adhoc_task()
* line 148 of /admin/cli/adhoc_task.php: call to core\cron::run_adhoc_task()

After plugin code change:

Execute adhoc task: core_course\task\course_delete_modules
Adhoc task id: 3018
Adhoc task custom data: {"cms":[{"id":"1","course":"1","module":"55","instance":"1","section":"2","idnumber":null,"added":"1549578973","score":"0","indent":"0","visible":"0","visibleoncoursepage":"1","visibleold":"0","groupmode":"0","groupingid":"0","completion":"0","completiongradeitemnumber":null,"completionview":"0","completionexpected":"0","showdescription":"0","availability":null,"deletioninprogress":"1","completionpassgrade":"0","downloadcontent":"1","lang":null}],"userid":"174","realuserid":"174"}
... started 09:29:44. Current memory use 22.3 MB.
++ Skipping deletion of global blog (ID: 1). Global blogs cannot be deleted. ++
* line 135 of /mod/oublog/lib.php: call to debugging()
* line 753 of /course/lib.php: call to oublog_delete_instance()
* line 68 of /course/classes/task/course_delete_modules.php: call to course_delete_module()
* line 517 of /lib/classes/cron.php: call to core_course\task\course_delete_modules->execute()
* line 348 of /lib/classes/cron.php: call to core\cron::run_inner_adhoc_task()
* line 148 of /admin/cli/adhoc_task.php: call to core\cron::run_adhoc_task()
... used 110 dbqueries
... used 0.20869612693787 seconds
Adhoc task complete: core_course\task\course_delete_modules
++ No configured queue ++
* line 136 of /admin/tool/log/store/standardqueued/classes/log/store.php: call to debugging()
* line 106 of /admin/tool/log/classes/helper/buffered_writer.php: call to logstore_standardqueued\log\store->insert_event_entries()
* line 132 of /admin/tool/log/classes/helper/buffered_writer.php: call to logstore_standard\log\store->flush()
* line 195 of /admin/tool/log/classes/log/manager.php: call to logstore_standard\log\store->dispose()
* line 167 of /lib/classes/shutdown_manager.php: call to tool_log\log\manager->dispose()
* line ? of unknownfile: call to core_shutdown_manager::shutdown_handler()

@owenherbert-catalyst owenherbert-catalyst changed the title Change return value for graceful exit Fix Moodle 4.5 delete global blog issue Oct 23, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant