ruby-core@ruby-lang.org archive (unofficial mirror)
 help / color / mirror / Atom feed
* [ruby-core:47638] [ruby-trunk - Bug #7046][Open] ERB#run and ERB#result are not safe for concurrent use
@ 2012-09-21 22:59 headius (Charles Nutter)
  2012-09-21 23:01 ` [ruby-core:47639] [ruby-trunk - Bug #7046] " headius (Charles Nutter)
                   ` (8 more replies)
  0 siblings, 9 replies; 11+ messages in thread
From: headius (Charles Nutter) @ 2012-09-21 22:59 UTC (permalink / raw
  To: ruby-core


Issue #7046 has been reported by headius (Charles Nutter).

----------------------------------------
Bug #7046: ERB#run and ERB#result are not safe for concurrent use
https://bugs.ruby-lang.org/issues/7046

Author: headius (Charles Nutter)
Status: Open
Priority: Normal
Assignee: 
Category: lib
Target version: 
ruby -v: 2.0.0.dev


ERB#run and ERB#result both accept an optional binding under which to execute the template. However, if none is given, they both use TOPLEVEL_BINDING by default. Given that by default, the _erbout variable is used for the String into which ERB output gets appended, this causes concurrent template execution on the same thread or separate threads to modify the same buffer. On JRuby, this led to overflow errors when in-progress writes saw their buffers suddenly altered.

This also causes any variables or values evaluated at TOPLEVEL to remain referenced.

I have provided a patch (https://gist.github.com/3764377) that is still very close to the toplevel binding, but instead uses the following logic each call to get a new, isolated binding in which to run the template:

eval "proc{binding}.call", TOPLEVEL_BINDING

This provides visibility to all values at TOPLEVEL, isolates runs to reduce concurrency issues, and guarantees any values stored in the binding will be thrown away after execution.

This fix should be backported to 1.9.3 at minimum.


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

^ permalink raw reply	[flat|nested] 11+ messages in thread

* [ruby-core:47639] [ruby-trunk - Bug #7046] ERB#run and ERB#result are not safe for concurrent use
  2012-09-21 22:59 [ruby-core:47638] [ruby-trunk - Bug #7046][Open] ERB#run and ERB#result are not safe for concurrent use headius (Charles Nutter)
@ 2012-09-21 23:01 ` headius (Charles Nutter)
  2012-09-22 16:56 ` [ruby-core:47651] " headius (Charles Nutter)
                   ` (7 subsequent siblings)
  8 siblings, 0 replies; 11+ messages in thread
From: headius (Charles Nutter) @ 2012-09-21 23:01 UTC (permalink / raw
  To: ruby-core


Issue #7046 has been updated by headius (Charles Nutter).


Redmine did not parse the patch URL correctly. It is https://gist.github.com/3764377
----------------------------------------
Bug #7046: ERB#run and ERB#result are not safe for concurrent use
https://bugs.ruby-lang.org/issues/7046#change-29652

Author: headius (Charles Nutter)
Status: Open
Priority: Normal
Assignee: 
Category: lib
Target version: 
ruby -v: 2.0.0.dev


ERB#run and ERB#result both accept an optional binding under which to execute the template. However, if none is given, they both use TOPLEVEL_BINDING by default. Given that by default, the _erbout variable is used for the String into which ERB output gets appended, this causes concurrent template execution on the same thread or separate threads to modify the same buffer. On JRuby, this led to overflow errors when in-progress writes saw their buffers suddenly altered.

This also causes any variables or values evaluated at TOPLEVEL to remain referenced.

I have provided a patch (https://gist.github.com/3764377) that is still very close to the toplevel binding, but instead uses the following logic each call to get a new, isolated binding in which to run the template:

eval "proc{binding}.call", TOPLEVEL_BINDING

This provides visibility to all values at TOPLEVEL, isolates runs to reduce concurrency issues, and guarantees any values stored in the binding will be thrown away after execution.

This fix should be backported to 1.9.3 at minimum.


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

^ permalink raw reply	[flat|nested] 11+ messages in thread

* [ruby-core:47651] [ruby-trunk - Bug #7046] ERB#run and ERB#result are not safe for concurrent use
  2012-09-21 22:59 [ruby-core:47638] [ruby-trunk - Bug #7046][Open] ERB#run and ERB#result are not safe for concurrent use headius (Charles Nutter)
  2012-09-21 23:01 ` [ruby-core:47639] [ruby-trunk - Bug #7046] " headius (Charles Nutter)
@ 2012-09-22 16:56 ` headius (Charles Nutter)
  2012-09-24  6:45 ` [ruby-core:47673] Re: [ruby-trunk - Bug #7046][Open] " Nobuyoshi Nakada
                   ` (6 subsequent siblings)
  8 siblings, 0 replies; 11+ messages in thread
From: headius (Charles Nutter) @ 2012-09-22 16:56 UTC (permalink / raw
  To: ruby-core


Issue #7046 has been updated by headius (Charles Nutter).


Oh, I also want to make it clear that this is broken on MRI too, for both the nested, same-thread case and the separate, concurrent thread cases. It needs to be patched.
----------------------------------------
Bug #7046: ERB#run and ERB#result are not safe for concurrent use
https://bugs.ruby-lang.org/issues/7046#change-29676

Author: headius (Charles Nutter)
Status: Open
Priority: Normal
Assignee: 
Category: lib
Target version: 
ruby -v: 2.0.0.dev


ERB#run and ERB#result both accept an optional binding under which to execute the template. However, if none is given, they both use TOPLEVEL_BINDING by default. Given that by default, the _erbout variable is used for the String into which ERB output gets appended, this causes concurrent template execution on the same thread or separate threads to modify the same buffer. On JRuby, this led to overflow errors when in-progress writes saw their buffers suddenly altered.

This also causes any variables or values evaluated at TOPLEVEL to remain referenced.

I have provided a patch (https://gist.github.com/3764377) that is still very close to the toplevel binding, but instead uses the following logic each call to get a new, isolated binding in which to run the template:

eval "proc{binding}.call", TOPLEVEL_BINDING

This provides visibility to all values at TOPLEVEL, isolates runs to reduce concurrency issues, and guarantees any values stored in the binding will be thrown away after execution.

This fix should be backported to 1.9.3 at minimum.


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

^ permalink raw reply	[flat|nested] 11+ messages in thread

* [ruby-core:47673] Re: [ruby-trunk - Bug #7046][Open] ERB#run and ERB#result are not safe for concurrent use
  2012-09-21 22:59 [ruby-core:47638] [ruby-trunk - Bug #7046][Open] ERB#run and ERB#result are not safe for concurrent use headius (Charles Nutter)
  2012-09-21 23:01 ` [ruby-core:47639] [ruby-trunk - Bug #7046] " headius (Charles Nutter)
  2012-09-22 16:56 ` [ruby-core:47651] " headius (Charles Nutter)
@ 2012-09-24  6:45 ` Nobuyoshi Nakada
  2012-09-24 17:58 ` [ruby-core:47676] [ruby-trunk - Bug #7046] " headius (Charles Nutter)
                   ` (5 subsequent siblings)
  8 siblings, 0 replies; 11+ messages in thread
From: Nobuyoshi Nakada @ 2012-09-24  6:45 UTC (permalink / raw
  To: ruby-core

Hi,

At Sat, 22 Sep 2012 07:59:51 +0900,
headius (Charles Nutter) wrote in [ruby-core:47638]:
> I have provided a patch (https://gist.github.com/3764377) that is still very close to the toplevel binding, but instead uses the following logic each call to get a new, isolated binding in which to run the template:
> 
> eval "proc{binding}.call", TOPLEVEL_BINDING

`TOPLEVEL_BINDING.dup' would work too.

-- 
Nobu Nakada

^ permalink raw reply	[flat|nested] 11+ messages in thread

* [ruby-core:47676] [ruby-trunk - Bug #7046] ERB#run and ERB#result are not safe for concurrent use
  2012-09-21 22:59 [ruby-core:47638] [ruby-trunk - Bug #7046][Open] ERB#run and ERB#result are not safe for concurrent use headius (Charles Nutter)
                   ` (2 preceding siblings ...)
  2012-09-24  6:45 ` [ruby-core:47673] Re: [ruby-trunk - Bug #7046][Open] " Nobuyoshi Nakada
@ 2012-09-24 17:58 ` headius (Charles Nutter)
  2012-09-25  1:24   ` [ruby-core:47684] " Nobuyoshi Nakada
  2012-09-25 15:24 ` [ruby-core:47695] " headius (Charles Nutter)
                   ` (4 subsequent siblings)
  8 siblings, 1 reply; 11+ messages in thread
From: headius (Charles Nutter) @ 2012-09-24 17:58 UTC (permalink / raw
  To: ruby-core


Issue #7046 has been updated by headius (Charles Nutter).


In JRuby it does not appear that dup'ing a binding copies all structures over, so we'd need to fix that as well to use TOPLEVEL_BINDING.dup.

It appears we match 1.8.7 behavior still, for Binding#dup:


system ~/projects/jruby $ ruby-1.8.7-p358 -e "eval 'a = 1', TOPLEVEL_BINDING.dup; eval 'puts a', TOPLEVEL_BINDING.dup"
1

system ~/projects/jruby $ jruby -e "eval 'a = 1', TOPLEVEL_BINDING.dup; eval 'puts a', TOPLEVEL_BINDING.dup"
1

system ~/projects/jruby $ ruby-1.9.3 -e "eval 'a = 1', TOPLEVEL_BINDING.dup; eval 'puts a', TOPLEVEL_BINDING.dup"
<main>:in `<main>': undefined local variable or method `a' for main:Object (NameError)
	from -e:1:in `eval'
	from -e:1:in `<main>'

Given that we would not be releasing patched ERB in any release other than one with this fixed, I think TOPLEVEL_BINDING.dup is probably the simplest way.
----------------------------------------
Bug #7046: ERB#run and ERB#result are not safe for concurrent use
https://bugs.ruby-lang.org/issues/7046#change-29716

Author: headius (Charles Nutter)
Status: Open
Priority: Normal
Assignee: 
Category: lib
Target version: 
ruby -v: 2.0.0.dev


ERB#run and ERB#result both accept an optional binding under which to execute the template. However, if none is given, they both use TOPLEVEL_BINDING by default. Given that by default, the _erbout variable is used for the String into which ERB output gets appended, this causes concurrent template execution on the same thread or separate threads to modify the same buffer. On JRuby, this led to overflow errors when in-progress writes saw their buffers suddenly altered.

This also causes any variables or values evaluated at TOPLEVEL to remain referenced.

I have provided a patch (https://gist.github.com/3764377) that is still very close to the toplevel binding, but instead uses the following logic each call to get a new, isolated binding in which to run the template:

eval "proc{binding}.call", TOPLEVEL_BINDING

This provides visibility to all values at TOPLEVEL, isolates runs to reduce concurrency issues, and guarantees any values stored in the binding will be thrown away after execution.

This fix should be backported to 1.9.3 at minimum.


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

^ permalink raw reply	[flat|nested] 11+ messages in thread

* [ruby-core:47684] Re: [ruby-trunk - Bug #7046] ERB#run and ERB#result are not safe for concurrent use
  2012-09-24 17:58 ` [ruby-core:47676] [ruby-trunk - Bug #7046] " headius (Charles Nutter)
@ 2012-09-25  1:24   ` Nobuyoshi Nakada
  0 siblings, 0 replies; 11+ messages in thread
From: Nobuyoshi Nakada @ 2012-09-25  1:24 UTC (permalink / raw
  To: ruby-core

Hi,

At Tue, 25 Sep 2012 02:58:32 +0900,
headius (Charles Nutter) wrote in [ruby-core:47676]:
> It appears we match 1.8.7 behavior still, for Binding#dup:

1.8.7 is dying.

-- 
Nobu Nakada

^ permalink raw reply	[flat|nested] 11+ messages in thread

* [ruby-core:47695] [ruby-trunk - Bug #7046] ERB#run and ERB#result are not safe for concurrent use
  2012-09-21 22:59 [ruby-core:47638] [ruby-trunk - Bug #7046][Open] ERB#run and ERB#result are not safe for concurrent use headius (Charles Nutter)
                   ` (3 preceding siblings ...)
  2012-09-24 17:58 ` [ruby-core:47676] [ruby-trunk - Bug #7046] " headius (Charles Nutter)
@ 2012-09-25 15:24 ` headius (Charles Nutter)
  2012-09-25 16:28 ` [ruby-core:47696] " headius (Charles Nutter)
                   ` (3 subsequent siblings)
  8 siblings, 0 replies; 11+ messages in thread
From: headius (Charles Nutter) @ 2012-09-25 15:24 UTC (permalink / raw
  To: ruby-core


Issue #7046 has been updated by headius (Charles Nutter).


Indeed, and we will fix our 1.9 mode to work like 1.9.3.
----------------------------------------
Bug #7046: ERB#run and ERB#result are not safe for concurrent use
https://bugs.ruby-lang.org/issues/7046#change-29735

Author: headius (Charles Nutter)
Status: Open
Priority: Normal
Assignee: 
Category: lib
Target version: 
ruby -v: 2.0.0.dev


ERB#run and ERB#result both accept an optional binding under which to execute the template. However, if none is given, they both use TOPLEVEL_BINDING by default. Given that by default, the _erbout variable is used for the String into which ERB output gets appended, this causes concurrent template execution on the same thread or separate threads to modify the same buffer. On JRuby, this led to overflow errors when in-progress writes saw their buffers suddenly altered.

This also causes any variables or values evaluated at TOPLEVEL to remain referenced.

I have provided a patch (https://gist.github.com/3764377) that is still very close to the toplevel binding, but instead uses the following logic each call to get a new, isolated binding in which to run the template:

eval "proc{binding}.call", TOPLEVEL_BINDING

This provides visibility to all values at TOPLEVEL, isolates runs to reduce concurrency issues, and guarantees any values stored in the binding will be thrown away after execution.

This fix should be backported to 1.9.3 at minimum.


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

^ permalink raw reply	[flat|nested] 11+ messages in thread

* [ruby-core:47696] [ruby-trunk - Bug #7046] ERB#run and ERB#result are not safe for concurrent use
  2012-09-21 22:59 [ruby-core:47638] [ruby-trunk - Bug #7046][Open] ERB#run and ERB#result are not safe for concurrent use headius (Charles Nutter)
                   ` (4 preceding siblings ...)
  2012-09-25 15:24 ` [ruby-core:47695] " headius (Charles Nutter)
@ 2012-09-25 16:28 ` headius (Charles Nutter)
  2012-10-14 19:47 ` [ruby-core:47982] " headius (Charles Nutter)
                   ` (2 subsequent siblings)
  8 siblings, 0 replies; 11+ messages in thread
From: headius (Charles Nutter) @ 2012-09-25 16:28 UTC (permalink / raw
  To: ruby-core


Issue #7046 has been updated by headius (Charles Nutter).


We are shipping the proc-based fix in JRuby 1.7.0.RC1 today. There's a good chance we'll fix the Binding#dup behavior for 1.7.0, in which case we'd use the TOPLEVEL_BINDING.dup fix.

Functionally, I think they should both appear to be the same to any user.
----------------------------------------
Bug #7046: ERB#run and ERB#result are not safe for concurrent use
https://bugs.ruby-lang.org/issues/7046#change-29736

Author: headius (Charles Nutter)
Status: Open
Priority: Normal
Assignee: 
Category: lib
Target version: 
ruby -v: 2.0.0.dev


ERB#run and ERB#result both accept an optional binding under which to execute the template. However, if none is given, they both use TOPLEVEL_BINDING by default. Given that by default, the _erbout variable is used for the String into which ERB output gets appended, this causes concurrent template execution on the same thread or separate threads to modify the same buffer. On JRuby, this led to overflow errors when in-progress writes saw their buffers suddenly altered.

This also causes any variables or values evaluated at TOPLEVEL to remain referenced.

I have provided a patch (https://gist.github.com/3764377) that is still very close to the toplevel binding, but instead uses the following logic each call to get a new, isolated binding in which to run the template:

eval "proc{binding}.call", TOPLEVEL_BINDING

This provides visibility to all values at TOPLEVEL, isolates runs to reduce concurrency issues, and guarantees any values stored in the binding will be thrown away after execution.

This fix should be backported to 1.9.3 at minimum.


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

^ permalink raw reply	[flat|nested] 11+ messages in thread

* [ruby-core:47982] [ruby-trunk - Bug #7046] ERB#run and ERB#result are not safe for concurrent use
  2012-09-21 22:59 [ruby-core:47638] [ruby-trunk - Bug #7046][Open] ERB#run and ERB#result are not safe for concurrent use headius (Charles Nutter)
                   ` (5 preceding siblings ...)
  2012-09-25 16:28 ` [ruby-core:47696] " headius (Charles Nutter)
@ 2012-10-14 19:47 ` headius (Charles Nutter)
  2012-11-05 12:50 ` [ruby-core:48908] [ruby-trunk - Bug #7046][Assigned] " mame (Yusuke Endoh)
  2012-12-19 11:51 ` [ruby-core:50978] [Backport93 - Backport #7046][Rejected] " usa (Usaku NAKAMURA)
  8 siblings, 0 replies; 11+ messages in thread
From: headius (Charles Nutter) @ 2012-10-14 19:47 UTC (permalink / raw
  To: ruby-core


Issue #7046 has been updated by headius (Charles Nutter).


Ping! I am wondering if a decision has been made about how to fix this. As mentioned, JRuby is shipping the proc-based fix.
----------------------------------------
Bug #7046: ERB#run and ERB#result are not safe for concurrent use
https://bugs.ruby-lang.org/issues/7046#change-30663

Author: headius (Charles Nutter)
Status: Open
Priority: Normal
Assignee: 
Category: lib
Target version: 
ruby -v: 2.0.0.dev


ERB#run and ERB#result both accept an optional binding under which to execute the template. However, if none is given, they both use TOPLEVEL_BINDING by default. Given that by default, the _erbout variable is used for the String into which ERB output gets appended, this causes concurrent template execution on the same thread or separate threads to modify the same buffer. On JRuby, this led to overflow errors when in-progress writes saw their buffers suddenly altered.

This also causes any variables or values evaluated at TOPLEVEL to remain referenced.

I have provided a patch (https://gist.github.com/3764377) that is still very close to the toplevel binding, but instead uses the following logic each call to get a new, isolated binding in which to run the template:

eval "proc{binding}.call", TOPLEVEL_BINDING

This provides visibility to all values at TOPLEVEL, isolates runs to reduce concurrency issues, and guarantees any values stored in the binding will be thrown away after execution.

This fix should be backported to 1.9.3 at minimum.


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

^ permalink raw reply	[flat|nested] 11+ messages in thread

* [ruby-core:48908] [ruby-trunk - Bug #7046][Assigned] ERB#run and ERB#result are not safe for concurrent use
  2012-09-21 22:59 [ruby-core:47638] [ruby-trunk - Bug #7046][Open] ERB#run and ERB#result are not safe for concurrent use headius (Charles Nutter)
                   ` (6 preceding siblings ...)
  2012-10-14 19:47 ` [ruby-core:47982] " headius (Charles Nutter)
@ 2012-11-05 12:50 ` mame (Yusuke Endoh)
  2012-12-19 11:51 ` [ruby-core:50978] [Backport93 - Backport #7046][Rejected] " usa (Usaku NAKAMURA)
  8 siblings, 0 replies; 11+ messages in thread
From: mame (Yusuke Endoh) @ 2012-11-05 12:50 UTC (permalink / raw
  To: ruby-core


Issue #7046 has been updated by mame (Yusuke Endoh).

Status changed from Open to Assigned
Assignee set to nobu (Nobuyoshi Nakada)
Target version set to 2.0.0

Looks good to me.  Nobu, do you have any concern?

-- 
Yusuke Endoh <mame@tsg.ne.jp>
----------------------------------------
Bug #7046: ERB#run and ERB#result are not safe for concurrent use
https://bugs.ruby-lang.org/issues/7046#change-32406

Author: headius (Charles Nutter)
Status: Assigned
Priority: Normal
Assignee: nobu (Nobuyoshi Nakada)
Category: lib
Target version: 2.0.0
ruby -v: 2.0.0.dev


ERB#run and ERB#result both accept an optional binding under which to execute the template. However, if none is given, they both use TOPLEVEL_BINDING by default. Given that by default, the _erbout variable is used for the String into which ERB output gets appended, this causes concurrent template execution on the same thread or separate threads to modify the same buffer. On JRuby, this led to overflow errors when in-progress writes saw their buffers suddenly altered.

This also causes any variables or values evaluated at TOPLEVEL to remain referenced.

I have provided a patch (https://gist.github.com/3764377) that is still very close to the toplevel binding, but instead uses the following logic each call to get a new, isolated binding in which to run the template:

eval "proc{binding}.call", TOPLEVEL_BINDING

This provides visibility to all values at TOPLEVEL, isolates runs to reduce concurrency issues, and guarantees any values stored in the binding will be thrown away after execution.

This fix should be backported to 1.9.3 at minimum.


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

^ permalink raw reply	[flat|nested] 11+ messages in thread

* [ruby-core:50978] [Backport93 - Backport #7046][Rejected] ERB#run and ERB#result are not safe for concurrent use
  2012-09-21 22:59 [ruby-core:47638] [ruby-trunk - Bug #7046][Open] ERB#run and ERB#result are not safe for concurrent use headius (Charles Nutter)
                   ` (7 preceding siblings ...)
  2012-11-05 12:50 ` [ruby-core:48908] [ruby-trunk - Bug #7046][Assigned] " mame (Yusuke Endoh)
@ 2012-12-19 11:51 ` usa (Usaku NAKAMURA)
  8 siblings, 0 replies; 11+ messages in thread
From: usa (Usaku NAKAMURA) @ 2012-12-19 11:51 UTC (permalink / raw
  To: ruby-core


Issue #7046 has been updated by usa (Usaku NAKAMURA).

Status changed from Closed to Rejected

I once backported r37594 at r38318, but it broke rubyspec.
----------------------------------------
Backport #7046: ERB#run and ERB#result are not safe for concurrent use
https://bugs.ruby-lang.org/issues/7046#change-34850

Author: headius (Charles Nutter)
Status: Rejected
Priority: Normal
Assignee: usa (Usaku NAKAMURA)
Category: 
Target version: 


ERB#run and ERB#result both accept an optional binding under which to execute the template. However, if none is given, they both use TOPLEVEL_BINDING by default. Given that by default, the _erbout variable is used for the String into which ERB output gets appended, this causes concurrent template execution on the same thread or separate threads to modify the same buffer. On JRuby, this led to overflow errors when in-progress writes saw their buffers suddenly altered.

This also causes any variables or values evaluated at TOPLEVEL to remain referenced.

I have provided a patch (https://gist.github.com/3764377) that is still very close to the toplevel binding, but instead uses the following logic each call to get a new, isolated binding in which to run the template:

eval "proc{binding}.call", TOPLEVEL_BINDING

This provides visibility to all values at TOPLEVEL, isolates runs to reduce concurrency issues, and guarantees any values stored in the binding will be thrown away after execution.

This fix should be backported to 1.9.3 at minimum.


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

^ permalink raw reply	[flat|nested] 11+ messages in thread

end of thread, other threads:[~2012-12-19 11:57 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-09-21 22:59 [ruby-core:47638] [ruby-trunk - Bug #7046][Open] ERB#run and ERB#result are not safe for concurrent use headius (Charles Nutter)
2012-09-21 23:01 ` [ruby-core:47639] [ruby-trunk - Bug #7046] " headius (Charles Nutter)
2012-09-22 16:56 ` [ruby-core:47651] " headius (Charles Nutter)
2012-09-24  6:45 ` [ruby-core:47673] Re: [ruby-trunk - Bug #7046][Open] " Nobuyoshi Nakada
2012-09-24 17:58 ` [ruby-core:47676] [ruby-trunk - Bug #7046] " headius (Charles Nutter)
2012-09-25  1:24   ` [ruby-core:47684] " Nobuyoshi Nakada
2012-09-25 15:24 ` [ruby-core:47695] " headius (Charles Nutter)
2012-09-25 16:28 ` [ruby-core:47696] " headius (Charles Nutter)
2012-10-14 19:47 ` [ruby-core:47982] " headius (Charles Nutter)
2012-11-05 12:50 ` [ruby-core:48908] [ruby-trunk - Bug #7046][Assigned] " mame (Yusuke Endoh)
2012-12-19 11:51 ` [ruby-core:50978] [Backport93 - Backport #7046][Rejected] " usa (Usaku NAKAMURA)

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).