File 1480-erts-Fix-erts_code_purger-to-not-drop-finish_after_o.patch of Package erlang

From 0d82c2149ed92fb68b49dc0a51932b1d6c3fc4a0 Mon Sep 17 00:00:00 2001
From: Sverker Eriksson <sverker@erlang.org>
Date: Mon, 26 Feb 2024 21:25:45 +0100
Subject: [PATCH] erts: Fix erts_code_purger to not drop finish_after_on_load
 messages

while doing a purge operation in cpc_receive().

The symptom will be code_server process hanging in
erts_code_purger:finish_after_on_load/2 waiting for reply.

This is probably not a problem as long as only the code server
interface (code) is used to load and purge code and not the
discouraged lower level functions like erlang:purge_module.
---
 erts/preloaded/ebin/erts_code_purger.beam | Bin 14112 -> 14152 bytes
 erts/preloaded/src/erts_code_purger.erl   |   3 ++-
 2 files changed, 2 insertions(+), 1 deletion(-)

diff --git a/erts/preloaded/src/erts_code_purger.erl b/erts/preloaded/src/erts_code_purger.erl
index 9f6bd6e289..0e4ca19ae6 100644
--- a/erts/preloaded/src/erts_code_purger.erl
+++ b/erts/preloaded/src/erts_code_purger.erl
@@ -270,7 +270,8 @@ cpc_receive(#cpc_static{tag = Tag} = CpcS, {NoReq, PidsLeft} = ReqInfo,
                         PReqs);
 	PReq when element(1, PReq) == purge;
 		  element(1, PReq) == soft_purge;
-		  element(1, PReq) == test_purge ->
+		  element(1, PReq) == test_purge;
+                  element(1, PReq) == finish_after_on_load ->
 	    %% A new purge request; save it until later...
 	    cpc_receive(CpcS, ReqInfo, KillState0, [PReq | PReqs]);
 
-- 
2.35.3

openSUSE Build Service is sponsored by