File 1642-Fix-faulty-assert.patch of Package erlang
From 48de97a1855d9344d8e6210cfba554f25349e70f Mon Sep 17 00:00:00 2001
From: Rickard Green <rickard@erlang.org>
Date: Thu, 14 Jul 2022 18:55:09 +0200
Subject: [PATCH] Fix faulty assert
---
erts/emulator/beam/erl_process.c | 13 ++++++++++++-
1 file changed, 12 insertions(+), 1 deletion(-)
diff --git a/erts/emulator/beam/erl_process.c b/erts/emulator/beam/erl_process.c
index 1f464e2e5a..5b430d5871 100644
--- a/erts/emulator/beam/erl_process.c
+++ b/erts/emulator/beam/erl_process.c
@@ -9248,6 +9248,9 @@ Process *erts_schedule(ErtsSchedulerData *esdp, Process *p, int calls)
Uint32 flags;
erts_aint32_t state = 0; /* Suppress warning... */
int is_normal_sched;
+#ifdef DEBUG
+ int aborted_execution = 0;
+#endif
ERTS_MSACC_DECLARE_CACHE();
@@ -9369,7 +9372,8 @@ Process *erts_schedule(ErtsSchedulerData *esdp, Process *p, int calls)
if (state & ERTS_PSFLG_FREE) {
if (!is_normal_sched) {
- ASSERT(p->flags & F_DELAYED_DEL_PROC);
+ ASSERT((p->flags & F_DELAYED_DEL_PROC)
+ || aborted_execution);
}
else {
ASSERT(esdp->free_process == p);
@@ -9397,6 +9401,10 @@ Process *erts_schedule(ErtsSchedulerData *esdp, Process *p, int calls)
ErtsMigrationPaths *mps;
ErtsMigrationPath *mp;
+#ifdef DEBUG
+ aborted_execution = 0;
+#endif
+
if (is_normal_sched) {
if (esdp->check_time_reds >= ERTS_CHECK_TIME_REDS)
@@ -9769,6 +9777,9 @@ Process *erts_schedule(ErtsSchedulerData *esdp, Process *p, int calls)
erts_proc_unlock(p, ERTS_PROC_LOCK_STATUS);
if (IS_TRACED(p))
trace_schedule_in(p, state);
+#ifdef DEBUG
+ aborted_execution = !0;
+#endif
goto sched_out_proc;
}
}
--
2.35.3