Hello community, here is the log from the commit of package moarvm for openSUSE:Factory checked in at 2020-01-07 23:52:20 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/moarvm (Old) and /work/SRC/openSUSE:Factory/.moarvm.new.6675 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "moarvm" Tue Jan 7 23:52:20 2020 rev:23 rq:761268 version:2020.01 Changes: -------- --- /work/SRC/openSUSE:Factory/moarvm/moarvm.changes 2019-12-02 11:38:18.178460197 +0100 +++ /work/SRC/openSUSE:Factory/.moarvm.new.6675/moarvm.changes 2020-01-07 23:52:48.908014544 +0100 @@ -1,0 +2,24 @@ +Mon Jan 6 19:44:55 CET 2020 - [email protected] + +- Add moarvm-fix-segfaults-in-openssl.diff fixing segfaulty regression + noticed too late for the release. + +------------------------------------------------------------------- +Sun Jan 5 10:58:58 CET 2020 - [email protected] + +- update to version 2020.01 + ++ Fix relocatability of modules using NativeCall ++ Fix segfault caused by deopt all in NativeCall callback ++ Fix segfaults caused by JITed takehandlerresult returning NULL ++ Fix frame walker segfaults caused by deopt of a caller on a different thread ++ Fix memory corruption after cancelling signal ++ Allow getting absolute epoch startup time of VM in vmeventsubscribe ++ Add support for '−' (U+2212) minus for nqp::radix(_I) ++ Clean up MVM_io_resolve_host_name and make it more portable ++ Move to C99, compile with -Wall -Wextra and fix preexisting compiler warnings ++ Jit ordbaseat + +- Remove MoarVM-buildroot-fix.diff as the issue has been fixed upstream + +------------------------------------------------------------------- Old: ---- MoarVM-2019.11.tar.gz MoarVM-buildroot-fix.diff New: ---- MoarVM-2020.01.tar.gz moarvm-fix-segfaults-in-openssl.diff ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ moarvm.spec ++++++ --- /var/tmp/diff_new_pack.5rR2SD/_old 2020-01-07 23:52:50.136015182 +0100 +++ /var/tmp/diff_new_pack.5rR2SD/_new 2020-01-07 23:52:50.140015184 +0100 @@ -1,7 +1,7 @@ # # spec file for package moarvm # -# Copyright (c) 2019 SUSE LLC +# Copyright (c) 2020 SUSE LLC # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -16,7 +16,7 @@ # -%global mvrel 2019.11 +%global mvrel 2020.01 Name: moarvm Version: %mvrel Release: 2.1 @@ -27,7 +27,7 @@ Source: http://moarvm.org/releases/MoarVM-%{mvrel}.tar.gz # PATCH-FIX-OPENSUSE boo#1100677 Patch0: reproducible.patch -Patch1: MoarVM-buildroot-fix.diff +Patch1: moarvm-fix-segfaults-in-openssl.diff BuildRequires: perl(ExtUtils::Command) %description ++++++ MoarVM-2019.11.tar.gz -> MoarVM-2020.01.tar.gz ++++++ ++++ 6664 lines of diff (skipped) ++++++ moarvm-fix-segfaults-in-openssl.diff ++++++ commit 105d09d62d80a62f40b0db2146eec1a09bfdfb37 Author: Stefan Seifert <[email protected]> Date: Mon Jan 6 17:00:23 2020 +0100 Fix NativeCall libraries losing state during repossession Repossession of objects calls their gc_free. For NativeCall sites this will lead to unloading the library. Doing so causes trouble as the module may alreay have run some initialization call as is the case for IO::Socket::Async::SSL. Even though we later load the library again, we will run into issues. Better to keep libraries loaded in the very theoretical case of some program only referencing a native call for a while than to run into segfaults. So remove the call to MVM_nativecall_free_lib until we have a proper solution. diff --git a/src/6model/reprs/NativeCall.c b/src/6model/reprs/NativeCall.c index 398e7da56..0eef99b11 100644 --- a/src/6model/reprs/NativeCall.c +++ b/src/6model/reprs/NativeCall.c @@ -143,8 +143,11 @@ static void gc_cleanup(MVMThreadContext *tc, MVMSTable *st, void *data) { MVMNativeCallBody *body = (MVMNativeCallBody *)data; if (body->lib_name) MVM_free(body->lib_name); +/* FIXME don't free the library unconditionally, as the handle will be shared among NativeCall sites + * Also if we're called by repossession, we would use any initialized state of the library if (body->lib_handle) MVM_nativecall_free_lib(body->lib_handle); +*/ if (body->arg_types) MVM_free(body->arg_types); if (body->arg_info)
