From b79dd2e3e1682d8bee2d796a3508e659d7e0d2ac Mon Sep 17 00:00:00 2001 From: Nolan Ehrstrom Date: Fri, 30 Oct 2026 11:42:12 -0700 Subject: [PATCH 1/2] Test --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 5592643040..c4836526b3 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,4 @@ +. # ProcessMaker 4 Documentation # Overview From 89bdc8df8fc6893fade0addc7e2a3f9592124d76 Mon Sep 17 00:00:00 2001 From: Nolan Ehrstrom Date: Mon, 2 Nov 2026 14:57:52 -0800 Subject: [PATCH 2/2] Fix bpmn event deadlock --- tests/Feature/Shared/ProcessTestingTrait.php | 20 +++++++------------- 1 file changed, 7 insertions(+), 13 deletions(-) diff --git a/tests/Feature/Shared/ProcessTestingTrait.php b/tests/Feature/Shared/ProcessTestingTrait.php index c8a148f7a7..c299e85c3f 100644 --- a/tests/Feature/Shared/ProcessTestingTrait.php +++ b/tests/Feature/Shared/ProcessTestingTrait.php @@ -3,8 +3,6 @@ namespace Tests\Feature\Shared; use DOMElement; -use Illuminate\Console\Scheduling\Event; -use Illuminate\Console\Scheduling\Schedule; use ProcessMaker\Facades\WorkflowManager; use ProcessMaker\Managers\TaskSchedulerManager; use ProcessMaker\Models\Process; @@ -140,22 +138,18 @@ private function logExecutionEvents() } /** - * Run scheduled tasks + * Run scheduled tasks in-process. + * + * Do not shell out to `php artisan bpmn:timer`: under RefreshDatabase the + * parent still holds an open transaction, so the child hits InnoDB lock + * wait timeout (~50s) on the same rows. scheduleTasks() already did the + * work; the subprocess is redundant and only adds that delay. */ private function runScheduledTasks() { - $schedule = app()->make(Schedule::class); $scheduleManager = new TaskSchedulerManager(); $scheduleManager->scheduleTasks(); - /// - $events = collect($schedule->events()); - $events->each(function (Event $event) { - // Only run bpmn:timer events - if (!str_contains($event->command, 'bpmn:timer')) { - return; - } - $event->isDue(app()) && $event->filtersPass(app()) ? $event->run(app()) : null; - }); + $scheduleManager->evaluateConditionals(); } /**