[#100689] [Ruby master Feature#17303] Make webrick to bundled gems or remove from stdlib — hsbt@...

Issue #17303 has been reported by hsbt (Hiroshi SHIBATA).

11 messages 2020/11/02

[#100715] [Ruby master Bug#17306] TestGCCompact#test_ast_compacts test failures — v.ondruch@...

Issue #17306 has been reported by vo.x (Vit Ondruch).

11 messages 2020/11/05

[#100720] [Ruby master Feature#17307] A way to mark C extensions as thread-safe, Ractor-safe, or unsafe — eregontp@...

Issue #17307 has been reported by Eregon (Benoit Daloze).

22 messages 2020/11/05

[#100744] [Ruby master Bug#17310] Closed ractors should die — marcandre-ruby-core@...

Issue #17310 has been reported by marcandre (Marc-Andre Lafortune).

12 messages 2020/11/08

[#100753] [Ruby master Feature#17312] New methods in Enumerable and Enumerator::Lazy: flatten, product, compact — zverok.offline@...

Issue #17312 has been reported by zverok (Victor Shepelev).

11 messages 2020/11/09

[#100763] [Ruby master Feature#17314] Provide a way to declare visibility of attributes defined by attr* methods in a single expression — radek.bulat@...

Issue #17314 has been reported by radarek (RadosナBw BuナBt).

17 messages 2020/11/10

[#100777] [Ruby master Feature#17316] On memoization — sawadatsuyoshi@...

Issue #17316 has been reported by sawa (Tsuyoshi Sawada).

18 messages 2020/11/11

[#100788] [Ruby master Misc#17319] Rename Random::urandom to os_random and document random data sources — zofrex@...

Issue #17319 has been reported by zofrex (James Sanderson).

11 messages 2020/11/11

[#100807] [Ruby master Feature#17322] Deprecate `Random::DEFAULT` and introduce `Random.default()` method to provide Ractor-supported default random generator — ko1@...

Issue #17322 has been reported by ko1 (Koichi Sasada).

14 messages 2020/11/12

[#100816] [Ruby master Feature#17323] Ractor::LVar to provide ractor-local storage — ko1@...

Issue #17323 has been reported by ko1 (Koichi Sasada).

19 messages 2020/11/12

[#100849] [Ruby master Feature#17325] Adds Fiber#cancel, which forces a Fiber to break/return — nicholas.evans@...

Issue #17325 has been reported by nevans (Nicholas Evans).

17 messages 2020/11/14

[#100852] [Ruby master Feature#17326] Add Kernel#must! to the standard library — zimmerman.jake@...

Issue #17326 has been reported by jez (Jake Zimmerman).

24 messages 2020/11/14

[#100858] [Ruby master Feature#17327] The Queue constructor should take an initial set of items — chris@...

Issue #17327 has been reported by chrisseaton (Chris Seaton).

10 messages 2020/11/15

[#100897] [Ruby master Feature#17330] Object#non — zverok.offline@...

Issue #17330 has been reported by zverok (Victor Shepelev).

21 messages 2020/11/17

[#100925] [Ruby master Feature#17331] Let Fiber#raise work with transferring fibers — nicholas.evans@...

Issue #17331 has been reported by nevans (Nicholas Evans).

12 messages 2020/11/18

[#100930] [Ruby master Feature#17333] Enumerable#many? — masafumi.o1988@...

Issue #17333 has been reported by okuramasafumi (Masafumi OKURA).

10 messages 2020/11/18

[#100971] [Ruby master Bug#17337] Don't embed Ruby build time configuration into Ruby — v.ondruch@...

Issue #17337 has been reported by vo.x (Vit Ondruch).

16 messages 2020/11/20

[#100999] [Ruby master Feature#17339] Semantic grouping on BigDecimal#to_s — co.chuma@...

Issue #17339 has been reported by chumaltd (Takahiro Chuma).

9 messages 2020/11/21

[#101071] [Ruby master Feature#17342] Hash#fetch_set — hunter_spawn@...

Issue #17342 has been reported by MaxLap (Maxime Lapointe).

26 messages 2020/11/25

[#101093] [Ruby master Misc#17346] DevelopersMeeting20201210Japan — mame@...

Issue #17346 has been reported by mame (Yusuke Endoh).

17 messages 2020/11/26

[#101141] [Ruby master Bug#17354] Module#const_source_location is misleading for constants awaiting autoload — tom@...

Issue #17354 has been reported by tomstuart (Tom Stuart).

21 messages 2020/11/29

[#101143] [Ruby master Feature#17355] Or-patterns (pattern matching like Foo(x) | Bar(x)) — fg@...

Issue #17355 has been reported by decuplet (Nikita Shilnikov).

8 messages 2020/11/29

[#101153] [Ruby master Feature#17356] Alignment of memory allocated through Fiddle struct's malloc — andrea.ribuoli@...

Issue #17356 has been reported by AndreaRibuoli (Andrea Ribuoli).

8 messages 2020/11/30

[ruby-core:101029] [Ruby master Bug#17338] ruby-spec stuck in "C-API Kernel function rb_rescue2"

From: merch-redmine@...
Date: 2020-11-23 17:45:03 UTC
List: ruby-core #101029
Issue #17338 has been updated by jeremyevans0 (Jeremy Evans).

Status changed from Open to Feedback

I suspect this may be due to the TypeError occurring during the rescue handling.  One possibility is to preprocess the list of exception classes to make sure they are all classes or modules.  This is different than the ruby-level rescue clause, which doesn't execute the rescue list expression unless an exception is raised, but since `rb_rescue2` needs to be passed a `va_list` of `VALUE`s, it may be acceptable.

Can you try this patch and see if it fixes the issue:

```diff
diff --git a/eval.c b/eval.c
index 55ac8b4eac..1b05d3a10a 100644
--- a/eval.c
+++ b/eval.c
@@ -1012,6 +1012,15 @@ rb_vrescue2(VALUE (* b_proc) (VALUE), VALUE data1,
     rb_control_frame_t *volatile cfp = ec->cfp;
     volatile VALUE result = Qfalse;
     volatile VALUE e_info = ec->errinfo;
+    VALUE eclass;
+    va_list args_check;
+
+    va_copy(args_check, args);
+    while ((eclass = va_arg(args_check, VALUE)) != 0) {
+        if (!(RB_TYPE_P(eclass, T_CLASS) || RB_TYPE_P(eclass, T_MODULE))) {
+           rb_raise(rb_eTypeError, "class or module required");
+        }
+    }

     EC_PUSH_TAG(ec);
     if ((state = EC_EXEC_TAG()) == TAG_NONE) {
@@ -1032,7 +1041,6 @@ rb_vrescue2(VALUE (* b_proc) (VALUE), VALUE data1,

        if (state == TAG_RAISE) {
            int handle = FALSE;
-           VALUE eclass;

            while ((eclass = va_arg(args, VALUE)) != 0) {
                if (rb_obj_is_kind_of(ec->errinfo, eclass)) {
```

This uses `va_copy`, which should be acceptable now because it is in C99.  https://bugs.ruby-lang.org/projects/ruby-master/wiki/C99 links to a work around that can be used in Ruby <2.7 (before we switched to allowing C99 features), in case we need to backport this to Ruby 2.6.

----------------------------------------
Bug #17338: ruby-spec stuck in "C-API Kernel function rb_rescue2"
https://bugs.ruby-lang.org/issues/17338#change-88701

* Author: vo.x (Vit Ondruch)
* Status: Feedback
* Priority: Normal
* Assignee: Eregon (Benoit Daloze)
* ruby -v: ruby 3.0.0dev (2020-11-20 master 1f7b557890) [i386-linux]
* Backport: 2.5: UNKNOWN, 2.6: UNKNOWN, 2.7: UNKNOWN
----------------------------------------
Trying to build Ruby on Fedora Rawhide, the ruby-spec test suite gets stuck on some platforms (I noticed this on i686 and ppc64le) somewhere around:

~~~
C-API Kernel function rb_rescue2
- only rescues if one of the passed exceptions is raised
~~~

I have tried to disable the last test listed via `-P 'only rescues if one of the passed exceptions is raised'` but the test suite is stuck again. My next suspect is [1].


[1]: https://github.com/ruby/spec/commit/fb363fb1d4382f6cc25ac3dde5d44afeccf7f80c



-- 
https://bugs.ruby-lang.org/

Unsubscribe: <mailto:ruby-core-request@ruby-lang.org?subject=unsubscribe>
<http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-core>

In This Thread