SELECT 'x' FROM #mdl_backup_ids_temp WITH (NOLOCK) WHERE backupid = N'633eea43439d92cf119d09bb687326ff' AND itemname = N'user' AND itemid = '6607' ORDER BY 1 OFFSET 0 ROWS FETCH NEXT 1 ROWS ONLY
[array (
0 => '633eea43439d92cf119d09bb687326ff',
1 => 'user',
2 => '6607',
)]
If I restart the database service, it crashes the php execution and gives the following error message:
PS C:\Windows\system32> C:\php\php.exe -f C:\inetpub\wwwroot\moodle\admin\cli\adhoc_task.php -- -e -i --showdebugging
Server Time: Thu, 22 Feb 2024 14:18:25 -0600
Execute adhoc task: core_course\task\course_delete_modules
... started 14:18:26. Current memory use 11.9MB.
... used 1270 dbqueries
... used 60191.899248123 seconds
Adhoc task failed: core_course\task\course_delete_modules,Coding error detected, it must be fixed by a programmer: The course module 302186 could not be deleted. #0 C:\inetpub\wwwroot\moodle\lib\dml\sqlsrv_native_moodle_database.php(331): moodle_database->query_end()
#1 C:\inetpub\wwwroot\moodle\lib\dml\sqlsrv_native_moodle_database.php(438): sqlsrv_native_moodle_database->query_end()
#2 C:\inetpub\wwwroot\moodle\lib\dml\sqlsrv_native_moodle_database.php(907): sqlsrv_native_moodle_database->do_query()
#3 C:\inetpub\wwwroot\moodle\lib\dml\moodle_database.php(1955): sqlsrv_native_moodle_database->get_recordset_sql()
#4 C:\inetpub\wwwroot\moodle\lib\dml\moodle_database.php(1940): moodle_database->record_exists_sql()
#5 C:\inetpub\wwwroot\moodle\lib\dml\moodle_database.php(1924): moodle_database->record_exists_select()
#6 C:\inetpub\wwwroot\moodle\backup\util\dbops\backup_structure_dbops.class.php(169): moodle_database->record_exists()
#7 C:\inetpub\wwwroot\moodle\backup\moodle2\backup_stepslib.php(1812): backup_structure_dbops::move_annotations_to_final()
#8 C:\inetpub\wwwroot\moodle\backup\util\plan\backup_execution_step.class.php(34): move_inforef_annotations_to_final->define_execution()
#9 C:\inetpub\wwwroot\moodle\backup\util\plan\base_task.class.php(183): backup_execution_step->execute()
#10 C:\inetpub\wwwroot\moodle\backup\util\plan\base_plan.class.php(193): base_task->execute()
#11 C:\inetpub\wwwroot\moodle\backup\util\plan\backup_plan.class.php(145): base_plan->execute()
#12 C:\inetpub\wwwroot\moodle\backup\controller\backup_controller.class.php(419): backup_plan->execute()
#13 C:\inetpub\wwwroot\moodle\admin\tool\recyclebin\classes\course_bin.php(136): backup_controller->execute_plan()
#14 C:\inetpub\wwwroot\moodle\admin\tool\recyclebin\lib.php(151): tool_recyclebin\course_bin->store_item()
#15 C:\inetpub\wwwroot\moodle\course\lib.php(1046): tool_recyclebin_pre_course_module_delete()
#16 C:\inetpub\wwwroot\moodle\course\classes\task\course_delete_modules.php(66): course_delete_module()
#17 C:\inetpub\wwwroot\moodle\lib\cronlib.php(341): core_course\task\course_delete_modules->execute()
#18 C:\inetpub\wwwroot\moodle\lib\cronlib.php(198): cron_run_inner_adhoc_task()
#19 C:\inetpub\wwwroot\moodle\admin\cli\adhoc_task.php(122): cron_run_adhoc_tasks()
#20 {main}
Backtrace:
* line 341 of \lib\cronlib.php: call to core_course\task\course_delete_modules->execute()
* line 198 of \lib\cronlib.php: call to cron_run_inner_adhoc_task()
* line 122 of \admin\cli\adhoc_task.php: call to cron_run_adhoc_tasks()
!!! Error writing to database !!!
Debug info: SQLState: 08S01<br>
Error Code: -1<br>
Message: [Microsoft][ODBC Driver 17 for SQL Server]Session Provider: Connection has been closed by peer [xFFFFFFFF]. <br>
SQLState: 08S01<br>
Error Code: -1<br>
Message: [Microsoft][ODBC Driver 17 for SQL Server]Communication link failure<br>
UPDATE mdl_task_adhoc SET classname = N'\core_course\task\course_delete_modules',component = N'',blocking = '0',nextruntime = '1708693357',faildelay = '60',customdata = N'{"cms":[{"id":"302186","course":"741","module":"14","instance":"1722","section":"10998","idnumber":"","added":"1704474541","score":"0","indent":"0","visible":"1","visibleoncoursepage":"1","visibleold":"1","groupmode":"0","groupingid":"0","completion":"0","completiongradeitemnumber":null,"completionview":"0","completionexpected":"0","showdescription":"0","availability":null,"deletioninprogress":"1"}],"userid":"1440","realuserid":"1440"}',userid = NULL WHERE id = '1992'
[array (
0 => '\\core_course\\task\\course_delete_modules',
1 => '',
2 => 0,
3 => 1708693357,
4 => 60,
5 => '{"cms":[{"id":"302186","course":"741","module":"14","instance":"1722","section":"10998","idnumber":"","added":"1704474541","score":"0","indent":"0","visible":"1","visibleoncoursepage":"1","visibleold":"1","groupmode":"0","groupingid":"0","completion":"0","completiongradeitemnumber":null,"completionview":"0","completionexpected":"0","showdescription":"0","availability":null,"deletioninprogress":"1"}],"userid":"1440","realuserid":"1440"}',
6 => NULL,
7 => '1992',
)]
Error code: dmlwriteexception
Stack trace: * line 489 of \lib\dml\moodle_database.php: dml_write_exception thrown
* line 331 of \lib\dml\sqlsrv_native_moodle_database.php: call to moodle_database->query_end()
* line 438 of \lib\dml\sqlsrv_native_moodle_database.php: call to sqlsrv_native_moodle_database->query_end()
* line 1219 of \lib\dml\sqlsrv_native_moodle_database.php: call to sqlsrv_native_moodle_database->do_query()
* line 1251 of \lib\dml\sqlsrv_native_moodle_database.php: call to sqlsrv_native_moodle_database->update_record_raw()
* line 730 of \lib\classes\task\manager.php: call to sqlsrv_native_moodle_database->update_record()
* line 369 of \lib\cronlib.php: call to core\task\manager::adhoc_task_failed()
* line 198 of \lib\cronlib.php: call to cron_run_inner_adhoc_task()
* line 122 of \admin\cli\adhoc_task.php: call to cron_run_adhoc_tasks()
This happened after migrating to a new web server and new database, so I suspect a database configuration setting is to blame. I've tried purging the caches, deleting the
moodledata\lock directory, and restarting the database server with no success. The database reports that there are no locked transactions.
Any ideas what could be causing the adhoc tasks to freeze, or how to fix it?
Here are details of my environment:
Moodle version: 3.9.21+ (Build: 20230602)
PHP version: 7.4.33
Web server is Windows Server 2022 Standard, running IIS
Database server is Windows Server 2022 Standard, running Microsoft SQL Server 2019