-
Notifications
You must be signed in to change notification settings - Fork 5
Open
Description
Dear developer,
in Moodle Moodle 4.5+ (Build: 20241025) with PHP 8.1 scheduled task "\block_exacomp\task\clear_exacomp_weekly_schedule" fails with the following error.
Best regards
Andreas
Execute scheduled task: Alle unbearbeiteten Aufgaben im Wochenplan der letzten Woche entfernen und wieder in den Planungsspeicher schieben. Alle Einträge im Planungsspeicher löschen, welche keinem Kurs zugeordnet sind (z.B. Kurs wurde gelöscht). (block_exacomp\task\clear_exacomp_weekly_schedule)
... started 12:30:02. Current memory use 23.7 MB.
Debugging increased temporarily due to faildelay of 86400
Exabis Competence Grid: clear_exacomp_weekly_schedule "Sonntagsscript" task is running:
... used 3 dbqueries
... used 0.041341066360474 seconds
Scheduled task failed: Alle unbearbeiteten Aufgaben im Wochenplan der letzten Woche entfernen und wieder in den Planungsspeicher schieben. Alle Einträge im Planungsspeicher löschen, welche keinem Kurs zugeordnet sind (z.B. Kurs wurde gelöscht). (block_exacomp\task\clear_exacomp_weekly_schedule),Fehler beim Schreiben der Datenbank (You can't specify target table 'mdl_block_exacompschedule' for update in FROM clause
UPDATE mdl_block_exacompschedule
SET start = null, endtime = null, is_overdue = 1
WHERE id IN (
SELECT schedule.id
FROM mdl_block_exacompschedule schedule
JOIN mdl_block_exacompexamples ex ON ex.id = schedule.exampleid
WHERE schedule.start > ?
AND schedule.start < ?
AND ex.blocking_event = 0
AND schedule.id NOT IN (
SELECT sched.id
-- select table inside a subquery, because else we get a
-- 'You can't specify target table 'schedule' for update in FROM clause'
-- error
FROM (SELECT id, exampleid, start FROM mdl_block_exacompschedule) AS sched
JOIN mdl_block_exacompitem_mm item_mm ON sched.exampleid = item_mm.exacomp_record_id
JOIN mdl_block_exaportitem item ON item_mm.itemid = item.id
WHERE sched.start > ?
AND sched.start < ?
)
)
[array (
0 => 1731065402,
1 => 1731670202,
2 => 1731065402,
3 => 1731670202,
)])
Debug info:
You can't specify target table 'mdl_block_exacompschedule' for update in FROM clause
UPDATE mdl_block_exacompschedule
SET start = null, endtime = null, is_overdue = 1
WHERE id IN (
SELECT schedule.id
FROM mdl_block_exacompschedule schedule
JOIN mdl_block_exacompexamples ex ON ex.id = schedule.exampleid
WHERE schedule.start > ?
AND schedule.start < ?
AND ex.blocking_event = 0
AND schedule.id NOT IN (
SELECT sched.id
-- select table inside a subquery, because else we get a
-- 'You can't specify target table 'schedule' for update in FROM clause'
-- error
FROM (SELECT id, exampleid, start FROM mdl_block_exacompschedule) AS sched
JOIN mdl_block_exacompitem_mm item_mm ON sched.exampleid = item_mm.exacomp_record_id
JOIN mdl_block_exaportitem item ON item_mm.itemid = item.id
WHERE sched.start > ?
AND sched.start < ?
)
)
[array (
0 => 1731065402,
1 => 1731670202,
2 => 1731065402,
3 => 1731670202,
)]
Backtrace:
* line 293 of /lib/dml/moodle_read_slave_trait.php: call to moodle_database->query_end()
* line 1258 of /lib/dml/mysqli_native_moodle_database.php: call to mysqli_native_moodle_database->query_end()
* line 14785 of /blocks/exacomp/lib/lib.php: call to mysqli_native_moodle_database->execute()
* line 36 of /blocks/exacomp/classes/task/clear_exacomp_weekly_schedule.php: call to block_exacomp_clear_exacomp_weekly_schedule()
* line 410 of /lib/classes/cron.php: call to block_exacomp\task\clear_exacomp_weekly_schedule->execute()
* line 208 of /lib/classes/cron.php: call to core\cron::run_inner_scheduled_task()
* line 125 of /lib/classes/cron.php: call to core\cron::run_scheduled_tasks()
* line 186 of /admin/cli/cron.php: call to core\cron::run_main_process()
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels