Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package moarvm for openSUSE:Factory checked 
in at 2021-08-27 21:44:01
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/moarvm (Old)
 and      /work/SRC/openSUSE:Factory/.moarvm.new.1899 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "moarvm"

Fri Aug 27 21:44:01 2021 rev:33 rq:914565 version:2021.08

Changes:
--------
--- /work/SRC/openSUSE:Factory/moarvm/moarvm.changes    2021-08-23 
10:09:25.400158693 +0200
+++ /work/SRC/openSUSE:Factory/.moarvm.new.1899/moarvm.changes  2021-08-27 
21:45:14.430064362 +0200
@@ -1,0 +2,6 @@
+Fri Aug 27 09:29:23 UTC 2021 - Stefan Seifert <n...@detonation.org>
+
+- Backport a memory leak fix from moarvm master
+  Add moarvm-fix-memory-leak.diff to be removed on the next release
+
+-------------------------------------------------------------------

New:
----
  moarvm-fix-memory-leak.diff

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ moarvm.spec ++++++
--- /var/tmp/diff_new_pack.pbzISj/_old  2021-08-27 21:45:15.062065116 +0200
+++ /var/tmp/diff_new_pack.pbzISj/_new  2021-08-27 21:45:15.066065121 +0200
@@ -19,7 +19,7 @@
 %global mvrel 2021.08
 Name:           moarvm
 Version:        %mvrel
-Release:        2.1
+Release:        3.1
 Summary:        A virtual machine built especially for Rakudo Perl 6
 License:        Artistic-2.0
 Group:          Development/Libraries/Other
@@ -27,6 +27,7 @@
 Source:         http://moarvm.org/releases/MoarVM-%{mvrel}.tar.gz
 # PATCH-FIX-OPENSUSE boo#1100677
 Patch0:         reproducible.patch
+Patch1:         moarvm-fix-memory-leak.diff
 BuildRequires:  perl(ExtUtils::Command)
 
 %description
@@ -46,6 +47,7 @@
 %prep
 %setup -q -n MoarVM-%{mvrel}
 %patch0 -p1
+%patch1 -p1
 
 %build
 perl Configure.pl --prefix=%{_usr} --libdir=%{_libdir} --debug --optimize=3

++++++ moarvm-fix-memory-leak.diff ++++++
commit bb14f423768d122a23a2ef6512880d0f45c3e080
Author: Stefan Seifert <n...@detonation.org>
Date:   Fri Aug 27 10:16:22 2021 +0200

    Fix finalizers of gen2 objects rarely getting run
    
    After garbage collection we go through the list of objects with finalizers 
(the
    finalize list) and move objects that were collected to the list of 
finalizers
    to run. We rewrite the finalize list as we walk through it, in order to only
    keep live objects. However during a nursery-only collection we only 
considered
    nursery objects. Objects that were already in gen2 were not moved to the
    collapsed finalize list. Thus we never ran those object's finalizers.
    
    Fix by indiscriminately moving objects we don't have a closer look at to the
    collapsed list.

diff --git a/src/gc/finalize.c b/src/gc/finalize.c
index e30916ffb..d4aa57b71 100644
--- a/src/gc/finalize.c
+++ b/src/gc/finalize.c
@@ -98,6 +98,10 @@ static void walk_thread_finalize_queue(MVMThreadContext *tc, 
MVMuint8 gen) {
                 add_to_finalizing(tc, tc->finalize[i]);
             }
         }
+        else {
+            /* Just keep gen2 objects as they are during nursery-only 
collection */
+            tc->finalize[collapse_pos++] = tc->finalize[i];
+        }
     }
     tc->num_finalize = collapse_pos;
 }

Reply via email to