Fix SEGFAULT in rubygem-shoulda-matchers test suite.
This commit is contained in:
parent
0256efd992
commit
1e72602218
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