[#30545] [Ann] Contribution wanted: identify tickets for 1.9.2 release — Yusuke ENDOH <mame@...>
Hi all --
[#30558] [Feature #3380] Minitest Runner Command — Thomas Sawyer <redmine@...>
Feature #3380: Minitest Runner Command
[#30592] [Bug #3392] Kernel.open Ignores :binmode Key in Opts Hash w.r.t Encoding — Run Paint Run Run <redmine@...>
Bug #3392: Kernel.open Ignores :binmode Key in Opts Hash w.r.t Encoding
[#30602] The `open` Methods and Their Many Arguments — Run Paint Run Run <runrun@...>
I'm documenting Kernel.open, and the related .open methods, for a book
[#30607] [Bug #3395] Ruby does not appear to build against openssl-1.0.0a — Rebecca Menessecc <redmine@...>
Bug #3395: Ruby does not appear to build against openssl-1.0.0a
[#30656] Promote RubyInstaller as better alternative in ruby-lang.org — Luis Lavena <luislavena@...>
Hello,
[#30672] [Bug #3411] Time.local 1916,5,1 #=> 1916-04-30 23:00:00 +0100 — Benoit Daloze <redmine@...>
Bug #3411: Time.local 1916,5,1 #=> 1916-04-30 23:00:00 +0100
Hi,
On Tue, Jun 8, 2010 at 2:58 PM, Benoit Daloze <redmine@ruby-lang.org> wrote:
[#30697] [Bug #3418] IO#putc Clobbers Multi-byte Characters — Run Paint Run Run <redmine@...>
Bug #3418: IO#putc Clobbers Multi-byte Characters
[#30707] [Bug #3420] Module#method calling <=> causes SystemStackError — Florian Aßmann <redmine@...>
Bug #3420: Module#method calling <=> causes SystemStackError
[#30722] [Feature #3424] Source code interaction. [new ideas for ruby 2] — Eloy Esp <redmine@...>
Feature #3424: Source code interaction. [new ideas for ruby 2]
[#30734] [Bug #3428] ri outputs ansi escape sequences even when stdout is not a tty — caleb clausen <redmine@...>
Bug #3428: ri outputs ansi escape sequences even when stdout is not a tty
[#30756] [Feature #3436] Spawn the timer thread lazily — Maximilian Gass <redmine@...>
Feature #3436: Spawn the timer thread lazily
Issue #3436 has been updated by Mark Somerville.
Hi,
(2010/10/08 15:12), Nobuyoshi Nakada wrote:
On Fri, Oct 08, 2010 at 11:12:47PM +0900, Nobuyoshi Nakada wrote:
On Sun, Oct 10, 2010 at 01:27:53AM +0900, Mark Somerville wrote:
On Sun, Oct 10, 2010 at 02:21:41AM +0900, Mark Somerville wrote:
[#30799] PATCH: ENV['key'] = non_string — Ryan Davis <ryand-ruby@...>
Can I commit this please? This drives me bonkers.
Hi,
[#30821] [Bug #3454] Segfault with syscall — Run Paint Run Run <redmine@...>
Bug #3454: Segfault with syscall
[#30855] requires in 1.9 are slower... — Roger Pack <rogerdpack2@...>
Hi all.
[#30882] Was 1.8.7-p299 announced here? — Luis Lavena <luislavena@...>
Hello, tried to look for the release notes or a link, just found the
[#30891] [Feature #3478] Excruciatingly slow pathname implementation — Stephen Touset <redmine@...>
Issue #3478 has been updated by Stephen Touset.
[#30913] String#rindex is faster with Regexps than with Strings? — Kornelius Kalnbach <murphy@...>
hi,
[#30917] [Bug #3487] fiddle pushes arguments in a wrong format — Yuki Sonoda <redmine@...>
Bug #3487: fiddle pushes arguments in a wrong format
On Sun, Jun 27, 2010 at 08:36:45PM +0900, Yuki Sonoda wrote:
[#30927] undefined reference to 'rb_encdb_declare'; ruby-1.9.2-preview3 64-bit on Windows — Chuck Remes <cremes.devlist@...>
[cross-posted to rubyinstaller ML]
On Sun, Jun 27, 2010 at 2:36 PM, Chuck Remes <cremes.devlist@mac.com> wrote:
[#30968] ironruby vs ruby — "C.E. Thornton" <admin@...>
Matz,
On Wed, Jun 30, 2010 at 6:25 AM, C.E. Thornton
Note that Antonio's benchmark compares 64bit IronRuby build against 32bit 1.8.7 MRI and thus favoring MRI.
[ruby-core:30689] [Backport #3416] [patch] ruby_1_8_7 [BUG] gc_sweep(): unknown data type 0x0
Backport #3416: [patch] ruby_1_8_7 [BUG] gc_sweep(): unknown data type 0x0
http://redmine.ruby-lang.org/issues/show/3416
Author: Matt Gleeson
Status: Open, Priority: Normal
Category: core
I've been having a problem with my rails app that did not appear in 1.8.7-p174 but does appear in 1.8.7-p248 and current ruby_1_8_7 from svn. Unfortunately I have not been able to make a nice small test case to reproduce it. It appears to have something to with taint and marshal interaction. I use tainting a lot in my security tests and it goes away if I turn off the extra tainting.
I see this message:
trunk/vendor/rails/actionpack/lib/action_view/helpers/debug_helper.rb:33: [BUG] gc_sweep(): unknown data type 0x0(0xb61cad34)
ruby 1.8.7 (2010-06-07 patchlevel 268) [i686-linux]
Aborted
My stack trace at that point looks like this:
(gdb) where
#0 0x0012d422 in __kernel_vsyscall ()
#1 0x001bd651 in *__GI_raise (sig=6) at ../nptl/sysdeps/unix/sysv/linux/raise.c:64
#2 0x001c0a82 in *__GI_abort () at abort.c:92
#3 0x080e5cae in rb_bug (fmt=0x80e8c24 "gc_sweep(): unknown data type 0x%lx(0x%lx)") at error.c:213
#4 0x08074b30 in obj_free () at gc.c:1379
#5 gc_sweep () at gc.c:1175
#6 garbage_collect () at gc.c:1524
#7 0x08074eb5 in ruby_xmalloc (size=129) at gc.c:147
#8 0x080beac6 in rb_str_buf_new (capa=128) at string.c:234
#9 0x080c0294 in rb_str_buf_new2 (ptr=0x80e914e "{") at string.c:247
#10 0x0807902b in inspect_hash (hash=3065366280) at hash.c:1319
#11 0x080d1038 in inspect_call (arg=0xbffa0674) at array.c:1487
#12 0x08056a99 in rb_ensure (b_proc=0x80d1020 <inspect_call>, data1=3220833908, e_proc=0x80d68b0 <inspect_ensure>, data2=3065366280) at eval.c:5571
#13 0x080d4fd2 in rb_protect_inspect (func=0x8079010 <inspect_hash>, obj=3065366280, arg=0) at array.c:1544
#14 0x08077a54 in rb_hash_inspect (hash=3065366280) at hash.c:1341
#15 0x08061d85 in rb_call0 (klass=<value optimized out>, recv=<value optimized out>, id=<value optimized out>, oid=3145, argc=0, argv=0x0, body=0xb7fe1ed0, flags=0) at eval.c:5928
#16 0x08061f19 in rb_call (klass=3086884940, recv=3065366280, mid=3145, argc=0, argv=0x0, scope=1, self=6) at eval.c:6176
#17 0x080629f4 in vafuncall (recv=<value optimized out>, mid=<value optimized out>, n=<value optimized out>, ar=0xbffa091c) at eval.c:6253
#18 0x08062b10 in rb_funcall (recv=3065366280, mid=3145, n=0) at eval.c:6270
#19 0x0808bc0a in rb_inspect (obj=3065366280) at object.c:334
#20 0x0808bdf1 in inspect_i (id=65570, value=3065366280, str=3064389560) at object.c:359
#21 0x080755e7 in foreach_safe_i (key=6, value=3065366280, arg=0xd15) at hash.c:145
#22 0x080bcc43 in st_foreach (table=0xb1411e0, func=0x80755c0 <foreach_safe_i>, arg=3220834804) at st.c:487
#23 0x080794ef in st_foreach_safe (table=0xb1411e0, func=0x808bd30 <inspect_i>, a=3064389560) at hash.c:163
#24 0x0808b4e9 in inspect_obj (obj=3065430360, str=3064389560) at object.c:370
#25 0x080d1038 in inspect_call (arg=0xbffa0b44) at array.c:1487
#26 0x08056a99 in rb_ensure (b_proc=0x80d1020 <inspect_call>, data1=3220835140, e_proc=0x80d68b0 <inspect_ensure>, data2=3065430360) at eval.c:5571
#27 0x080d4fd2 in rb_protect_inspect (func=0x808b4c0 <inspect_obj>, obj=3065430360, arg=3064389560) at array.c:1544
#28 0x0808daac in rb_obj_inspect (obj=3065430360) at object.c:413
...
I don't fully understand what is happening but it looks to me like the garbage collector eventually tries to handle an object that has only the TAINT flag set (flags = 256) without an object type. This seems to make the GC think the object needs to be freed but then it can't figure out how without the type.
This change seems to avoid the problem for me:
diff --git a/marshal.c b/marshal.c
index 0112257..859bcd9 100644
--- a/marshal.c
+++ b/marshal.c
@@ -715,7 +715,10 @@ clear_dump_arg(arg)
st_free_table(arg->symbols);
arg->symbols = 0;
st_free_table(arg->data);
- if (arg->taint) {
+ /* Somehow we can sometimes get here and taint a "string" that has
+ already been freed, which causes it to eventually die in
+ gc_sweep because flags != 0 but it doesn't have a TYPE. */
+ if (arg->taint && TYPE(arg->str)) {
OBJ_TAINT(arg->str);
}
}
I realize this change is probably not "correct" but I am new to ruby and would appreciate any advice from the experts.
----------------------------------------
http://redmine.ruby-lang.org