Merged update from upstream sources
This is an automated DistroBaker update from upstream sources. If you do not know what this is about or would like to opt out, contact the OSCI team. Source: https://src.fedoraproject.org/rpms/ruby.git#1e7260221818aaaff726e7141f211251c54db14a
This commit is contained in:
parent
943f698bb4
commit
e2a680dabb
31
ruby-3.0.0-Dont-try-to-clear-cache-on-garbage-objects.patch
Normal file
31
ruby-3.0.0-Dont-try-to-clear-cache-on-garbage-objects.patch
Normal file
@ -0,0 +1,31 @@
|
||||
From 0b54279d63c4be355e0ce9cc0b81e3df75045791 Mon Sep 17 00:00:00 2001
|
||||
From: Aaron Patterson <tenderlove@ruby-lang.org>
|
||||
Date: Fri, 15 Jan 2021 14:14:43 -0800
|
||||
Subject: [PATCH] Don't try to clear cache on garbage objects
|
||||
|
||||
Method cache can be cleared during lazy sweeping. An object that will
|
||||
be collected during lazy sweep *should not* have it's method cache
|
||||
cleared. Soon-to-be-collected objects can be in an inconsistent state and
|
||||
this can lead to a crash. This patch just leaves early if the object is
|
||||
going to be collected.
|
||||
|
||||
Fixes [Bug #17536]
|
||||
|
||||
Co-Authored-By: John Hawthorn <john@hawthorn.email>
|
||||
Co-Authored-By: Alan Wu <XrXr@users.noreply.github.com>
|
||||
---
|
||||
vm_method.c | 1 +
|
||||
1 file changed, 1 insertion(+)
|
||||
|
||||
diff --git a/vm_method.c b/vm_method.c
|
||||
index 287d4aee6dea..81920bbe5bfb 100644
|
||||
--- a/vm_method.c
|
||||
+++ b/vm_method.c
|
||||
@@ -136,6 +136,7 @@ static void
|
||||
clear_method_cache_by_id_in_class(VALUE klass, ID mid)
|
||||
{
|
||||
VM_ASSERT(RB_TYPE_P(klass, T_CLASS) || RB_TYPE_P(klass, T_ICLASS));
|
||||
+ if (rb_objspace_garbage_object_p(klass)) return;
|
||||
|
||||
if (LIKELY(RCLASS_EXT(klass)->subclasses == NULL)) {
|
||||
// no subclasses
|
10
ruby.spec
10
ruby.spec
@ -22,7 +22,7 @@
|
||||
%endif
|
||||
|
||||
|
||||
%global release 143
|
||||
%global release 144
|
||||
%{!?release_string:%define release_string %{?development_release:0.}%{release}%{?development_release:.%{development_release}}%{?dist}}
|
||||
|
||||
# The RubyGems library has to stay out of Ruby directory tree, since the
|
||||
@ -149,6 +149,10 @@ Patch9: ruby-2.3.1-Rely-on-ldd-to-detect-glibc.patch
|
||||
# Fix SEGFAULT preventing rubygem-unicode to build on armv7hl.
|
||||
# https://bugs.ruby-lang.org/issues/17518
|
||||
Patch10: ruby-3.0.0-Fixed-dangling-imemo_tmpbuf.patch
|
||||
# Fix SEGFAULT in rubygem-shoulda-matchers test suite.
|
||||
# https://bugs.ruby-lang.org/issues/17536
|
||||
# https://github.com/ruby/ruby/pull/4077
|
||||
Patch11: ruby-3.0.0-Dont-try-to-clear-cache-on-garbage-objects.patch
|
||||
# Avoid possible timeout errors in TestBugReporter#test_bug_reporter_add.
|
||||
# https://bugs.ruby-lang.org/issues/16492
|
||||
Patch19: ruby-2.7.1-Timeout-the-test_bug_reporter_add-witout-raising-err.patch
|
||||
@ -609,6 +613,7 @@ rm -rf ext/fiddle/libffi*
|
||||
%patch6 -p1
|
||||
%patch9 -p1
|
||||
%patch10 -p1
|
||||
%patch11 -p1
|
||||
%patch19 -p1
|
||||
|
||||
# Provide an example of usage of the tapset:
|
||||
@ -1390,6 +1395,9 @@ MSPECOPTS="$MSPECOPTS -P 'raises TypeError if one of the passed exceptions is no
|
||||
|
||||
|
||||
%changelog
|
||||
* Sat Jan 16 2021 Vít Ondruch <vondruch@redhat.com> - 3.0.0-144
|
||||
- Fix SEGFAULT in rubygem-shoulda-matchers test suite.
|
||||
|
||||
* Tue Jan 12 2021 Vít Ondruch <vondruch@redhat.com> - 3.0.0-143
|
||||
- Provide `gem.build_complete` file for binary gems.
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user