[#25936] [Bug:1.9] [rubygems] $LOAD_PATH includes bin directory — Nobuyoshi Nakada <nobu@...>

Hi,

10 messages 2009/10/05

[#25943] Disabling tainting — Tony Arcieri <tony@...>

Would it make sense to have a flag passed to the interpreter on startup that

16 messages 2009/10/05

[#26028] [Bug #2189] Math.atanh(1) & Math.atanh(-1) should not raise an error — Marc-Andre Lafortune <redmine@...>

Bug #2189: Math.atanh(1) & Math.atanh(-1) should not raise an error

14 messages 2009/10/10

[#26222] [Bug #2250] IO::for_fd() objects' finalization dangerously closes underlying fds — Mike Pomraning <redmine@...>

Bug #2250: IO::for_fd() objects' finalization dangerously closes underlying fds

11 messages 2009/10/22

[#26244] [Bug #2258] Kernel#require inside rb_require() inside rb_protect() inside SysV context fails — Suraj Kurapati <redmine@...>

Bug #2258: Kernel#require inside rb_require() inside rb_protect() inside SysV context fails

24 messages 2009/10/22

[#26361] [Feature #2294] [PATCH] ruby_bind_stack() to embed Ruby in coroutine — Suraj Kurapati <redmine@...>

Feature #2294: [PATCH] ruby_bind_stack() to embed Ruby in coroutine

42 messages 2009/10/27

[#26371] [Bug #2295] segmentation faults — tomer doron <redmine@...>

Bug #2295: segmentation faults

16 messages 2009/10/27

[ruby-core:25969] [Bug #2181] Segmentation fault for test/drb/* -- possible bug in Marshal/GC

From: Nikolai Lugovoi <redmine@...>
Date: 2009-10-06 13:18:47 UTC
List: ruby-core #25969
Bug #2181: Segmentation fault for test/drb/* -- possible bug in Marshal/GC
http://redmine.ruby-lang.org/issues/show/2181

Author: Nikolai Lugovoi
Status: Open, Priority: Normal
Category: core
ruby -v: ruby 1.9.2dev (2009-10-06) [i686-linux]

After changeset r25230 in marshal.c I see some segfaults (at  various places)when running make test-all or only test suite test/drb/*, see attached file test-crash.txt

Removing gc marks for elements of struct load_arg seems to fix the problem:

--- a/marshal.c
+++ b/marshal.c
@@ -971,16 +971,6 @@ check_load_arg(struct load_arg *arg, ID sym)
 static void clear_load_arg(struct load_arg *arg);
 
 static void
-mark_load_arg(void *ptr)
-{
-    struct load_arg *p = ptr;
-    if (!ptr)
-        return;
-    rb_mark_tbl(p->data);
-    rb_mark_hash(p->compat_tbl);
-}
-
-static void
 free_load_arg(void *ptr)
 {
     clear_load_arg(ptr);
@@ -995,7 +985,7 @@ memsize_load_arg(const void *ptr)
 
 static const rb_data_type_t load_arg_data = {
     "load_arg",
-    mark_load_arg, free_load_arg, memsize_load_arg
+    NULL, free_load_arg, memsize_load_arg
 };
 
 static VALUE r_entry(VALUE v, struct load_arg *arg);


----------------------------------------
http://redmine.ruby-lang.org

In This Thread

Prev Next