Ruby Issue Tracking System: Issueshttps://redmine.ruby-lang.org/https://redmine.ruby-lang.org/favicon.ico?17113305112023-03-08T15:24:57ZRuby Issue Tracking System
Redmine Ruby master - Bug #19485 (Closed): Unexpected behavior in squiggly heredocshttps://redmine.ruby-lang.org/issues/194852023-03-08T15:24:57Zjemmai (Jemma Issroff)
<p>Based on <a href="https://ruby-doc.org/3.2.1/syntax/literals_rdoc.html" class="external">the squiggly heredoc documentation</a>, I found the following to be unexpected behavior. Explicitly, the documentation specifies, "The indentation of the least-indented line will be removed from each line of the content."</p>
<p>After running:</p>
<pre><code class="ruby syntaxhl" data-language="ruby"><span class="no">File</span><span class="p">.</span><span class="nf">write</span><span class="p">(</span><span class="s2">"test.rb"</span><span class="p">,</span> <span class="s2">"p <<~EOF</span><span class="se">\n\t</span><span class="s2">a</span><span class="se">\n</span><span class="s2"> b</span><span class="se">\n</span><span class="s2">EOF</span><span class="se">\n</span><span class="s2">"</span><span class="p">)</span>
</code></pre>
<p>and then <code>ruby test.rb</code>, I get the following output:</p>
<pre><code>"\ta\nb\n"
</code></pre>
<p>The least-indented line above is <code> b</code>, however, no leading whitespace is removed from the line containing <code>\ta</code>.</p>
<p>For another example:</p>
<pre><code class="ruby syntaxhl" data-language="ruby"><span class="no">File</span><span class="p">.</span><span class="nf">write</span><span class="p">(</span><span class="s2">"test.rb"</span><span class="p">,</span> <span class="s2">"p <<~EOF</span><span class="se">\n\t</span><span class="s2">A</span><span class="se">\n</span><span class="s2"> </span><span class="se">\t</span><span class="s2">B</span><span class="se">\n</span><span class="s2">EOF</span><span class="se">\n</span><span class="s2">"</span><span class="p">)</span>
</code></pre>
<p><code>ruby test.rb</code> gives:</p>
<pre><code>"A\nB\n"
</code></pre>
<p>In this case, the <code>\t</code> was removed from the line containing <code>A</code>, but more whitespace than that (<code> \t</code>) was removed from the line containing <code>B</code>.</p>
<p>After seeing the first example, I assumed that the documentation was out of date, and that I should fix it to read that <code>\t</code> would never be converted into space characters in order to remove leading whitespace. But after the second example, it seems like this is a bug in removing leading whitespace.</p>
<p>Can someone please explain what the rules should be on squiggly heredocs? I can implement a fix to adhere to the rules, or can update the documentation, I am just unsure of what the rules should be because the above two examples reflect unexpected behavior in two distinct ways.</p> Ruby master - Bug #18911 (Closed): Process._fork hook point is not called when Process.daemon is ...https://redmine.ruby-lang.org/issues/189112022-07-13T14:16:33Zivoanjo (Ivo Anjo)ivo.anjo@datadoghq.com
<p>Hello there! I'm working at Datadog <a href="https://github.com/DataDog/dd-trace-rb" class="external">on the <code>ddtrace</code> gem</a>, and we need to hook into fork operations to make sure that our products work correctly/automatically even in environments that fork.</p>
<p>As part as <a class="issue tracker-2 status-5 priority-4 priority-default closed" title="Feature: Around `Process.fork` callbacks API (Closed)" href="https://redmine.ruby-lang.org/issues/17795">#17795</a> a new <code>Process._fork</code> method was added to allow libraries and frameworks to easily hook into fork operations. I was investigating its use in <code>ddtrace</code> and noticed the following gap: the <code>Process.daemon</code> API internally makes use of <code>fork</code>, but the new hook point is not called for that API.</p>
<p>Testcase:</p>
<pre><code class="ruby syntaxhl" data-language="ruby"><span class="nb">puts</span> <span class="no">RUBY_DESCRIPTION</span>
<span class="k">module</span> <span class="nn">ForkHook</span>
<span class="k">def</span> <span class="nf">_fork</span><span class="p">(</span><span class="o">*</span><span class="n">args</span><span class="p">)</span>
<span class="nb">puts</span> <span class="s2">" </span><span class="si">#{</span><span class="no">Process</span><span class="p">.</span><span class="nf">pid</span><span class="si">}</span><span class="s2"> Before fork!"</span>
<span class="n">res</span> <span class="o">=</span> <span class="k">super</span>
<span class="nb">puts</span> <span class="s2">" </span><span class="si">#{</span><span class="no">Process</span><span class="p">.</span><span class="nf">pid</span><span class="si">}</span><span class="s2"> After fork!"</span>
<span class="n">res</span>
<span class="k">end</span>
<span class="k">end</span>
<span class="no">Process</span><span class="p">.</span><span class="nf">singleton_class</span><span class="p">.</span><span class="nf">prepend</span><span class="p">(</span><span class="no">ForkHook</span><span class="p">)</span>
<span class="nb">puts</span> <span class="s2">"</span><span class="si">#{</span><span class="no">Process</span><span class="p">.</span><span class="nf">pid</span><span class="si">}</span><span class="s2"> Regular fork:"</span>
<span class="nb">fork</span> <span class="p">{</span> <span class="nb">exit</span> <span class="p">}</span>
<span class="no">Process</span><span class="p">.</span><span class="nf">wait</span>
<span class="nb">puts</span> <span class="s2">"</span><span class="si">#{</span><span class="no">Process</span><span class="p">.</span><span class="nf">pid</span><span class="si">}</span><span class="s2"> Process.daemon:"</span>
<span class="no">Process</span><span class="p">.</span><span class="nf">daemon</span><span class="p">(</span><span class="kp">nil</span><span class="p">,</span> <span class="kp">true</span><span class="p">)</span>
<span class="nb">puts</span> <span class="s2">"</span><span class="si">#{</span><span class="no">Process</span><span class="p">.</span><span class="nf">pid</span><span class="si">}</span><span class="s2"> Finishing!"</span>
</code></pre>
<p>Testcase output:</p>
<pre><code>ruby 3.1.2p20 (2022-04-12 revision 4491bb740a) [x86_64-darwin20]
48136 Regular fork: # <-- original process
48136 Before fork!
48136 After fork! # <-- original process
48137 After fork! # <-- child process
48136 Process.daemon: # <-- original process
48139 Finishing! # <-- forks and pid changes, but the hook isn't called
</code></pre>
<p>This was surprising to me since the advantage of this hook point would not not needing to hook into the many other places where <code>fork</code> can get called from.</p>
<p>Thanks a lot :)</p> Ruby master - Bug #18651 (Closed): oob access in CP51932 -> CP50220 transcoderhttps://redmine.ruby-lang.org/issues/186512022-03-21T00:51:52Zahorek (Pavel Rosický)
<p>Hello,<br>
while working on a port of Japanese transcoder, I found a potential out of bounds access:<br>
<a href="https://github.com/ruby/ruby/blob/73541cdc2f192f856ab19781472cdccbf9c21f71/enc/trans/iso2022.trans#L465" class="external">https://github.com/ruby/ruby/blob/73541cdc2f192f856ab19781472cdccbf9c21f71/enc/trans/iso2022.trans#L465</a></p>
<p><code>tbl0208</code> has 126 chars<br>
in this example <code>const char *p = tbl0208 + 186</code> leads to undefined behavior (without any error)</p>
<p>test case</p>
<pre><code>str = "\x00\x7F\x8E\xA1\x8E\xFE\xA1\xA1\xA1\xFE".force_encoding("CP51932")
str.encode("CP50220").bytes
[0, 127, 27, 36, 66, 33, 35, 80, 0, 33, 33, 33, 126, 27, 40, 66]
</code></pre>
<p>nkf does convert the string differently</p>
<pre><code>nkf --ic=CP51932 --oc=CP50220 test.txt > out.txt
[0, 127, 27, 40, 73, 33, 126, 27, 36, 66, 33, 33, 33, 126, 27, 40, 66]
</code></pre>
<p>is it a bug?</p> Ruby master - Bug #18165 (Closed): resolv: IPv6 link local addresses do not accept dash as a vali...https://redmine.ruby-lang.org/issues/181652021-09-13T22:28:24Zkanashiro (Lucas Kanashiro)
<p>The support for IPv6 link local addresses was added to resolv <a href="https://bugs.ruby-lang.org/projects/ruby-master/repository/git/revisions/2f12af42f7f26d570219b87a89294532a86a8ae2" class="external">here</a>.</p>
<p>However, it does not take into account a <code>zone_id</code> with a dash (<code>-</code>) in it, just digits and letters (uppercase and lowercase). One could use the name of the network interface as <code>zone_id</code> and this one might contain a dash. For instance, in my system running Ubuntu I have <code>tap-5f507d638e8</code> and bridges like <code>br-dd8d2dfaa7eb</code>, those could be used as <code>zone_id</code>.</p>
<p>According to the <a href="https://datatracker.ietf.org/doc/html/rfc4007#section-11" class="external">RFC</a> it is not mandatory to accept dash as a valid <code>zone_id</code> character but I believe this is a valid use case and resolv should support it. I found this out trying to build version <code>3.0.2</code> in Debian, and since my system contains some network interfaces with dash, the <code>TestResolvAddr::test_valid_socket_ip_address_list</code> was failing:</p>
<pre><code>Expected /(?:(?-mix:\A((?x-mi:0
|1(?:[0-9][0-9]?)?
|2(?:[0-4][0-9]?|5[0-5]?|[6-9])?
|[3-9][0-9]?))\.((?x-mi:0
|1(?:[0-9][0-9]?)?
|2(?:[0-4][0-9]?|5[0-5]?|[6-9])?
|[3-9][0-9]?))\.((?x-mi:0
|1(?:[0-9][0-9]?)?
|2(?:[0-4][0-9]?|5[0-5]?|[6-9])?
|[3-9][0-9]?))\.((?x-mi:0
|1(?:[0-9][0-9]?)?
|2(?:[0-4][0-9]?|5[0-5]?|[6-9])?
|[3-9][0-9]?))\z))|(?:(?x-mi:
(?:(?x-mi:\A
(?:[0-9A-Fa-f]{1,4}:){7}
[0-9A-Fa-f]{1,4}
\z)) |
(?:(?x-mi:\A
((?:[0-9A-Fa-f]{1,4}(?::[0-9A-Fa-f]{1,4})*)?) ::
((?:[0-9A-Fa-f]{1,4}(?::[0-9A-Fa-f]{1,4})*)?)
\z)) |
(?:(?x-mi:\A
((?:[0-9A-Fa-f]{1,4}:){6,6})
(\d+)\.(\d+)\.(\d+)\.(\d+)
\z)) |
(?:(?x-mi:\A
((?:[0-9A-Fa-f]{1,4}(?::[0-9A-Fa-f]{1,4})*)?) ::
((?:[0-9A-Fa-f]{1,4}:)*)
(\d+)\.(\d+)\.(\d+)\.(\d+)
\z)) |
(?:(?x-mi:\A
[Ff][Ee]80
(?::[0-9A-Fa-f]{1,4}){7}
%[0-9A-Za-z]+
\z)) |
(?:(?x-mi:\A
[Ff][Ee]80:
(?:
((?:[0-9A-Fa-f]{1,4}(?::[0-9A-Fa-f]{1,4})*)?) ::
((?:[0-9A-Fa-f]{1,4}(?::[0-9A-Fa-f]{1,4})*)?)
|
:((?:[0-9A-Fa-f]{1,4}(?::[0-9A-Fa-f]{1,4})*)?)
)?
:[0-9A-Fa-f]{1,4}%[0-9A-Za-z.]+
\z))
))/ to match "fe80::4cd3:c6ff:fed2:9529%tap-4845bb4a54b".
</code></pre>
<p>Applying the patch below fixed the issue for me:</p>
<pre><code class="diff syntaxhl" data-language="diff"><span class="gh">diff --git a/lib/resolv.rb b/lib/resolv.rb
index b69c704..5de6a1f 100644
</span><span class="gd">--- a/lib/resolv.rb
</span><span class="gi">+++ b/lib/resolv.rb
</span><span class="p">@@ -2464,7 +2464,7 @@</span> class Resolv
Regex_8HexLinkLocal = /\A
[Ff][Ee]80
(?::[0-9A-Fa-f]{1,4}){7}
<span class="gd">- %[0-9A-Za-z]+
</span><span class="gi">+ %[0-9A-Za-z\-]+
</span> \z/x
##
<span class="p">@@ -2478,7 +2478,7 @@</span> class Resolv
|
:((?:[0-9A-Fa-f]{1,4}(?::[0-9A-Fa-f]{1,4})*)?)
)?
<span class="gd">- :[0-9A-Fa-f]{1,4}%[0-9A-Za-z.]+
</span><span class="gi">+ :[0-9A-Fa-f]{1,4}%[0-9A-Za-z.\-]+
</span> \z/x
##
</code></pre> Ruby master - Bug #18006 (Closed): Resolv::DNS#getaddress takes minutes to resolve a domain with ...https://redmine.ruby-lang.org/issues/180062021-06-24T20:56:44Zdee-see (Dominic Couture)
<p>Hello team,</p>
<p>Calling <code>getaddress</code> on a domain that returns <code>NXDOMAIN</code> takes 2.5 minutes in Ruby 3.0, unless the domain is in FQDN form (with a trailing dot). I'll try to take a look and figure out what's happening, but I'm not familiar with the Ruby code base so I wanted to report this first. I reproduced the issue on my local machine and on a VPS so this isn't a local network problem.</p>
<p>2.7:</p>
<pre><code class="shell syntaxhl" data-language="shell"><span class="nv">$ </span>ruby <span class="nt">-v</span>
ruby 2.7.2p137 <span class="o">(</span>2020-10-01 revision 5445e04352<span class="o">)</span> <span class="o">[</span>x86_64-linux]
16:42:49 dee-see@glacier:tmp<span class="nv">$ </span><span class="nb">time </span>ruby <span class="nt">-r</span> resolv <span class="nt">-e</span> <span class="s1">'Resolv::DNS.new(nameserver: "8.8.8.8").getaddress("doesnotexist.deesee.xyz.")'</span>
Traceback <span class="o">(</span>most recent call last<span class="o">)</span>:
1: from <span class="nt">-e</span>:1:in <span class="sb">`</span><main><span class="s1">'
/home/dee-see/.rbenv/versions/2.7.2/lib/ruby/2.7.0/resolv.rb:379:in `getaddress'</span>: DNS result has no information <span class="k">for </span>doesnotexist.deesee.xyz. <span class="o">(</span>Resolv::ResolvError<span class="o">)</span>
real 0m0.225s
user 0m0.091s
sys 0m0.020s
<span class="nv">$ </span><span class="nb">time </span>ruby <span class="nt">-r</span> resolv <span class="nt">-e</span> <span class="s1">'Resolv::DNS.new(nameserver: "8.8.8.8").getaddress("doesnotexist.deesee.xyz")'</span>
Traceback <span class="o">(</span>most recent call last<span class="o">)</span>:
1: from <span class="nt">-e</span>:1:in <span class="sb">`</span><main><span class="s1">'
/home/dee-see/.rbenv/versions/2.7.2/lib/ruby/2.7.0/resolv.rb:379:in `getaddress'</span>: DNS result has no information <span class="k">for </span>doesnotexist.deesee.xyz <span class="o">(</span>Resolv::ResolvError<span class="o">)</span>
real 0m0.291s
user 0m0.079s
sys 0m0.021s
</code></pre>
<p>3.0, notice the time on the second try</p>
<pre><code class="shell syntaxhl" data-language="shell"><span class="nv">$ </span>ruby <span class="nt">-v</span>
ruby 3.0.1p64 <span class="o">(</span>2021-04-05 revision 0fb782ee38<span class="o">)</span> <span class="o">[</span>x86_64-linux]
<span class="nv">$ </span><span class="nb">time </span>ruby <span class="nt">-r</span> resolv <span class="nt">-e</span> <span class="s1">'Resolv::DNS.new(nameserver: "8.8.8.8").getaddress("doesnotexist.deesee.xyz.")'</span>
/home/dee-see/.rbenv/versions/3.0.1/lib/ruby/3.0.0/resolv.rb:379:in <span class="sb">`</span>getaddress<span class="s1">': DNS result has no information for doesnotexist.deesee.xyz. (Resolv::ResolvError)
from -e:1:in `<main>'</span>
real 0m0.240s
user 0m0.102s
sys 0m0.031s
<span class="nv">$ </span><span class="nb">time </span>ruby <span class="nt">-r</span> resolv <span class="nt">-e</span> <span class="s1">'Resolv::DNS.new(nameserver: "8.8.8.8").getaddress("doesnotexist.deesee.xyz")'</span>
/home/dee-see/.rbenv/versions/3.0.1/lib/ruby/3.0.0/resolv.rb:379:in <span class="sb">`</span>getaddress<span class="s1">': DNS result has no information for doesnotexist.deesee.xyz (Resolv::ResolvError)
from -e:1:in `<main>'</span>
real 2m30.363s
user 0m0.122s
sys 0m0.021s
</code></pre> Ruby master - Bug #17781 (Closed): Resolv::DNS RequestID table allocations are never freed, causi...https://redmine.ruby-lang.org/issues/177812021-04-07T19:34:56Zsupermathie (Michael Brown)
<p>In between ruby 2.7.2 and 2.7.3/3.0.0 releases a bug was introduced into <code>Resolv::DNS</code> functionality that eventually will break long-running processes that do DNS lookups.</p>
<p><code>Resolv::DNS.free_request_id</code> is no longer called once requests are complete. The implication of this is that <strong>a maximum of 65536 DNS lookups can be performed against a single DNS server</strong>; any further requests will cause ruby to hang in an infinite loop in <code>Resolv::DNS.allocate_request_id</code> (all allocations are taken, however the code will loop forever trying to find one that is unallocated).</p>
<p>Reproduction of the problem is possible with the following code:</p>
<pre><code class="ruby syntaxhl" data-language="ruby"><span class="nb">require</span> <span class="s1">'resolv'</span>
<span class="mi">65536</span><span class="p">.</span><span class="nf">times</span> <span class="p">{</span> <span class="no">Resolv</span><span class="o">::</span><span class="no">DNS</span><span class="p">.</span><span class="nf">new</span><span class="p">.</span><span class="nf">getresource</span><span class="p">(</span><span class="s1">'www.example.net'</span><span class="p">,</span> <span class="no">Resolv</span><span class="o">::</span><span class="no">DNS</span><span class="o">::</span><span class="no">Resource</span><span class="o">::</span><span class="no">IN</span><span class="o">::</span><span class="no">A</span><span class="p">)</span> <span class="p">}</span>
<span class="nb">puts</span> <span class="s2">"Ran 65536 times"</span>
<span class="no">Resolv</span><span class="o">::</span><span class="no">DNS</span><span class="p">.</span><span class="nf">new</span><span class="p">.</span><span class="nf">getresource</span><span class="p">(</span><span class="s1">'www.example.net'</span><span class="p">,</span> <span class="no">Resolv</span><span class="o">::</span><span class="no">DNS</span><span class="o">::</span><span class="no">Resource</span><span class="o">::</span><span class="no">IN</span><span class="o">::</span><span class="no">A</span><span class="p">)</span>
<span class="nb">puts</span> <span class="s2">"Ran 65537 times"</span> <span class="c1"># never printed</span>
</code></pre>
<p>The following script can be used to evaluate if a given ruby version has this problem:</p>
<pre><code class="ruby syntaxhl" data-language="ruby"><span class="c1">#!/usr/bin/env ruby</span>
<span class="nb">require</span> <span class="s1">'resolv'</span>
<span class="nb">puts</span> <span class="s2">"ruby version: </span><span class="si">#{</span><span class="no">RUBY_VERSION</span><span class="si">}</span><span class="s2">"</span>
<span class="n">r</span> <span class="o">=</span> <span class="no">Resolv</span><span class="o">::</span><span class="no">DNS</span><span class="p">.</span><span class="nf">new</span>
<span class="mi">100</span><span class="p">.</span><span class="nf">times</span> <span class="p">{</span> <span class="n">r</span><span class="p">.</span><span class="nf">getresource</span><span class="p">(</span><span class="s1">'www.example.net'</span><span class="p">,</span> <span class="no">Resolv</span><span class="o">::</span><span class="no">DNS</span><span class="o">::</span><span class="no">Resource</span><span class="o">::</span><span class="no">IN</span><span class="o">::</span><span class="no">A</span><span class="p">).</span><span class="nf">address</span> <span class="p">}</span>
<span class="nb">puts</span> <span class="s2">"RequestID table size: </span><span class="si">#{</span><span class="no">Resolv</span><span class="o">::</span><span class="no">DNS</span><span class="o">::</span><span class="no">RequestID</span><span class="p">.</span><span class="nf">values</span><span class="p">.</span><span class="nf">first</span><span class="o">&</span><span class="p">.</span><span class="nf">count</span> <span class="ow">or</span> <span class="s2">"(empty)"</span><span class="si">}</span><span class="s2">"</span>
</code></pre>
<p>A properly behaving version should report an empty <code>RequestID</code> table. For example:</p>
<pre><code>○ → rvm use ruby-2.7.2; ./test_dns.rb
Using /home/michael/.rvm/gems/ruby-2.7.2
ruby version: 2.7.2
RequestID table size: (empty)
○ → rvm use ruby-2.7.3; ./test_dns.rb
Using /home/michael/.rvm/gems/ruby-2.7.3
ruby version: 2.7.3
RequestID table size: 100
○ → rvm use ruby-3.0.0; ./test_dns.rb
Using /home/michael/.rvm/gems/ruby-3.0.0
ruby version: 3.0.0
RequestID table size: 100
○ → rvm use ruby-3.0.1; ./test_dns.rb
Using /home/michael/.rvm/gems/ruby-3.0.1
ruby version: 3.0.1
RequestID table size: 100
</code></pre>
<p>Example output from rbtrace on 2.7.2:</p>
<pre><code>$ rbtrace -p 42 -m 'allocate_request_id(RequestID)' 'free_request_id(RequestID)'
*** attached to process 42
Resolv::DNS.allocate_request_id(RequestID={}) <0.000094>
Resolv::DNS.free_request_id(RequestID={["192.168.1.51", 53]=>{6377=>true}}) <0.000092>
Resolv::DNS.allocate_request_id(RequestID={}) <0.000086>
Resolv::DNS.free_request_id(RequestID={["192.168.1.51", 53]=>{4537=>true}}) <0.000107>
Resolv::DNS.allocate_request_id(RequestID={}) <0.000086>
Resolv::DNS.free_request_id(RequestID={["192.168.1.51", 53]=>{64587=>true}}) <0.000100>
Resolv::DNS.allocate_request_id(RequestID={}) <0.000097>
Resolv::DNS.free_request_id(RequestID={["192.168.1.51", 53]=>{37627=>true}}) <0.000051>
Resolv::DNS.allocate_request_id(RequestID={}) <0.000045>
Resolv::DNS.free_request_id(RequestID={["192.168.1.51", 53]=>{37265=>true}}) <0.000044>
Resolv::DNS.allocate_request_id(RequestID={}) <0.000047>
Resolv::DNS.free_request_id(RequestID={["192.168.1.51", 53]=>{39586=>true}}) <0.000050>
Resolv::DNS.allocate_request_id(RequestID={}) <0.000040>
Resolv::DNS.free_request_id(RequestID={["192.168.1.51", 53]=>{50696=>true}}) <0.000051>
Resolv::DNS.allocate_request_id(RequestID={}) <0.000040>
Resolv::DNS.free_request_id(RequestID={["192.168.1.51", 53]=>{35266=>true}}) <0.000044>
Resolv::DNS.allocate_request_id(RequestID={}) <0.000041>
Resolv::DNS.free_request_id(RequestID={["192.168.1.51", 53]=>{42458=>true}}) <0.000043>
</code></pre>
<p>Example output from rbtrace on 2.7.3:</p>
<pre><code>$ rbtrace -p 42 -m 'allocate_request_id(RequestID.values.first.count)' 'free_request_id(RequestID.values.first.count)'
*** attached to process 42
Resolv::DNS.allocate_request_id(RequestID.values.first.count=544) <0.000161>
Resolv::DNS.allocate_request_id(RequestID.values.first.count=545) <0.000162>
Resolv::DNS.allocate_request_id(RequestID.values.first.count=546) <0.000136>
Resolv::DNS.allocate_request_id(RequestID.values.first.count=547) <0.000111>
Resolv::DNS.allocate_request_id(RequestID.values.first.count=548) <0.000166>
Resolv::DNS.allocate_request_id(RequestID.values.first.count=549) <0.000140>
Resolv::DNS.allocate_request_id(RequestID.values.first.count=550) <0.000118>
Resolv::DNS.allocate_request_id(RequestID.values.first.count=551) <0.000149>
Resolv::DNS.allocate_request_id(RequestID.values.first.count=552) <0.000113>
Resolv::DNS.allocate_request_id(RequestID.values.first.count=553) <0.000141>
Resolv::DNS.allocate_request_id(RequestID.values.first.count=554) <0.000180>
Resolv::DNS.allocate_request_id(RequestID.values.first.count=555) <0.000174>
Resolv::DNS.allocate_request_id(RequestID.values.first.count=556) <0.000155>
…
</code></pre>
<p>not reproducible on:</p>
<ul>
<li>ruby 2.7.2p137 (2020-10-01 revision 5445e04352) [x86_64-linux-musl] (ruby:2.7.2-alpine docker image)</li>
<li>ruby 2.7.2p137 (2020-10-01 revision 5445e04352) [x86_64-linux]</li>
</ul>
<p>reproducible on:</p>
<ul>
<li>ruby 2.7.3p183 (2021-04-05 revision 6847ee089d) [x86_64-linux-musl] (ruby:2.7.3-alpine docker image)</li>
<li>ruby 2.7.3p183 (2021-04-05 revision 6847ee089d) [x86_64-linux]</li>
<li>ruby 3.0.0p0 (2020-12-25 revision 95aff21468) [x86_64-linux]</li>
<li>ruby 3.0.1p64 (2021-04-05 revision 0fb782ee38) [x86_64-linux]</li>
</ul> Ruby master - Bug #17112 (Closed): Resolv.getaddress fails with IPv6 link-local addresses https://redmine.ruby-lang.org/issues/171122020-08-10T11:55:57Zdaniel-rikowski (Daniel Rikowski)daniel@rikowski.info
<p>I noticed that I cannot resolve any link-local IPv6 address using <code>Resolv.getaddress</code>. For example calling <code>Resolv.getaddress('fe80::eca4:7b00:ecc5:206c%8')</code> fails with <code>Resolv::ResolvError</code><br>
Resolving any IPv4 address succeedes, as well as resolving the loopback address <code>::1</code>.</p>
<p>After some code digging I noticed that <code>Resolv::DNS</code> doesn't even attempt to resolve that IP address. It checks if there is any local IPv6 interface with an IP address which is not a loopback or a link-local address.</p>
<pre><code class="ruby syntaxhl" data-language="ruby"><span class="k">def</span> <span class="nf">each_address</span><span class="p">(</span><span class="nb">name</span><span class="p">)</span>
<span class="n">each_resource</span><span class="p">(</span><span class="nb">name</span><span class="p">,</span> <span class="no">Resource</span><span class="o">::</span><span class="no">IN</span><span class="o">::</span><span class="no">A</span><span class="p">)</span> <span class="p">{</span><span class="o">|</span><span class="n">resource</span><span class="o">|</span> <span class="k">yield</span> <span class="n">resource</span><span class="p">.</span><span class="nf">address</span><span class="p">}</span>
<span class="k">if</span> <span class="n">use_ipv6?</span> <span class="c1"># <===== false on my system</span>
<span class="n">each_resource</span><span class="p">(</span><span class="nb">name</span><span class="p">,</span> <span class="no">Resource</span><span class="o">::</span><span class="no">IN</span><span class="o">::</span><span class="no">AAAA</span><span class="p">)</span> <span class="p">{</span><span class="o">|</span><span class="n">resource</span><span class="o">|</span> <span class="k">yield</span> <span class="n">resource</span><span class="p">.</span><span class="nf">address</span><span class="p">}</span>
<span class="k">end</span>
<span class="k">end</span>
</code></pre>
<p><code>use_ipv6?</code> ultimately boils down to this:</p>
<pre><code class="ruby syntaxhl" data-language="ruby"><span class="no">Socket</span><span class="p">.</span><span class="nf">ip_address_list</span><span class="p">.</span><span class="nf">any?</span> <span class="p">{</span><span class="o">|</span><span class="n">a</span><span class="o">|</span> <span class="n">a</span><span class="p">.</span><span class="nf">ipv6?</span> <span class="o">&&</span> <span class="o">!</span><span class="n">a</span><span class="p">.</span><span class="nf">ipv6_loopback?</span> <span class="o">&&</span> <span class="o">!</span><span class="n">a</span><span class="p">.</span><span class="nf">ipv6_linklocal?</span> <span class="p">}</span>
</code></pre>
<p>In other words if the system doesn't have a "real" IPv6 address, <code>Resolv.getaddress</code> cannot resolve link-local addresses. (<code>::1</code> is resolved using <code>Resolv::Hosts</code> which doesn't perform the same check)</p>
<p>One could argue that IP addresses don't have to be resolved, and I could just perform a regex check and skip <code>Resolv.getaddress</code> if I already have an IP address.<br>
Unfortunately that is not possible when using <code>resolv-replace</code>. In that case most (all?) of Ruby's address resolving is piped through <code>Resolv.getaddress</code>.<br>
(That is how I noticed this bug: The RubyMine test runner uses drb which connects to a process on the same machine using a link-local IPv6 address. Since I'm using <code>resolv-replace</code> and I don't have a network interface with a non-loopback non-local-link address I encountered this bug.)</p>
<p>Platform:<br>
ruby 2.7.1p83 (2020-03-31 revision a0c7c23c9c) [x64-mingw32]<br>
Microsoft Windows [Version 10.0.18363.959]</p> Ruby master - Bug #16922 (Closed): single quote should be escaped in xmlhttps://redmine.ruby-lang.org/issues/169222020-05-29T18:19:20Zlisbethw1130 (Lisbeth Wu)
<p>This is Lisbeth from Taiwan. I'm trying to convert a string to xml by using 'string'.encode(xml: :attr) but single quote doesn't escape as expected<br>
Here's the spec shows which character needs to be escaped: <a href="https://www.w3.org/TR/xml/#dt-escape" class="external">https://www.w3.org/TR/xml/#dt-escape</a></p>
<p>and I found a more clean table in sitemap spec: <a href="https://www.sitemaps.org/protocol.html#escaping" class="external">https://www.sitemaps.org/protocol.html#escaping</a></p>
<pre><code>Ampersand & &amp;
Single Quote ' &apos;
Double Quote " &quot;
Greater Than > &gt;
Less Than < &lt;
</code></pre>
<p>expected output:</p>
<blockquote>
<p>puts ':$+,;:=?@&'"><'.encode(xml: :attr)</p>
</blockquote>
<pre><code>":$+,;:=?@&amp; **&apos;** &quot;&gt;&lt;"
</code></pre>
<p>real output:</p>
<blockquote>
<pre><code>":$+,;:=?@&amp; **'** &quot;&gt;&lt;"
</code></pre>
</blockquote>
<p>Thanks for helping</p> Ruby master - Bug #16159 (Closed): rubyspec about time fails in Asia/Kuala_Lumpur timezonehttps://redmine.ruby-lang.org/issues/161592019-09-09T17:09:07Zjimmynguyc (Jimmy Ngu)
<p>Steps to reproduce:</p>
<ol>
<li>Check out current master from Github (89c5d5a64e12cea23b230913b79c3d499bf30b12)</li>
<li>Run <code>autoconf</code>
</li>
<li>Run <code>./configure</code>
</li>
<li>Run <code>make check -- --with-openssl-dir=/usr/local/opt/openssl/lib</code>
</li>
</ol>
<p>Result:</p>
<pre><code> $ make check -- --with-openssl-dir=/usr/local/opt/openssl/lib
BASERUBY = /Users/jimmy/.rbenv/shims/ruby --disable=gems
CC = clang
LD = ld
LDSHARED = clang -dynamiclib
CFLAGS = -O3 -ggdb3 -Wall -Wextra -Werror=deprecated-declarations -Werror=division-by-zero -Werror=implicit-function-declaration -Werror=implicit-int -Werror=pointer-arith -Werror=shorten-64-to-32 -Werror=write-strings -Wmissing-noreturn -Wno-constant-logical-operand -Wno-long-long -Wno-missing-field-initializers -Wno-overlength-strings -Wno-parentheses-equality -Wno-self-assign -Wno-tautological-compare -Wno-unused-parameter -Wno-unused-value -Wunused-variable -Werror=extra-tokens -std=gnu99 -pipe
XCFLAGS = -D_FORTIFY_SOURCE=2 -fstack-protector-strong -fno-strict-overflow -DRUBY_DEVEL=1 -fvisibility=hidden -DRUBY_EXPORT -fPIE -DCANONICALIZATION_FOR_MATHN -I. -I.ext/include/x86_64-darwin18 -I./include -I. -I./enc/unicode/12.1.0
CPPFLAGS = -I/usr/local/opt/openssl/include -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE -D_DARWIN_UNLIMITED_SELECT -D_REENTRANT
DLDFLAGS = -L/usr/local/opt/openssl/lib -Wl,-undefined,dynamic_lookup -Wl,-multiply_defined,suppress -fstack-protector-strong -Wl,-pie -framework Security -framework Foundation
SOLIBS = -lpthread -lgmp -ldl -lobjc
LANG = en_US.UTF-8
LC_ALL =
LC_CTYPE = en_US.UTF-8
MFLAGS =
Apple LLVM version 10.0.1 (clang-1001.0.46.4)
Target: x86_64-apple-darwin18.7.0
Thread model: posix
InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin
./revision.h unchanged
generating encdb.h
encdb.h unchanged
generating enc.mk
making srcs under enc
make[1]: Nothing to be done for `srcs'.
generating transdb.h
transdb.h unchanged
generating makefiles ext/configure-ext.mk
ext/configure-ext.mk unchanged
generating makefile exts.mk
exts.mk unchanged
./revision.h unchanged
make[1]: Nothing to be done for `note'.
making enc
make[1]: Nothing to be done for `enc'.
making trans
make[1]: Nothing to be done for `./enc/trans'.
making encs
make[1]: Nothing to be done for `encs'.
Generating RDoc documentation
No newer files.
Files: 0
Classes: 0 (0 undocumented)
Modules: 0 (0 undocumented)
Constants: 0 (0 undocumented)
Attributes: 0 (0 undocumented)
Methods: 0 (0 undocumented)
Total: 0 (0 undocumented)
0.00% documented
Elapsed: 0.0s
Fiber count: 10000 (skipping)
Thread count: 4094 (can't create Thread: Resource temporarily unavailable)
PASS all 1408 tests
exec ./miniruby -I./lib -I. -I.ext/common ./tool/runruby.rb --extout=.ext -- --disable-gems "./bootstraptest/runner.rb" --ruby="ruby --disable-gems" ./KNOWNBUGS.rb
2019-09-10 00:54:00 +0800
Driver is ruby 2.7.0dev (2019-09-09T12:27:40Z master 89c5d5a64e) [x86_64-darwin18]
Target is ruby 2.7.0dev (2019-09-09T12:27:40Z master 89c5d5a64e) [x86_64-darwin18]
KNOWNBUGS.rb PASS 0
No tests, no problem
test succeeded
Run options: "--ruby=./miniruby -I./lib -I. -I.ext/common ./tool/runruby.rb --extout=.ext -- --disable-gems"
# Running tests:
Finished tests in 2.620115s, 87.4007 tests/s, 190.0680 assertions/s.
229 tests, 498 assertions, 0 failures, 0 errors, 0 skips
ruby -v: ruby 2.7.0dev (2019-09-09T12:27:40Z master 89c5d5a64e) [x86_64-darwin18]
Run options: "--ruby=./miniruby -I./lib -I. -I.ext/common ./tool/runruby.rb --extout=.ext -- --disable-gems" --excludes-dir=./test/excludes --name=!/memory_leak/
# Running tests:
Finished tests in 504.198097s, 41.7792 tests/s, 5397.4460 assertions/s.
21065 tests, 2721382 assertions, 0 failures, 0 errors, 37 skips
ruby -v: ruby 2.7.0dev (2019-09-09T12:27:40Z master 89c5d5a64e) [x86_64-darwin18]
$ /Users/jimmy/Projects/ruby/miniruby -I/Users/jimmy/Projects/ruby/lib /Users/jimmy/Projects/ruby/tool/runruby.rb --archdir=/Users/jimmy/Projects/ruby --extout=.ext -- /Users/jimmy/Projects/ruby/spec/mspec/bin/mspec-run -B ./spec/default.mspec
ruby 2.7.0dev (2019-09-09T12:27:40Z master 89c5d5a64e) [x86_64-darwin18]
1)
Time.local handles years from 0 as such FAILED
Expected 1932
to equal 1933
/Users/jimmy/Projects/ruby/spec/ruby/core/time/shared/time_params.rb:138:in `block (3 levels) in <top (required)>'
/Users/jimmy/Projects/ruby/spec/ruby/core/time/shared/time_params.rb:136:in `upto'
/Users/jimmy/Projects/ruby/spec/ruby/core/time/shared/time_params.rb:136:in `block (2 levels) in <top (required)>'
/Users/jimmy/Projects/ruby/spec/ruby/core/time/local_spec.rb:5:in `<top (required)>'
2)
Time.mktime handles years from 0 as such FAILED
Expected 1932
to equal 1933
/Users/jimmy/Projects/ruby/spec/ruby/core/time/shared/time_params.rb:138:in `block (3 levels) in <top (required)>'
/Users/jimmy/Projects/ruby/spec/ruby/core/time/shared/time_params.rb:136:in `upto'
/Users/jimmy/Projects/ruby/spec/ruby/core/time/shared/time_params.rb:136:in `block (2 levels) in <top (required)>'
/Users/jimmy/Projects/ruby/spec/ruby/core/time/mktime_spec.rb:5:in `<top (required)>'
3)
Time.new handles years from 0 as such FAILED
Expected 1932
to equal 1933
/Users/jimmy/Projects/ruby/spec/ruby/core/time/shared/time_params.rb:138:in `block (3 levels) in <top (required)>'
/Users/jimmy/Projects/ruby/spec/ruby/core/time/shared/time_params.rb:136:in `upto'
/Users/jimmy/Projects/ruby/spec/ruby/core/time/shared/time_params.rb:136:in `block (2 levels) in <top (required)>'
/Users/jimmy/Projects/ruby/spec/ruby/core/time/new_spec.rb:11:in `<top (required)>'
[\ | ==================100%================== | 00:00:00] 3F 0E
Finished in 59.678478 seconds
3771 files, 30927 examples, 158359 expectations, 3 failures, 0 errors, 0 tagged
make: *** [yes-test-spec] Error 1
</code></pre>
<p>I'm running a 15" MacBook Pro 2.9 GHz Intel Core i7</p> Ruby master - Bug #15933 (Closed): OpenURI: Assign default charset for HTTPS as well as HTTPhttps://redmine.ruby-lang.org/issues/159332019-06-17T19:14:10Zgareth (Gareth Adams)
<p>Using <code>open-uri</code> to load a document in the following circumstances:</p>
<ul>
<li>The <code>Content-Type</code> header is <code>text/*</code> and <em>doesn't</em> specify a charset, e.g. <code>Content-Type: text/csv</code>
</li>
<li>The document is loaded from an <code>https://</code> URL</li>
</ul>
<p>…will cause the resulting string to have <code>ASCII-8BIT</code> encoding.</p>
<p>As the <a href="https://github.com/ruby/ruby/blob/trunk/lib/open-uri.rb#L538-L560" class="external">documentation for OpenURI#charset</a> mentions, <a href="https://tools.ietf.org/html/rfc2616#section-3.7.1" class="external">RFC2616/3.7.1</a> says:</p>
<blockquote>
<p>When no explicit charset parameter is provided by the sender, media subtypes of the "text" type are defined to have a default charset value of "ISO-8859-1" when received via HTTP.</p>
</blockquote>
<p>OpenURI takes this literally - only assigning ISO-8859-1 if <code>@base_uri.scheme</code> is <em>exactly</em> "http". This check was written <a href="https://github.com/ruby/ruby/commit/3a20ed532b57da1e58287a5c53abe14400a085f4#diff-0f19cb99597e5fb90bfb937b22143b51R264" class="external">17 years ago</a> in 2002 even before TLS 1.1 was defined, and well before HTTPS was common.</p>
<p>I believe this check should now also match the scheme "https". As <a href="https://tools.ietf.org/html/rfc2818#section-2" class="external">RFC2818/2</a> says:</p>
<blockquote>
<p>Conceptually, HTTP/TLS is very simple. Simply use HTTP over TLS precisely as you would use HTTP over TCP</p>
</blockquote>
<ol>
<li>
<p>Is this a suitable change to make?</p>
</li>
<li>
<p>I have a patch to fix the functionality (attached). What else do I need to specify in terms of documentation/tests? I'm happy to put more work into this, but it's my first contribution to Ruby core and I'd like some pointers. I've read through <a href="https://bugs.ruby-lang.org/projects/ruby/wiki/HowToReport" class="external">https://bugs.ruby-lang.org/projects/ruby/wiki/HowToReport</a></p>
</li>
</ol> Ruby master - Bug #15564 (Rejected): Pathname#+(pathpart) returns pathpart when pathpart is absolutehttps://redmine.ruby-lang.org/issues/155642019-01-25T20:11:01ZMalakai97 (Bryan Hockey)bhock@umich.edu
<pre><code>abs = Pathname.new("/abs/dir")
my = Pathname.new("/my/path")
# actual
my/abs # => #<Pathname:/abs/dir>
# expected
my/abs # => #<Pathname:/my/dir/abs/dir>
</code></pre>
<p>While this behavior is desirable in #expand_path, here I believe it is very surprising.</p>
<p>I am happy to submit a patch for this should it be confirmed as a bug.</p> Ruby master - Bug #14612 (Closed): IPv6 address inconsistency (downcase vs. upcase)https://redmine.ruby-lang.org/issues/146122018-03-17T23:52:45Zchucke (Tiago Cardoso)
<p>I've noticed that sometimes ip addresses re shown using a-f characters in downcase, other times upcase. Here is a small script to show results:</p>
<pre><code class="ruby syntaxhl" data-language="ruby"><span class="nb">require</span> <span class="s2">"resolv"</span>
<span class="nb">require</span> <span class="s2">"socket"</span>
<span class="nb">puts</span> <span class="no">TCPSocket</span><span class="p">.</span><span class="nf">getaddress</span><span class="p">(</span><span class="s2">"nghttp2.org"</span><span class="p">)</span> <span class="c1">#=> "2400:8902::f03c:91ff:fe69:a454"</span>
<span class="nb">puts</span> <span class="no">Resolv</span><span class="p">.</span><span class="nf">getaddresses</span><span class="p">(</span><span class="s2">"nghttp2.org"</span><span class="p">)</span> <span class="c1">#=> ["139.162.123.134", "2400:8902::F03C:91FF:FE69:A454"]</span>
</code></pre>
<p>Results might be system-dependent (I'm using Mac OS High Sierra).</p>
<p>This makes compare operations a bit harder.</p> Ruby master - Bug #14400 (Closed): IO#ungetc and IO#ungetbyte documentation is inconsistent with ...https://redmine.ruby-lang.org/issues/144002018-01-25T10:28:36ZEregon (Benoit Daloze)
<p>The documentation of IO#ungetc states:</p>
<blockquote>
<p>Pushes back one character (passed as a parameter) onto ios, such that a<br>
subsequent buffered character read will return it. Only one character may be<br>
pushed back before a subsequent read operation (that is, you will be able to<br>
read only the last of several characters that have been pushed back). Has no<br>
effect with unbuffered reads (such as IO#sysread).</p>
</blockquote>
<p>And similar for IO#ungetbyte:</p>
<blockquote>
<p>Pushes back bytes (passed as a parameter) onto ios, such that a<br>
subsequent buffered read will return it. Only one byte may be pushed back<br>
before a subsequent read operation (that is, you will be able to read only the<br>
last of several bytes that have been pushed back). Has no effect with<br>
unbuffered reads (such as IO#sysread).</p>
</blockquote>
<p>The part about only one byte/character is inconsistent with the actual behavior,<br>
most notably because both of these methods accept a String with multiple characters as argument.</p>
<pre><code class="ruby syntaxhl" data-language="ruby"><span class="no">STDIN</span><span class="p">.</span><span class="nf">ungetc</span> <span class="s2">"Hello World!"</span>
<span class="no">STDIN</span><span class="p">.</span><span class="nf">read</span> <span class="mi">12</span> <span class="c1">#=> "Hello World!"</span>
<span class="no">STDIN</span><span class="p">.</span><span class="nf">ungetbyte</span> <span class="s2">"Foo Bar"</span>
<span class="no">STDIN</span><span class="p">.</span><span class="nf">read</span> <span class="mi">7</span> <span class="c1">#=> "Foo Bar"</span>
</code></pre>
<p>(There are even specs for it:<br>
<a href="https://github.com/ruby/spec/blob/7fa22023d69620ea3ff4d0ed2eb71fd7b02dd950/core/io/ungetc_spec.rb#L98" class="external">https://github.com/ruby/spec/blob/7fa22023d69620ea3ff4d0ed2eb71fd7b02dd950/core/io/ungetc_spec.rb#L98</a><br>
<a href="https://github.com/ruby/spec/blob/7fa22023d69620ea3ff4d0ed2eb71fd7b02dd950/core/io/ungetbyte_spec.rb#L21" class="external">https://github.com/ruby/spec/blob/7fa22023d69620ea3ff4d0ed2eb71fd7b02dd950/core/io/ungetbyte_spec.rb#L21</a>)</p>
<blockquote>
<p>that is, you will be able to read only the last of several characters that have been pushed back</p>
</blockquote>
<p>is contradicting what happens.</p>
<p>The behavior with large Strings is confusing.<br>
It seems to allow arbitrarily large strings (but only if there was not a ungetbyte already/the buffer was empty?).</p>
<pre><code>$ pry
[1] pry(main)> STDIN.ungetbyte "a"*10_000
=> nil
[2] pry(main)> STDIN.ungetbyte "a"*10_000
IOError: ungetbyte failed
$ pry
[1] pry(main)> STDIN.ungetbyte "a"*100_000
=> nil
[2] pry(main)> STDIN.ungetbyte "a"*100_000
IOError: ungetbyte failed
from (pry):2:in `ungetbyte'
$ pry
[1] pry(main)> STDIN.ungetbyte "a"*100_000
=> nil
[2] pry(main)> STDIN.read(100_000).size
=> 100000
[3] pry(main)> STDIN.ungetbyte "a"*100_000
=> nil
[4] pry(main)> STDIN.read(100_000).size
=> 100000
</code></pre>
<p>And it's not as simple as if two consecutive ungetbyte were forbidden:</p>
<pre><code>$ pry
[1] pry(main)> STDIN.ungetbyte "a"*10_000_000
=> nil
[2] pry(main)> STDIN.ungetbyte "a"
IOError: ungetbyte failed
from (pry):2:in `ungetbyte'
$ pry
[1] pry(main)> STDIN.ungetbyte "a"
=> nil
[2] pry(main)> STDIN.ungetbyte "a"
=> nil
</code></pre>
<p>So how are those methods supposed to behave?<br>
Can the documentation be updated to match the behavior and/or the behavior be fixed to be simpler?</p>
<p>I also wonder when those methods are useful.<br>
There seems to be very few usages in the stdlib.<br>
Maybe they should just be removed?<br>
It seems easy to make a custom IO wrapper/buffer supporting pushing characters/bytes back.</p> Ruby master - Bug #14241 (Closed): Time.strptime() doesn't support the directive "%W".https://redmine.ruby-lang.org/issues/142412017-12-26T10:10:14Zstsuboi (Sougo TSUBOI)
<p>According to reference manual, Time.strptime() accepts the directive "%W" in a format string, but it seems not to be worked.<br>
On the other hand, Date.strptime() accepts "%W" correctly.</p>
<p>C:>ruby -v<br>
ruby 2.3.3p222 (2016-11-21 revision 56859) [x64-mingw32]</p>
<p>C:>irb<br>
irb(main):001:0> require "time"<br>
=> true<br>
irb(main):003:0> Time.strptime("2017 1", "%Y %W").strftime("%F")<br>
=> "2017-01-01"<br>
irb(main):004:0> Date.strptime("2017 1", "%Y %W").strftime("%F")<br>
=> "2017-01-02"</p> Ruby master - Bug #14204 (Closed): [PATCH] socket: use frozen string buffer when releasing GVLhttps://redmine.ruby-lang.org/issues/142042017-12-19T07:49:27Znormalperson (Eric Wong)normalperson@yhbt.net
<pre><code>socket: use frozen string buffer when releasing GVL
Using a non-frozen string buffer when GVL is released is
dangerous because another thread may modify that buffer.
This may lead to the contents of an invalid pointer being
written to the socket.
Follow the lead used with core io.c methods and duplicate
the string to a temporary frozen buffer before writing.
* ext/socket/ancdata.c (bsock_sendmsg_internal): use
rb_str_tmp_frozen_{acquire/release} as with IO#write
* internal.h (rb_str_tmp_frozen_acquire): export
(rb_str_tmp_frozen_release): export
</code></pre>
<p>related to [Bug <a class="issue tracker-1 status-5 priority-4 priority-default closed" title="Bug: [PATCH] IO#pwrite uses tmp buffer to avoid parallel modification (Closed)" href="https://redmine.ruby-lang.org/issues/14195">#14195</a>]</p> Ruby master - Bug #13513 (Closed): Resolv::DNS::Message.decode hangs after detecting truncation i...https://redmine.ruby-lang.org/issues/135132017-04-26T16:13:55Ziamasmith (Andrew Smith)
<p>ruby-core:32407 introduced support for a TCP requestor in fetch_resource if Resolv::DNS::Message.decode returned RCode::NoError and a reply tc of 1.</p>
<p>Unfortunately Resolv::DNS::Message.decode proceeds to attempt to unpack all answers based upon the answer count from the message regardless of truncation which causes exception behaviour which is then silently retried as this is seen as the response to the request never being seen (see begin, ensure).</p>
<p>To avoid this issue I add a return to Message.decode once the truncation is detected.</p>
<p>To patch this in a portable fashion I use the attached monkey patch which causes the truncation to propagate correctly back to fetch_resource and allows it to proceed correctly with the TCP based query.</p> Ruby master - Bug #13407 (Rejected): We have recv_nonblock but not send_nonblock... can we add it?https://redmine.ruby-lang.org/issues/134072017-04-06T12:26:01Zioquatix (Samuel Williams)samuel@oriontransfer.net
<p>We have recv_nonblock, read_nonblock, write_nonblock but not BasicSocket#send_nonblock. Is this a mistake?</p> Ruby master - Bug #12980 (Closed): Time - Time to return a Rationalhttps://redmine.ruby-lang.org/issues/129802016-11-25T08:18:00Zmatsuda (Akira Matsuda)ronnie@dio.jp
<p>Currently subtracting a Time from a Time returns a Float, which I guess causes <a class="issue tracker-1 status-5 priority-4 priority-default closed" title="Bug: Incompatibility of a method signature between `Float#round` and `BigDecimal#round` (Closed)" href="https://redmine.ruby-lang.org/issues/12952">#12952</a></p>
<p>Is there any reason this doesn't return a Rational?</p> Ruby master - Bug #12838 (Closed): Duplication of UDP packets for DNS responses causing "no addre...https://redmine.ruby-lang.org/issues/128382016-10-13T20:50:15Zjschneiderhan (Jon-Erik Schneiderhan)jschneiderhan@gmail.com
<p>A network that I'm running a Ruby app on has an issue where it is duplicating UDP packets (a separate issue that I need to fix). This is resulting in intermittent "not found" results for valid hostnames.</p>
<p>In my case, my resolver is setup to use multiple search domains, say bad1.com, bad2.com, and good.com. A lookup for hostname 'example' will perform lookups on example.bad1.com, example.bad2.com, example.good.com, and then finally plain 'example'. Say example.good.com is a valid hostname with a corresponding record. What I am seeing is that the duplication of the response s for the first two DNS queries are being read as the response for example.good.com, and I am getting a "no address for example.good.com" error message. Note that this is only happening every once in awhile, when the responses are duplicated.</p>
<p>I have been able to reproduce with the attached server.rb and client.rb files. I also noticed that if I changed the following line to:</p>
<p><a href="https://github.com/ruby/ruby/blob/5827d8e887d881eb3a6e6ea7410590261c90545f/lib/resolv.rb#L709" class="external">https://github.com/ruby/ruby/blob/5827d8e887d881eb3a6e6ea7410590261c90545f/lib/resolv.rb#L709</a><br>
if (s = sender_for(from, msg)) && s == sender</p>
<p>then my problems went away. I have to admit though, I don't really understand the entirely of that file. Not from lack of effort.</p>
<p>You should be able to reproduce the error by running server.rb and client.rb. You may need to use sudo for server.rb in order to bind to port 53 (or you can modify the files to use a higher port).</p> Ruby master - Bug #12809 (Rejected): passing a proc to Kernel#lambda does not create a lambdahttps://redmine.ruby-lang.org/issues/128092016-10-05T15:48:39Zsylvain.joyeux (Sylvain Joyeux)
<p>I would expect the following:</p>
<pre><code>p = proc { |a| a * 2 }
l = lambda(&p)
puts l.lambda? # => true
l.call(1, 2) # => ArgumentError
</code></pre>
<p>But it does not, basically <code>l</code> there looks very much like a non-lambda proc (another test is that a return in <code>p</code> would cause <code>l.call</code> to raise LocalJumpError)</p>
<pre><code></code></pre> Ruby master - Bug #12615 (Closed): Pathname#rename does not work across filesystem boundaries.https://redmine.ruby-lang.org/issues/126152016-07-23T01:30:52Zsingpolyma (Stephen Paul Weber)singpolyma@singpolyma.net
<p>So I must continue to use FileUtils.mv -- either Pathname#rename should be fixed or (if the current behaviour is desired) and Pathname#mv added.</p> Ruby master - Bug #12337 (Closed): inconsistency between Fixnum#coerce and Bignum#coercehttps://redmine.ruby-lang.org/issues/123372016-05-01T13:06:54Zakr (Akira Tanaka)akr@fsij.org
<p>I found 1.coerce(2.0) is [2.0, 1.0] but<br>
(2**100).coerce(2.0) raises TypeError</p>
<pre><code>% ./ruby -ve 'p 1.coerce(2.0)'
ruby 2.4.0dev (2016-05-01 trunk 54866) [x86_64-linux]
[2.0, 1.0]
% ./ruby -ve 'p (2**100).coerce(2.0)'
ruby 2.4.0dev (2016-05-01 trunk 54866) [x86_64-linux]
-e:1:in `coerce': can't coerce Float to Bignum (TypeError)
from -e:1:in `<main>'
</code></pre>
<p>This is a documented behavior.</p>
<pre><code>% ri Bignum.coerce|cat
= Bignum.coerce
(from ruby core)
------------------------------------------------------------------------------
big.coerce(numeric) -> array
------------------------------------------------------------------------------
Returns an array with both a numeric and a big represented as Bignum objects.
This is achieved by converting numeric to a Bignum.
A TypeError is raised if the numeric is not a Fixnum or Bignum type.
(0x3FFFFFFFFFFFFFFF+1).coerce(42) #=> [42, 4611686018427387904]
</code></pre>
<p>But I think this is bad bahavior.<br>
Fixnum and Bignum should work seamlessly.</p>
<p>For example, this exposes the platform is 32-bit or 64-bit.<br>
2<strong>40 is Fixnum on 32-bit environment and Bignum on 64-bit environment.<br>
So, (2</strong>40).coerce(2.0) behaves differently: returns an array on 64-bit and<br>
raises TypeError on 32-bit platform.</p>
<pre><code>32bit-platform% ./ruby -ve 'p (2**40).coerce(2.0)'
ruby 2.4.0dev (2016-05-01 trunk 54866) [x86_64-linux]
[2.0, 1099511627776.0]
64bit-platform% ./ruby -ve 'p (2**40).coerce(2.0)'
ruby 2.4.0dev (2016-05-01 trunk 54864) [i686-linux]
-e:1:in `coerce': can't coerce Float to Bignum (TypeError)
from -e:1:in `<main>'
</code></pre>
<p>I think the behavior of Bignum#coerce should be changed<br>
to match Fixnum#coerce (actually defined at Numeric).</p> Ruby master - Bug #12147 (Rejected): Time::local returns incorrect ending of US DSThttps://redmine.ruby-lang.org/issues/121472016-03-07T04:27:48Zrmitchell (Ryan Mitchell)
<p>In 2016, US Daylight Saving Time ends at 2:00 AM on November 6. In the America/Los_Angeles timezone, this means going from an offset from UTC of -0700 to an offset of -0800. So 1:00 AM on that date is still in DST, with an offset from UTC of -0700. But Time::local begins returning the new offset at 1:00 AM instead of 2:00 AM. The offset of times at midnight and at 2:00 AM are returned correctly:</p>
<pre><code>2.3.0 :020 > Time.local(2016, 11, 6, 0)
=> 2016-11-06 00:00:00 -0700
2.3.0 :021 > Time.local(2016, 11, 6, 1)
=> 2016-11-06 01:00:00 -0800
2.3.0 :022 > Time.local(2016, 11, 6, 2)
=> 2016-11-06 02:00:00 -0800
</code></pre>
<p>This behaves correctly in Ruby 2.2.0 and it looks possibly related to <a href="https://bugs.ruby-lang.org/issues/10698" class="external">https://bugs.ruby-lang.org/issues/10698</a>.</p> Ruby master - Bug #12112 (Closed): Resolv.getname with IPv6 noophttps://redmine.ruby-lang.org/issues/121122016-02-25T23:23:30Zhelge000 (Daniel Helgenberger)
<p>Currently reverse resolving IPv6 addresses using stdlib Resolv does not work.</p>
<a name="How-reproducible"></a>
<h3 >How reproducible<a href="#How-reproducible" class="wiki-anchor">¶</a></h3>
<p>always</p>
<a name="Steps"></a>
<h3 >Steps:<a href="#Steps" class="wiki-anchor">¶</a></h3>
<ol>
<li>Require 'resolv'</li>
<li>Use #getname or #getnames with a valid, reverse resolvable IPv6 address</li>
</ol>
<a name="Result"></a>
<h3 >Result:<a href="#Result" class="wiki-anchor">¶</a></h3>
<p>resolv error with #getname, empty result using #getnames</p>
<a name="Expected-result"></a>
<h3 >Expected result:<a href="#Expected-result" class="wiki-anchor">¶</a></h3>
<p>Resolved to hostname as with IPv4</p>
<a name="Example-system"></a>
<h3 >Example, system:<a href="#Example-system" class="wiki-anchor">¶</a></h3>
<pre><code>dig @8.8.8.8 +short -x 2a00:1450:4001:803::1018
fra07s30-in-x18.1e100.net.
</code></pre>
<a name="ruby"></a>
<h3 >ruby:<a href="#ruby" class="wiki-anchor">¶</a></h3>
<pre><code>[1] pry(main)> require 'resolv'
=> false
[2] pry(main)> resolver = Resolv::DNS.new(:nameserver => '8.8.8.8')
#[...]
[3] pry(main)> resolver.getname('2a00:1450:4001:803::1018')
Resolv::ResolvError: no name for 2a00:1450:4001:803::1018
from ~/.rvm/rubies/ruby-2.0.0-p643/lib/ruby/2.0.0/resolv.rb:128:in `getname'
[4] pry(main)> resolver.getnames('2a00:1450:4001:803::1018')
=> []
</code></pre> Ruby master - Bug #12052 (Closed): String#encode with xml option returns wrong result for totally...https://redmine.ruby-lang.org/issues/120522016-02-05T02:50:27Znobu (Nobuyoshi Nakada)nobu@ruby-lang.org
<p><code>String#encode</code>をASCII非互換エンコーディングから同じエンコーディングへ、<code>xml:</code>オプション付きで呼ぶとおかしな結果を返します。<br>
バイナリとして変換してしまっているようです。</p>
<pre><code class="ruby syntaxhl" data-language="ruby"><span class="nb">p</span> <span class="s2">"<</span><span class="se">\0</span><span class="s2">></span><span class="se">\0</span><span class="s2">"</span><span class="p">.</span><span class="nf">encode</span><span class="p">(</span><span class="s2">"utf-16le"</span><span class="p">,</span> <span class="s2">"utf-16le"</span><span class="p">,</span> <span class="ss">xml: :text</span><span class="p">)</span>
<span class="c1">#=> "\u6C26\u3B74\u2600\u7467;"</span>
</code></pre> Ruby master - Bug #12044 (Closed): net/ftp.rb: add NullSocket#closed? to fix closing not yet open...https://redmine.ruby-lang.org/issues/120442016-02-01T22:52:37Zantstorm (Anthony Dmitriyev)
<p>Hi there,</p>
<p>I've opened a PR for this issue on GitHub: <a href="https://github.com/ruby/ruby/pull/1232" class="external">https://github.com/ruby/ruby/pull/1232</a></p>
<p>An instance of <code>NullSocket</code> is stored in a <code>@sock</code> variable of a new <code>Net::FTP</code>, it also has a <code>#close</code> method (that obviously does nothing), but it is never called, because a wrapping <code>Net::FTP#close</code> checks that <code>@sock and not @sock.closed?</code> which crashes with <code>FTPConnectionError</code> because there is no method <code>#closed?</code> on <code>NullSocket</code>. This PR adds it and a test to verify that it works.</p>
<p>Below is the way to reproduce the error in the IRB. As you can see it's quite confusing, you'd expect <code>#closed?</code> not to raise an error, but return <code>true</code> instead.</p>
<pre><code>>> ftp = Net::FTP.new
=> #<Net::FTP:0x007f90c38075e0 @mon_owner=nil, @mon_count=0, @mon_mutex=#<Thread::Mutex:0x007f90c3807590>, @binary=true, @passive=true, @debug_mode=false, @resume=false, @sock=#<Net::FTP::NullSocket:0x007f90c3807568>, @logged_in=false, @open_timeout=nil, @read_timeout=60>
>> ftp.close
Net::FTPConnectionError: not connected
from /usr/local/var/rbenv/versions/2.3.0/lib/ruby/2.3.0/net/ftp.rb:1277:in `method_missing'
from /usr/local/var/rbenv/versions/2.3.0/lib/ruby/2.3.0/net/ftp.rb:1168:in `close'
from (irb):6
from /usr/local/var/rbenv/versions/2.3.0/bin/irb:11:in `<main>'
>> ftp.closed?
Net::FTPConnectionError: not connected
from /usr/local/var/rbenv/versions/2.3.0/lib/ruby/2.3.0/net/ftp.rb:1277:in `method_missing'
from /usr/local/var/rbenv/versions/2.3.0/lib/ruby/2.3.0/net/ftp.rb:1184:in `closed?'
from (irb):7
from /usr/local/var/rbenv/versions/2.3.0/bin/irb:11:in `<main>'
</code></pre> Ruby master - Bug #11912 (Closed): [WIP] resolv: attempt to fix Resolv::LOC::Coord.createhttps://redmine.ruby-lang.org/issues/119122015-12-28T21:05:32Znormalperson (Eric Wong)normalperson@yhbt.net
<p>This seems to have never worked in the first place:</p>
<ul>
<li>"$1 < 180" where $1 is a string raises ArgumentError</li>
<li>regexps in the assignment for "hemi" reset $1 and clobber $2, $3, $4</li>
<li>orientation is a frozen string literal which we append to</li>
<li>"$4[[/NS/],1]" has extra braces</li>
</ul>
<p>I'm not sure if I'm fixing this properly, extra eyes appreciated.</p> Ruby master - Bug #11631 (Closed): OpenURI.redirectable? が http -> https の時もfalseを返すhttps://redmine.ruby-lang.org/issues/116312015-10-28T12:37:22Zmasarakki (masaki yamada)masaki182@gmail.com
<p>コメントによると</p>
<a name="https-to-http-redirect-is-also-forbidden-intentionally"></a>
<h1 >https to http redirect is also forbidden intentionally.<a href="#https-to-http-redirect-is-also-forbidden-intentionally" class="wiki-anchor">¶</a></h1>
<a name="It-avoids-sending-secure-cookie-or-referer-by-non-secure-HTTP-protocol"></a>
<h1 >It avoids sending secure cookie or referer by non-secure HTTP protocol.<a href="#It-avoids-sending-secure-cookie-or-referer-by-non-secure-HTTP-protocol" class="wiki-anchor">¶</a></h1>
<p>となっていますが、<br>
この変更がされた時にリダイレクト先のチェックでも https を禁止してしまっています。<br>
http to https を禁止する理由は無さそうなんですが、この動作で正しいのでしょうか</p> Ruby master - Bug #11595 (Rejected): Time#utc? and Time#gmt? return misleading results based on $TZhttps://redmine.ruby-lang.org/issues/115952015-10-14T19:33:59Zdavidcelis (David Celis)me@davidcel.is
<p>There is an issue with Time#utc? and its alias, Time#gmt?, that return misleading results based on the value of the TZ environment variable. It seems that the only way for a Time instance to return <code>true</code> for <code>utc?</code> is if you explicitly call <code>#utc</code> on it before:</p>
<pre><code>ENV['TZ'] = 'UTC'
# => "UTC"
time = Time.now
# => 2015-10-14 19:30:00 +0000
time.utc?
# => false
time = time.utc
# => 2015-10-14 19:30:00 UTC
time.utc?
# => true
</code></pre>
<p>This seems misleading based on the value of $TZ being "UTC". The expected result for calling <code>Time.now.utc?</code> in this case would be <code>true</code>, as would that be expected for time zones that are considered links to "UTC" based on the <a href="https://en.wikipedia.org/wiki/List_of_tz_database_time_zones" class="external">tzdata list</a>. These include "UTC", "GMT", "Etc/UTC", "Etc/GMT", "Universal", etc.</p> Ruby master - Bug #11564 (Third Party's Issue): Segementation fault while doing rake db:migratehttps://redmine.ruby-lang.org/issues/115642015-10-02T09:52:05Zritesh@blogvault.net (ritesh soni)ritesh@blogvault.net
<p>I am using ruby<br>
ruby 2.1.7p400 (2015-08-18 revision 51632) [x86_64-linux]<br>
rails: Rails 3.2.13</p>
<p>I recently upgraded from ruby 2.0.0 to ruby 2.1.7,<br>
now when I am trying to do rake db:migrate</p>
<p>I am getting a segmentation fault.</p> Ruby master - Bug #11471 (Closed): min, min_by, max, max_by with optional parameter return a wron...https://redmine.ruby-lang.org/issues/114712015-08-20T17:51:06Zsawa (Tsuyoshi Sawada)
<p>This is reported in StackOverflow: <a href="http://stackoverflow.com/questions/32121749/why-20-13-14-min2-13-20" class="external">http://stackoverflow.com/questions/32121749/why-20-13-14-min2-13-20</a>. Sometimes <code>min</code>, <code>min_by</code>, <code>max</code>, <code>max_by</code> with an optional parameter return a wrong value.</p>
<pre><code>[20, 32, 32, 21, 30, 25, 29, 13, 14].min(2) # => [13, 20]
[20, 32, 32, 21, 30, 25, 29, 13, 14].min_by(2, &:itself) # => [13, 20]
[0, 0, 0, 0, 0, 0, 1, 3, 2].max(2) # => [3, 1]
[0, 0, 0, 0, 0, 0, 1, 3, 2].max_by(2, &:itself) # => [3, 1]
</code></pre> Ruby master - Bug #11385 (Rejected): `==` with bidirectional/cyclic dependencyhttps://redmine.ruby-lang.org/issues/113852015-07-22T02:54:11Zallenwq (Allen Wang)rovingbreeze@gmail.com
<pre><code class="ruby syntaxhl" data-language="ruby"><span class="k">class</span> <span class="nc">Something</span>
<span class="nb">attr_accessor</span> <span class="ss">:friend</span>
<span class="k">def</span> <span class="nf">initialize</span><span class="p">(</span><span class="n">friend</span><span class="p">)</span>
<span class="nb">self</span><span class="p">.</span><span class="nf">friend</span> <span class="o">=</span> <span class="n">friend</span>
<span class="k">end</span>
<span class="k">def</span> <span class="nf">==</span><span class="p">(</span><span class="n">other</span><span class="p">)</span>
<span class="n">friend</span> <span class="o">==</span> <span class="n">other</span><span class="p">.</span><span class="nf">friend</span>
<span class="k">end</span>
<span class="k">end</span>
<span class="n">a</span> <span class="o">=</span> <span class="no">Something</span><span class="p">.</span><span class="nf">new</span><span class="p">([])</span>
<span class="n">b</span> <span class="o">=</span> <span class="no">Something</span><span class="p">.</span><span class="nf">new</span><span class="p">([</span><span class="n">a</span><span class="p">])</span>
<span class="n">a</span><span class="p">.</span><span class="nf">friend</span> <span class="o">=</span> <span class="p">[</span><span class="n">b</span><span class="p">]</span>
<span class="n">a</span> <span class="o">==</span> <span class="n">b</span>
</code></pre>
<p>The above code returns true on OS X and Linux, by right it should give me a exception of stack level too deep.</p>
<p>( And on windows I can see the expected exception )</p> Ruby master - Bug #11341 (Third Party's Issue): Rails server command is not working finehttps://redmine.ruby-lang.org/issues/113412015-07-09T16:59:37ZEshVal (Esh Val)vallurupallieswar@gmail.com
<p>I wanted to run the rails server command and it's showing some log and it is crashed.</p> Ruby master - Bug #11303 (Third Party's Issue): [BUG] Segmentati on fault ruby 2.2.2p95 (2015-04-...https://redmine.ruby-lang.org/issues/113032015-06-24T08:25:20Zadrianpetrov (adrian petrov)iurca.adrian@live.com
<p>$ rails server<br>
c:/Ruby22-x64/lib/ruby/gems/2.2.0/extensions/x64-mingw32/2.2.0/mysql-2.9.1/mysql/mysql_api.so: [BUG] Segmentati<br>
on fault<br>
ruby 2.2.2p95 (2015-04-13 revision 50295) [x64-mingw32]</p>
<p>-- Control frame information -----------------------------------------------<br>
c:0019 p:-11306334 s:0064 e:000063 TOP [FINISH]<br>
c:0018 p:---- s:0062 e:000061 CFUNC :require<br>
c:0017 p:0020 s:0058 e:000057 RESCUE c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/mysql-2.9.1/lib/mysql.rb:6<br>
c:0016 p:0032 s:0055 e:000054 TOP c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/mysql-2.9.1/lib/mysql.rb:2 [FINISH]</p>
<p>c:0015 p:---- s:0053 e:000052 CFUNC :require<br>
c:0014 p:0037 s:0049 e:000048 BLOCK c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/bundler-1.10.4/lib/bundler/runtime.<br>
rb:76 [FINISH]<br>
c:0013 p:---- s:0046 e:000045 CFUNC :each<br>
c:0012 p:0053 s:0043 e:000042 BLOCK c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/bundler-1.10.4/lib/bundler/runtime.<br>
rb:72 [FINISH]<br>
c:0011 p:---- s:0037 e:000036 CFUNC :each<br>
c:0010 p:0030 s:0034 e:000033 METHOD c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/bundler-1.10.4/lib/bundler/runtime.<br>
rb:61<br>
c:0009 p:0017 s:0030 e:000029 METHOD c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/bundler-1.10.4/lib/bundler.rb:134<br>
c:0008 p:0049 s:0026 e:000025 TOP C:/Users/uidj5532/Downloads/resdb.git/config/application.rb:7 [FINISH]<br>
c:0007 p:---- s:0024 e:000023 CFUNC :require<br>
c:0006 p:0014 s:0020 e:000019 BLOCK c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/railties-4.0.4/lib/rails/commands.r<br>
b:74 [FINISH]<br>
c:0005 p:---- s:0017 e:000016 CFUNC :tap<br>
c:0004 p:0561 s:0014 e:000013 TOP c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/railties-4.0.4/lib/rails/commands.r<br>
b:71 [FINISH]<br>
c:0003 p:---- s:0008 e:000007 CFUNC :require<br>
c:0002 p:0034 s:0004 E:0024e0 EVAL bin/rails:4 [FINISH]<br>
c:0001 p:0000 s:0002 E:002060 TOP [FINISH]</p>
<p>-- Ruby level backtrace information ----------------------------------------<br>
bin/rails:4:in <code><main>' bin/rails:4:in </code>require'<br>
c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/railties-4.0.4/lib/rails/commands.rb:71:in <code><top (required)>' c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/railties-4.0.4/lib/rails/commands.rb:71:in </code>tap'<br>
c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/railties-4.0.4/lib/rails/commands.rb:74:in <code>block in <top (required)>' c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/railties-4.0.4/lib/rails/commands.rb:74:in </code>require'<br>
C:/Users/uidj5532/Downloads/resdb.git/config/application.rb:7:in <code><top (required)>' c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/bundler-1.10.4/lib/bundler.rb:134:in </code>require'<br>
c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/bundler-1.10.4/lib/bundler/runtime.rb:61:in <code>require' c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/bundler-1.10.4/lib/bundler/runtime.rb:61:in </code>each'<br>
c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/bundler-1.10.4/lib/bundler/runtime.rb:72:in <code>block in require' c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/bundler-1.10.4/lib/bundler/runtime.rb:72:in </code>each'<br>
c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/bundler-1.10.4/lib/bundler/runtime.rb:76:in <code>block (2 levels) in require ' c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/bundler-1.10.4/lib/bundler/runtime.rb:76:in </code>require'<br>
c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/mysql-2.9.1/lib/mysql.rb:2:in <code><top (required)>' c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/mysql-2.9.1/lib/mysql.rb:6:in </code>rescue in <top (required)>'<br>
c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/mysql-2.9.1/lib/mysql.rb:6:in `require'</p>
<p>-- C level backtrace information -------------------------------------------<br>
C:\Windows\SYSTEM32\ntdll.dll(NtWaitForSingleObject+0xa) [0x0000000076EEDC1A]<br>
C:\Windows\system32\KERNELBASE.dll(WaitForSingleObjectEx+0x9c) [0x000007FEFCE510DC]<br>
c:\Ruby22-x64\bin\x64-msvcrt-ruby220.dll(rb_vm_bugreport+0xa4) [0x00000000649A2624]<br>
c:\Ruby22-x64\bin\x64-msvcrt-ruby220.dll(rb_bug_context+0x62) [0x000000006484BC22]<br>
c:\Ruby22-x64\bin\x64-msvcrt-ruby220.dll(rb_check_safe_obj+0x3b2) [0x000000006491BB62]<br>
[0x0000000000401A85]<br>
C:\Windows\SYSTEM32\ntdll.dll(_C_specific_handler+0x9c) [0x0000000076EB7FA8]<br>
C:\Windows\SYSTEM32\ntdll.dll(RtlDecodePointer+0xad) [0x0000000076EC908D]<br>
C:\Windows\SYSTEM32\ntdll.dll(RtlUnwindEx+0xbbf) [0x0000000076EB8BAF]<br>
C:\Windows\SYSTEM32\ntdll.dll(KiUserExceptionDispatcher+0x2e) [0x0000000076EEDB38]<br>
c:\Ruby22-x64\lib\ruby\gems\2.2.0\extensions\x64-mingw32\2.2.0\mysql-2.9.1\mysql\mysql_api.so(Init_mysql_api+0x<br>
7790) [0x00000000667CDEE0]<br>
c:\Ruby22-x64\lib\ruby\gems\2.2.0\extensions\x64-mingw32\2.2.0\mysql-2.9.1\mysql\mysql_api.so(Init_mysql_api+0x<br>
d) [0x00000000667C675D]<br>
c:\Ruby22-x64\bin\x64-msvcrt-ruby220.dll(dln_load+0x1d6) [0x0000000064801646]<br>
c:\Ruby22-x64\bin\x64-msvcrt-ruby220.dll(rb_vm_call_cfunc+0x130) [0x000000006499EF50]<br>
c:\Ruby22-x64\bin\x64-msvcrt-ruby220.dll(rb_require_internal+0x559) [0x0000000064857229]<br>
c:\Ruby22-x64\bin\x64-msvcrt-ruby220.dll(rb_f_require+0x20) [0x0000000064857590]<br>
c:\Ruby22-x64\bin\x64-msvcrt-ruby220.dll(rb_error_arity+0x1e3) [0x000000006498BA93]<br>
c:\Ruby22-x64\bin\x64-msvcrt-ruby220.dll(rb_f_send+0x761) [0x000000006499C541]<br>
c:\Ruby22-x64\bin\x64-msvcrt-ruby220.dll(rb_vm_localjump_error+0x1f7b) [0x0000000064990F7B]<br>
c:\Ruby22-x64\bin\x64-msvcrt-ruby220.dll(rb_vm_localjump_error+0x607e) [0x000000006499507E]<br>
c:\Ruby22-x64\bin\x64-msvcrt-ruby220.dll(rb_iseq_eval+0x183) [0x000000006499E8B3]<br>
c:\Ruby22-x64\bin\x64-msvcrt-ruby220.dll(rb_rubylevel_errinfo+0x61c) [0x000000006485562C]<br>
c:\Ruby22-x64\bin\x64-msvcrt-ruby220.dll(rb_require_internal+0x593) [0x0000000064857263]<br>
c:\Ruby22-x64\bin\x64-msvcrt-ruby220.dll(rb_f_require+0x20) [0x0000000064857590]<br>
c:\Ruby22-x64\bin\x64-msvcrt-ruby220.dll(rb_error_arity+0x1e3) [0x000000006498BA93]<br>
c:\Ruby22-x64\bin\x64-msvcrt-ruby220.dll(rb_vm_localjump_error+0x1f7b) [0x0000000064990F7B]<br>
c:\Ruby22-x64\bin\x64-msvcrt-ruby220.dll(rb_vm_localjump_error+0x607e) [0x000000006499507E]<br>
c:\Ruby22-x64\bin\x64-msvcrt-ruby220.dll(rb_funcall+0xa96) [0x000000006499A896]<br>
c:\Ruby22-x64\bin\x64-msvcrt-ruby220.dll(rb_yield+0x7c) [0x000000006499B79C]<br>
c:\Ruby22-x64\bin\x64-msvcrt-ruby220.dll(rb_ary_each+0x51) [0x0000000064801971]<br>
c:\Ruby22-x64\bin\x64-msvcrt-ruby220.dll(rb_error_arity+0x1e3) [0x000000006498BA93]<br>
c:\Ruby22-x64\bin\x64-msvcrt-ruby220.dll(rb_vm_localjump_error+0x1ed7) [0x0000000064990ED7]<br>
c:\Ruby22-x64\bin\x64-msvcrt-ruby220.dll(rb_vm_localjump_error+0x607e) [0x000000006499507E]<br>
c:\Ruby22-x64\bin\x64-msvcrt-ruby220.dll(rb_funcall+0xa96) [0x000000006499A896]<br>
c:\Ruby22-x64\bin\x64-msvcrt-ruby220.dll(rb_yield+0x7c) [0x000000006499B79C]<br>
c:\Ruby22-x64\bin\x64-msvcrt-ruby220.dll(rb_ary_each+0x51) [0x0000000064801971]<br>
c:\Ruby22-x64\bin\x64-msvcrt-ruby220.dll(rb_error_arity+0x1e3) [0x000000006498BA93]<br>
c:\Ruby22-x64\bin\x64-msvcrt-ruby220.dll(rb_f_send+0x761) [0x000000006499C541]<br>
c:\Ruby22-x64\bin\x64-msvcrt-ruby220.dll(rb_vm_localjump_error+0x1ed7) [0x0000000064990ED7]<br>
c:\Ruby22-x64\bin\x64-msvcrt-ruby220.dll(rb_vm_localjump_error+0x607e) [0x000000006499507E]<br>
c:\Ruby22-x64\bin\x64-msvcrt-ruby220.dll(rb_iseq_eval+0x183) [0x000000006499E8B3]<br>
c:\Ruby22-x64\bin\x64-msvcrt-ruby220.dll(rb_rubylevel_errinfo+0x61c) [0x000000006485562C]<br>
c:\Ruby22-x64\bin\x64-msvcrt-ruby220.dll(rb_require_internal+0x593) [0x0000000064857263]<br>
c:\Ruby22-x64\bin\x64-msvcrt-ruby220.dll(rb_f_require+0x20) [0x0000000064857590]<br>
c:\Ruby22-x64\bin\x64-msvcrt-ruby220.dll(rb_error_arity+0x1e3) [0x000000006498BA93]<br>
c:\Ruby22-x64\bin\x64-msvcrt-ruby220.dll(rb_f_send+0x761) [0x000000006499C541]<br>
c:\Ruby22-x64\bin\x64-msvcrt-ruby220.dll(rb_vm_localjump_error+0x1f7b) [0x0000000064990F7B]<br>
c:\Ruby22-x64\bin\x64-msvcrt-ruby220.dll(rb_vm_localjump_error+0x607e) [0x000000006499507E]<br>
c:\Ruby22-x64\bin\x64-msvcrt-ruby220.dll(rb_funcall+0xa96) [0x000000006499A896]<br>
c:\Ruby22-x64\bin\x64-msvcrt-ruby220.dll(rb_yield+0x7c) [0x000000006499B79C]<br>
c:\Ruby22-x64\bin\x64-msvcrt-ruby220.dll(rb_obj_tap+0x16) [0x00000000648B19C6]<br>
c:\Ruby22-x64\bin\x64-msvcrt-ruby220.dll(rb_error_arity+0x1e3) [0x000000006498BA93]<br>
c:\Ruby22-x64\bin\x64-msvcrt-ruby220.dll(rb_f_send+0x761) [0x000000006499C541]<br>
c:\Ruby22-x64\bin\x64-msvcrt-ruby220.dll(rb_vm_localjump_error+0x1ed7) [0x0000000064990ED7]<br>
c:\Ruby22-x64\bin\x64-msvcrt-ruby220.dll(rb_vm_localjump_error+0x607e) [0x000000006499507E]<br>
c:\Ruby22-x64\bin\x64-msvcrt-ruby220.dll(rb_iseq_eval+0x183) [0x000000006499E8B3]<br>
c:\Ruby22-x64\bin\x64-msvcrt-ruby220.dll(rb_rubylevel_errinfo+0x61c) [0x000000006485562C]<br>
c:\Ruby22-x64\bin\x64-msvcrt-ruby220.dll(rb_require_internal+0x593) [0x0000000064857263]<br>
c:\Ruby22-x64\bin\x64-msvcrt-ruby220.dll(rb_f_require+0x20) [0x0000000064857590]<br>
c:\Ruby22-x64\bin\x64-msvcrt-ruby220.dll(rb_error_arity+0x1e3) [0x000000006498BA93]<br>
c:\Ruby22-x64\bin\x64-msvcrt-ruby220.dll(rb_f_send+0x761) [0x000000006499C541]<br>
c:\Ruby22-x64\bin\x64-msvcrt-ruby220.dll(rb_vm_localjump_error+0x1f7b) [0x0000000064990F7B]<br>
c:\Ruby22-x64\bin\x64-msvcrt-ruby220.dll(rb_vm_localjump_error+0x607e) [0x000000006499507E]<br>
c:\Ruby22-x64\bin\x64-msvcrt-ruby220.dll(rb_iseq_eval_main+0x1d0) [0x000000006499EAD0]<br>
c:\Ruby22-x64\bin\x64-msvcrt-ruby220.dll(rb_check_copyable+0x2fc1) [0x0000000064850AD1]<br>
c:\Ruby22-x64\bin\x64-msvcrt-ruby220.dll(ruby_run_node+0x51) [0x0000000064853C81]<br>
[0x0000000000402D14]<br>
[0x00000000004013D7]<br>
[0x00000000004014F8]<br>
C:\Windows\system32\kernel32.dll(BaseThreadInitThunk+0xd) [0x0000000076D959CD]</p>
<p>-- Other runtime information -----------------------------------------------</p>
<ul>
<li>
<p>Loaded script: bin/rails</p>
</li>
<li>
<p>Loaded features:</p>
<p>0 enumerator.so<br>
1 rational.so<br>
2 complex.so<br>
3 c:/Ruby22-x64/lib/ruby/2.2.0/x64-mingw32/enc/encdb.so<br>
4 c:/Ruby22-x64/lib/ruby/2.2.0/x64-mingw32/enc/trans/transdb.so<br>
5 c:/Ruby22-x64/lib/ruby/2.2.0/x64-mingw32/enc/iso_8859_1.so<br>
6 c:/Ruby22-x64/lib/ruby/2.2.0/unicode_normalize.rb<br>
7 c:/Ruby22-x64/lib/ruby/2.2.0/x64-mingw32/rbconfig.rb<br>
8 c:/Ruby22-x64/lib/ruby/site_ruby/2.2.0/rubygems/compatibility.rb<br>
9 c:/Ruby22-x64/lib/ruby/site_ruby/2.2.0/rubygems/defaults.rb<br>
10 c:/Ruby22-x64/lib/ruby/site_ruby/2.2.0/rubygems/deprecate.rb<br>
11 c:/Ruby22-x64/lib/ruby/site_ruby/2.2.0/rubygems/errors.rb<br>
12 c:/Ruby22-x64/lib/ruby/site_ruby/2.2.0/rubygems/version.rb<br>
13 c:/Ruby22-x64/lib/ruby/site_ruby/2.2.0/rubygems/requirement.rb<br>
14 c:/Ruby22-x64/lib/ruby/site_ruby/2.2.0/rubygems/platform.rb<br>
15 c:/Ruby22-x64/lib/ruby/site_ruby/2.2.0/rubygems/basic_specification.rb<br>
16 c:/Ruby22-x64/lib/ruby/site_ruby/2.2.0/rubygems/stub_specification.rb<br>
17 c:/Ruby22-x64/lib/ruby/site_ruby/2.2.0/rubygems/util/stringio.rb<br>
18 c:/Ruby22-x64/lib/ruby/site_ruby/2.2.0/rubygems/specification.rb<br>
19 c:/Ruby22-x64/lib/ruby/site_ruby/2.2.0/rubygems/exceptions.rb<br>
20 c:/Ruby22-x64/lib/ruby/site_ruby/2.2.0/rubygems/defaults/operating_system.rb<br>
21 c:/Ruby22-x64/lib/ruby/site_ruby/2.2.0/rubygems/core_ext/kernel_gem.rb<br>
22 thread.rb<br>
23 c:/Ruby22-x64/lib/ruby/2.2.0/x64-mingw32/thread.so<br>
24 c:/Ruby22-x64/lib/ruby/2.2.0/monitor.rb<br>
25 c:/Ruby22-x64/lib/ruby/site_ruby/2.2.0/rubygems/core_ext/kernel_require.rb<br>
26 c:/Ruby22-x64/lib/ruby/site_ruby/2.2.0/rubygems.rb<br>
27 c:/Ruby22-x64/lib/ruby/site_ruby/2.2.0/rubygems/path_support.rb<br>
28 c:/Ruby22-x64/lib/ruby/site_ruby/2.2.0/rubygems/dependency.rb<br>
29 c:/Ruby22-x64/lib/ruby/2.2.0/x64-mingw32/pathname.so<br>
30 c:/Ruby22-x64/lib/ruby/2.2.0/pathname.rb<br>
31 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/bundler-1.10.4/lib/bundler/constants.rb<br>
32 c:/Ruby22-x64/lib/ruby/2.2.0/x64-mingw32/io/console.so<br>
33 c:/Ruby22-x64/lib/ruby/site_ruby/2.2.0/rubygems/user_interaction.rb<br>
34 c:/Ruby22-x64/lib/ruby/2.2.0/x64-mingw32/etc.so<br>
35 c:/Ruby22-x64/lib/ruby/site_ruby/2.2.0/rubygems/config_file.rb<br>
36 c:/Ruby22-x64/lib/ruby/site_ruby/2.2.0/rubygems/ext/build_error.rb<br>
37 c:/Ruby22-x64/lib/ruby/site_ruby/2.2.0/rubygems/ext/builder.rb<br>
38 c:/Ruby22-x64/lib/ruby/site_ruby/2.2.0/rubygems/ext/configure_builder.rb<br>
39 c:/Ruby22-x64/lib/ruby/2.2.0/fileutils.rb<br>
40 c:/Ruby22-x64/lib/ruby/2.2.0/delegate.rb<br>
41 c:/Ruby22-x64/lib/ruby/2.2.0/tmpdir.rb<br>
42 c:/Ruby22-x64/lib/ruby/2.2.0/tempfile.rb<br>
43 c:/Ruby22-x64/lib/ruby/site_ruby/2.2.0/rubygems/ext/ext_conf_builder.rb<br>
44 c:/Ruby22-x64/lib/ruby/site_ruby/2.2.0/rubygems/ext/rake_builder.rb<br>
45 c:/Ruby22-x64/lib/ruby/2.2.0/optparse.rb<br>
46 c:/Ruby22-x64/lib/ruby/site_ruby/2.2.0/rubygems/command.rb<br>
47 c:/Ruby22-x64/lib/ruby/site_ruby/2.2.0/rubygems/ext/cmake_builder.rb<br>
48 c:/Ruby22-x64/lib/ruby/site_ruby/2.2.0/rubygems/ext.rb<br>
49 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/bundler-1.10.4/lib/bundler/rubygems_integration.rb<br>
50 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/bundler-1.10.4/lib/bundler/current_ruby.rb<br>
51 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/bundler-1.10.4/lib/bundler/shared_helpers.rb<br>
52 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/bundler-1.10.4/lib/bundler/gem_path_manipulation.rb<br>
53 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/bundler-1.10.4/lib/bundler/gem_helpers.rb<br>
54 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/bundler-1.10.4/lib/bundler/match_platform.rb<br>
55 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/bundler-1.10.4/lib/bundler/rubygems_ext.rb<br>
56 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/bundler-1.10.4/lib/bundler/version.rb<br>
57 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/bundler-1.10.4/lib/bundler.rb<br>
58 c:/Ruby22-x64/lib/ruby/2.2.0/uri/rfc2396_parser.rb<br>
59 c:/Ruby22-x64/lib/ruby/2.2.0/uri/rfc3986_parser.rb<br>
60 c:/Ruby22-x64/lib/ruby/2.2.0/uri/common.rb<br>
61 c:/Ruby22-x64/lib/ruby/2.2.0/uri/generic.rb<br>
62 c:/Ruby22-x64/lib/ruby/2.2.0/uri/ftp.rb<br>
63 c:/Ruby22-x64/lib/ruby/2.2.0/uri/http.rb<br>
64 c:/Ruby22-x64/lib/ruby/2.2.0/uri/https.rb<br>
65 c:/Ruby22-x64/lib/ruby/2.2.0/uri/ldap.rb<br>
66 c:/Ruby22-x64/lib/ruby/2.2.0/uri/ldaps.rb<br>
67 c:/Ruby22-x64/lib/ruby/2.2.0/uri/mailto.rb<br>
68 c:/Ruby22-x64/lib/ruby/2.2.0/uri.rb<br>
69 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/bundler-1.10.4/lib/bundler/settings.rb<br>
70 c:/Ruby22-x64/lib/ruby/2.2.0/x64-mingw32/strscan.so<br>
71 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/bundler-1.10.4/lib/bundler/source.rb<br>
72 c:/Ruby22-x64/lib/ruby/2.2.0/x64-mingw32/digest.so<br>
73 c:/Ruby22-x64/lib/ruby/2.2.0/digest.rb<br>
74 c:/Ruby22-x64/lib/ruby/2.2.0/x64-mingw32/digest/sha1.so<br>
75 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/bundler-1.10.4/lib/bundler/source/path.rb<br>
76 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/bundler-1.10.4/lib/bundler/source/git.rb<br>
77 c:/Ruby22-x64/lib/ruby/2.2.0/x64-mingw32/socket.so<br>
78 c:/Ruby22-x64/lib/ruby/2.2.0/socket.rb<br>
79 c:/Ruby22-x64/lib/ruby/2.2.0/timeout.rb<br>
80 c:/Ruby22-x64/lib/ruby/2.2.0/net/protocol.rb<br>
81 c:/Ruby22-x64/lib/ruby/2.2.0/x64-mingw32/zlib.so<br>
82 c:/Ruby22-x64/lib/ruby/2.2.0/x64-mingw32/stringio.so<br>
83 c:/Ruby22-x64/lib/ruby/2.2.0/net/http/exceptions.rb<br>
84 c:/Ruby22-x64/lib/ruby/2.2.0/net/http/header.rb<br>
85 c:/Ruby22-x64/lib/ruby/2.2.0/x64-mingw32/enc/windows_31j.so<br>
86 c:/Ruby22-x64/lib/ruby/2.2.0/net/http/generic_request.rb<br>
87 c:/Ruby22-x64/lib/ruby/2.2.0/net/http/request.rb<br>
88 c:/Ruby22-x64/lib/ruby/2.2.0/net/http/requests.rb<br>
89 c:/Ruby22-x64/lib/ruby/2.2.0/net/http/response.rb<br>
90 c:/Ruby22-x64/lib/ruby/2.2.0/net/http/responses.rb<br>
91 c:/Ruby22-x64/lib/ruby/2.2.0/net/http/proxy_delta.rb<br>
92 c:/Ruby22-x64/lib/ruby/2.2.0/net/http/backward.rb<br>
93 c:/Ruby22-x64/lib/ruby/2.2.0/net/http.rb<br>
94 c:/Ruby22-x64/lib/ruby/2.2.0/x64-mingw32/date_core.so<br>
95 c:/Ruby22-x64/lib/ruby/2.2.0/date.rb<br>
96 c:/Ruby22-x64/lib/ruby/2.2.0/time.rb<br>
97 c:/Ruby22-x64/lib/ruby/site_ruby/2.2.0/rubygems/request.rb<br>
98 c:/Ruby22-x64/lib/ruby/2.2.0/cgi/core.rb<br>
99 c:/Ruby22-x64/lib/ruby/2.2.0/cgi/util.rb<br>
100 c:/Ruby22-x64/lib/ruby/2.2.0/cgi/cookie.rb<br>
101 c:/Ruby22-x64/lib/ruby/2.2.0/cgi.rb<br>
102 c:/Ruby22-x64/lib/ruby/site_ruby/2.2.0/rubygems/uri_formatter.rb<br>
103 c:/Ruby22-x64/lib/ruby/2.2.0/x64-mingw32/openssl.so<br>
104 c:/Ruby22-x64/lib/ruby/2.2.0/openssl/bn.rb<br>
105 c:/Ruby22-x64/lib/ruby/2.2.0/openssl/cipher.rb<br>
106 c:/Ruby22-x64/lib/ruby/2.2.0/openssl/config.rb<br>
107 c:/Ruby22-x64/lib/ruby/2.2.0/openssl/digest.rb<br>
108 c:/Ruby22-x64/lib/ruby/2.2.0/openssl/x509.rb<br>
109 c:/Ruby22-x64/lib/ruby/2.2.0/openssl/buffering.rb<br>
110 c:/Ruby22-x64/lib/ruby/2.2.0/x64-mingw32/fcntl.so<br>
111 c:/Ruby22-x64/lib/ruby/2.2.0/openssl/ssl.rb<br>
112 c:/Ruby22-x64/lib/ruby/2.2.0/openssl.rb<br>
113 c:/Ruby22-x64/lib/ruby/2.2.0/securerandom.rb<br>
114 c:/Ruby22-x64/lib/ruby/2.2.0/x64-mingw32/fiddle.so<br>
115 c:/Ruby22-x64/lib/ruby/2.2.0/fiddle/function.rb<br>
116 c:/Ruby22-x64/lib/ruby/2.2.0/fiddle/closure.rb<br>
117 c:/Ruby22-x64/lib/ruby/2.2.0/fiddle.rb<br>
118 c:/Ruby22-x64/lib/ruby/2.2.0/fiddle/value.rb<br>
119 c:/Ruby22-x64/lib/ruby/2.2.0/fiddle/pack.rb<br>
120 c:/Ruby22-x64/lib/ruby/2.2.0/fiddle/struct.rb<br>
121 c:/Ruby22-x64/lib/ruby/2.2.0/fiddle/cparser.rb<br>
122 c:/Ruby22-x64/lib/ruby/2.2.0/fiddle/import.rb<br>
123 c:/Ruby22-x64/lib/ruby/2.2.0/win32/importer.rb<br>
124 c:/Ruby22-x64/lib/ruby/2.2.0/x64-mingw32/enc/utf_16le.so<br>
125 c:/Ruby22-x64/lib/ruby/2.2.0/x64-mingw32/enc/trans/utf_16_32.so<br>
126 c:/Ruby22-x64/lib/ruby/2.2.0/win32/registry.rb<br>
127 c:/Ruby22-x64/lib/ruby/2.2.0/win32/resolv.rb<br>
128 c:/Ruby22-x64/lib/ruby/2.2.0/resolv.rb<br>
129 c:/Ruby22-x64/lib/ruby/site_ruby/2.2.0/rubygems/remote_fetcher.rb<br>
130 c:/Ruby22-x64/lib/ruby/site_ruby/2.2.0/rubygems/text.rb<br>
131 c:/Ruby22-x64/lib/ruby/site_ruby/2.2.0/rubygems/name_tuple.rb<br>
132 c:/Ruby22-x64/lib/ruby/site_ruby/2.2.0/rubygems/spec_fetcher.rb<br>
133 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/bundler-1.10.4/lib/bundler/source/rubygems.rb<br>
134 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/bundler-1.10.4/lib/bundler/lockfile_parser.rb<br>
135 c:/Ruby22-x64/lib/ruby/2.2.0/set.rb<br>
136 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/bundler-1.10.4/lib/bundler/definition.rb<br>
137 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/bundler-1.10.4/lib/bundler/dependency.rb<br>
138 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/bundler-1.10.4/lib/bundler/ruby_dsl.rb<br>
139 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/bundler-1.10.4/lib/bundler/dsl.rb<br>
140 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/bundler-1.10.4/lib/bundler/source_list.rb<br>
141 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/bundler-1.10.4/lib/bundler/lazy_specification.rb<br>
142 c:/Ruby22-x64/lib/ruby/2.2.0/tsort.rb<br>
143 c:/Ruby22-x64/lib/ruby/2.2.0/forwardable.rb<br>
144 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/bundler-1.10.4/lib/bundler/spec_set.rb<br>
145 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/bundler-1.10.4/lib/bundler/environment.rb<br>
146 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/bundler-1.10.4/lib/bundler/runtime.rb<br>
147 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/bundler-1.10.4/lib/bundler/dep_proxy.rb<br>
148 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/bundler-1.10.4/lib/bundler/index.rb<br>
149 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/bundler-1.10.4/lib/bundler/remote_specification.rb<br>
150 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/bundler-1.10.4/lib/bundler/stub_specification.rb<br>
151 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/bundler-1.10.4/lib/bundler/endpoint_specification.rb<br>
152 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/bundler-1.10.4/lib/bundler/setup.rb<br>
153 C:/Users/uidj5532/Downloads/resdb.git/config/boot.rb<br>
154 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/thread_safe-0.3.3/lib/thread_safe/version.rb<br>
155 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/thread_safe-0.3.3/lib/thread_safe/synchronized_delegator.rb<br>
156 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/thread_safe-0.3.3/lib/thread_safe.rb<br>
157 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/activesupport-4.0.4/lib/active_support/core_ext/array/prepend_and_<br>
append.rb<br>
158 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/activesupport-4.0.4/lib/active_support/core_ext/hash/deep_merge.rb</p>
<p>159 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/activesupport-4.0.4/lib/active_support/core_ext/hash/except.rb<br>
160 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/activesupport-4.0.4/lib/active_support/core_ext/hash/slice.rb<br>
161 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/i18n-0.6.9/lib/i18n/version.rb<br>
162 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/i18n-0.6.9/lib/i18n/exceptions.rb<br>
163 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/i18n-0.6.9/lib/i18n/interpolate/ruby.rb<br>
164 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/i18n-0.6.9/lib/i18n.rb<br>
165 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/activesupport-4.0.4/lib/active_support/lazy_load_hooks.rb<br>
166 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/i18n-0.6.9/lib/i18n/config.rb<br>
167 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/activesupport-4.0.4/lib/active_support/i18n.rb<br>
168 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/thread_safe-0.3.3/lib/thread_safe/non_concurrent_cache_backend.rb<br>
169 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/thread_safe-0.3.3/lib/thread_safe/mri_cache_backend.rb<br>
170 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/thread_safe-0.3.3/lib/thread_safe/cache.rb<br>
171 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/activesupport-4.0.4/lib/active_support/inflector/inflections.rb<br>
172 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/activesupport-4.0.4/lib/active_support/inflections.rb<br>
173 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/activesupport-4.0.4/lib/active_support/inflector/methods.rb<br>
174 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/activesupport-4.0.4/lib/active_support/dependencies/autoload.rb<br>
175 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/activesupport-4.0.4/lib/active_support/version.rb<br>
176 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/activesupport-4.0.4/lib/active_support/core_ext/array/extract_opti<br>
ons.rb<br>
177 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/activesupport-4.0.4/lib/active_support/core_ext/class/attribute_ac<br>
cessors.rb<br>
178 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/activesupport-4.0.4/lib/active_support/concern.rb<br>
179 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/activesupport-4.0.4/lib/active_support/logger_silence.rb<br>
180 c:/Ruby22-x64/lib/ruby/2.2.0/logger.rb<br>
181 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/activesupport-4.0.4/lib/active_support/logger.rb<br>
182 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/activesupport-4.0.4/lib/active_support.rb<br>
183 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/activesupport-4.0.4/lib/active_support/core_ext/object/blank.rb<br>
184 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/activesupport-4.0.4/lib/active_support/core_ext/kernel/singleton_c<br>
lass.rb<br>
185 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/activesupport-4.0.4/lib/active_support/core_ext/module/remove_meth<br>
od.rb<br>
186 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/activesupport-4.0.4/lib/active_support/core_ext/class/attribute.rb</p>
<p>187 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/activesupport-4.0.4/lib/active_support/core_ext/module/delegation.<br>
rb<br>
188 c:/Ruby22-x64/lib/ruby/2.2.0/singleton.rb<br>
189 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/activesupport-4.0.4/lib/active_support/deprecation/instance_delega<br>
tor.rb<br>
190 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/activesupport-4.0.4/lib/active_support/notifications/instrumenter.<br>
rb<br>
191 c:/Ruby22-x64/lib/ruby/2.2.0/mutex_m.rb<br>
192 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/activesupport-4.0.4/lib/active_support/notifications/fanout.rb<br>
193 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/activesupport-4.0.4/lib/active_support/per_thread_registry.rb<br>
194 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/activesupport-4.0.4/lib/active_support/notifications.rb<br>
195 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/activesupport-4.0.4/lib/active_support/deprecation/behaviors.rb<br>
196 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/activesupport-4.0.4/lib/active_support/deprecation/reporting.rb<br>
197 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/activesupport-4.0.4/lib/active_support/core_ext/module/aliasing.rb</p>
<p>198 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/activesupport-4.0.4/lib/active_support/deprecation/method_wrappers<br>
.rb<br>
199 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/activesupport-4.0.4/lib/active_support/deprecation/proxy_wrappers.<br>
rb<br>
200 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/activesupport-4.0.4/lib/active_support/core_ext/module/deprecation<br>
.rb<br>
201 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/activesupport-4.0.4/lib/active_support/deprecation.rb<br>
202 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/activesupport-4.0.4/lib/active_support/rails.rb<br>
203 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/activesupport-4.0.4/lib/active_support/core_ext/module/attribute_a<br>
ccessors.rb<br>
204 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/actionpack-4.0.4/lib/action_pack/version.rb<br>
205 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/actionpack-4.0.4/lib/action_pack.rb<br>
206 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/rack-1.5.2/lib/rack/multipart.rb<br>
207 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/rack-1.5.2/lib/rack/utils.rb<br>
208 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/rack-1.5.2/lib/rack.rb<br>
209 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/actionpack-4.0.4/lib/action_dispatch.rb<br>
210 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/rack-1.5.2/lib/rack/server.rb<br>
211 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/railties-4.0.4/lib/rails/commands/server.rb<br>
212 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/railties-4.0.4/lib/rails/ruby_version_check.rb<br>
213 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/activesupport-4.0.4/lib/active_support/core_ext/kernel/reporting.r<br>
b<br>
214 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/activesupport-4.0.4/lib/active_support/key_generator.rb<br>
215 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/railties-4.0.4/lib/rails/initializable.rb<br>
216 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/activesupport-4.0.4/lib/active_support/ordered_options.rb<br>
217 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/activesupport-4.0.4/lib/active_support/core_ext/object/acts_like.r<br>
b<br>
218 c:/Ruby22-x64/lib/ruby/2.2.0/x64-mingw32/bigdecimal.so<br>
219 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/activesupport-4.0.4/lib/active_support/core_ext/object/duplicable.<br>
rb<br>
220 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/activesupport-4.0.4/lib/active_support/core_ext/object/deep_dup.rb</p>
<p>221 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/activesupport-4.0.4/lib/active_support/core_ext/object/try.rb<br>
222 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/activesupport-4.0.4/lib/active_support/core_ext/object/inclusion.r<br>
b<br>
223 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/activesupport-4.0.4/lib/active_support/core_ext/object/to_param.rb</p>
<p>224 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/activesupport-4.0.4/lib/active_support/core_ext/object/to_query.rb</p>
<p>225 c:/Ruby22-x64/lib/ruby/2.2.0/base64.rb<br>
226 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/activesupport-4.0.4/lib/active_support/multibyte.rb<br>
227 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/activesupport-4.0.4/lib/active_support/core_ext/string/multibyte.r<br>
b<br>
228 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/activesupport-4.0.4/lib/active_support/inflector/transliterate.rb<br>
229 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/activesupport-4.0.4/lib/active_support/core_ext/string/inflections<br>
.rb<br>
230 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/activesupport-4.0.4/lib/active_support/core_ext/date_time/calculat<br>
ions.rb<br>
231 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/activesupport-4.0.4/lib/active_support/xml_mini/rexml.rb<br>
232 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/activesupport-4.0.4/lib/active_support/xml_mini.rb<br>
233 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/activesupport-4.0.4/lib/active_support/core_ext/hash/keys.rb<br>
234 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/activesupport-4.0.4/lib/active_support/core_ext/array/conversions.<br>
rb<br>
235 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/activesupport-4.0.4/lib/active_support/core_ext/time/acts_like.rb<br>
236 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/activesupport-4.0.4/lib/active_support/proxy_object.rb<br>
237 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/activesupport-4.0.4/lib/active_support/duration.rb<br>
238 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/activesupport-4.0.4/lib/active_support/values/time_zone.rb<br>
239 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/activesupport-4.0.4/lib/active_support/core_ext/time/conversions.r<br>
b<br>
240 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/activesupport-4.0.4/lib/active_support/time_with_zone.rb<br>
241 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/activesupport-4.0.4/lib/active_support/core_ext/time/zones.rb<br>
242 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/activesupport-4.0.4/lib/active_support/core_ext/date_and_time/calc<br>
ulations.rb<br>
243 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/activesupport-4.0.4/lib/active_support/core_ext/time/calculations.<br>
rb<br>
244 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/activesupport-4.0.4/lib/active_support/core_ext/time/marshal.rb<br>
245 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/activesupport-4.0.4/lib/active_support/core_ext/time.rb<br>
246 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/activesupport-4.0.4/lib/active_support/core_ext/date/acts_like.rb<br>
247 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/activesupport-4.0.4/lib/active_support/core_ext/date/zones.rb<br>
248 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/activesupport-4.0.4/lib/active_support/core_ext/date/calculations.<br>
rb<br>
249 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/activesupport-4.0.4/lib/active_support/core_ext/date/conversions.r<br>
b<br>
250 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/activesupport-4.0.4/lib/active_support/core_ext/date.rb<br>
251 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/activesupport-4.0.4/lib/active_support/core_ext/date_time/acts_lik<br>
e.rb<br>
252 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/activesupport-4.0.4/lib/active_support/core_ext/date_time/conversi<br>
ons.rb<br>
253 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/activesupport-4.0.4/lib/active_support/core_ext/date_time/zones.rb</p>
<p>254 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/activesupport-4.0.4/lib/active_support/core_ext/date_time.rb<br>
255 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/activesupport-4.0.4/lib/active_support/core_ext/numeric/time.rb<br>
256 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/activesupport-4.0.4/lib/active_support/core_ext/integer/time.rb<br>
257 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/activesupport-4.0.4/lib/active_support/core_ext/string/conversions<br>
.rb<br>
258 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/activesupport-4.0.4/lib/active_support/core_ext/string/zones.rb<br>
259 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/activesupport-4.0.4/lib/active_support/time.rb<br>
260 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/activesupport-4.0.4/lib/active_support/core_ext/array/wrap.rb<br>
261 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/activesupport-4.0.4/lib/active_support/core_ext/hash/reverse_merge<br>
.rb<br>
262 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/activesupport-4.0.4/lib/active_support/core_ext/hash/conversions.r<br>
b<br>
263 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/activesupport-4.0.4/lib/active_support/core_ext/object/conversions<br>
.rb<br>
264 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/activesupport-4.0.4/lib/active_support/core_ext/object/instance_va<br>
riables.rb<br>
265 c:/Ruby22-x64/lib/ruby/2.2.0/json/version.rb<br>
266 c:/Ruby22-x64/lib/ruby/2.2.0/ostruct.rb<br>
267 c:/Ruby22-x64/lib/ruby/2.2.0/json/generic_object.rb<br>
268 c:/Ruby22-x64/lib/ruby/2.2.0/json/common.rb<br>
269 c:/Ruby22-x64/lib/ruby/2.2.0/x64-mingw32/enc/utf_16be.so<br>
270 c:/Ruby22-x64/lib/ruby/2.2.0/x64-mingw32/enc/utf_32be.so<br>
271 c:/Ruby22-x64/lib/ruby/2.2.0/x64-mingw32/enc/utf_32le.so<br>
272 c:/Ruby22-x64/lib/ruby/2.2.0/x64-mingw32/json/ext/parser.so<br>
273 c:/Ruby22-x64/lib/ruby/2.2.0/x64-mingw32/json/ext/generator.so<br>
274 c:/Ruby22-x64/lib/ruby/2.2.0/json/ext.rb<br>
275 c:/Ruby22-x64/lib/ruby/2.2.0/json.rb<br>
276 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/activesupport-4.0.4/lib/active_support/core_ext/object/to_json.rb<br>
277 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/activesupport-4.0.4/lib/active_support/option_merger.rb<br>
278 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/activesupport-4.0.4/lib/active_support/core_ext/object/with_option<br>
s.rb<br>
279 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/activesupport-4.0.4/lib/active_support/core_ext/object.rb<br>
280 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/railties-4.0.4/lib/rails/paths.rb<br>
281 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/railties-4.0.4/lib/rails/rack.rb<br>
282 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/railties-4.0.4/lib/rails/configuration.rb<br>
283 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/activesupport-4.0.4/lib/active_support/inflector.rb<br>
284 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/activesupport-4.0.4/lib/active_support/core_ext/module/introspecti<br>
on.rb<br>
285 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/railties-4.0.4/lib/rails/railtie.rb<br>
286 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/railties-4.0.4/lib/rails/engine/railties.rb<br>
287 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/railties-4.0.4/lib/rails/engine.rb<br>
288 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/railties-4.0.4/lib/rails/application.rb<br>
289 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/railties-4.0.4/lib/rails/version.rb<br>
290 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/railties-4.0.4/lib/rails/deprecation.rb<br>
291 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/activesupport-4.0.4/lib/active_support/file_update_checker.rb<br>
292 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/railties-4.0.4/lib/rails/railtie/configurable.rb<br>
293 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/railties-4.0.4/lib/rails/railtie/configuration.rb<br>
294 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/activesupport-4.0.4/lib/active_support/i18n_railtie.rb<br>
295 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/activesupport-4.0.4/lib/active_support/railtie.rb<br>
296 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/actionpack-4.0.4/lib/action_dispatch/railtie.rb<br>
297 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/railties-4.0.4/lib/rails.rb<br>
298 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/activemodel-4.0.4/lib/active_model/version.rb<br>
299 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/activemodel-4.0.4/lib/active_model.rb<br>
300 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/arel-4.0.2/lib/arel/crud.rb<br>
301 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/arel-4.0.2/lib/arel/factory_methods.rb<br>
302 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/arel-4.0.2/lib/arel/expressions.rb<br>
303 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/arel-4.0.2/lib/arel/predications.rb<br>
304 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/arel-4.0.2/lib/arel/window_predications.rb<br>
305 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/arel-4.0.2/lib/arel/math.rb<br>
306 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/arel-4.0.2/lib/arel/alias_predication.rb<br>
307 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/arel-4.0.2/lib/arel/order_predications.rb<br>
308 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/arel-4.0.2/lib/arel/table.rb<br>
309 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/arel-4.0.2/lib/arel/attributes/attribute.rb<br>
310 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/arel-4.0.2/lib/arel/attributes.rb<br>
311 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/arel-4.0.2/lib/arel/compatibility/wheres.rb<br>
312 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/arel-4.0.2/lib/arel/expression.rb<br>
313 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/arel-4.0.2/lib/arel/visitors/visitor.rb<br>
314 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/arel-4.0.2/lib/arel/visitors/depth_first.rb<br>
315 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/arel-4.0.2/lib/arel/visitors/to_sql.rb<br>
316 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/arel-4.0.2/lib/arel/visitors/sqlite.rb<br>
317 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/arel-4.0.2/lib/arel/visitors/postgresql.rb<br>
318 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/arel-4.0.2/lib/arel/visitors/mysql.rb<br>
319 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/arel-4.0.2/lib/arel/visitors/mssql.rb<br>
320 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/arel-4.0.2/lib/arel/visitors/oracle.rb<br>
321 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/arel-4.0.2/lib/arel/visitors/join_sql.rb<br>
322 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/arel-4.0.2/lib/arel/visitors/where_sql.rb<br>
323 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/arel-4.0.2/lib/arel/visitors/order_clauses.rb<br>
324 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/arel-4.0.2/lib/arel/visitors/dot.rb<br>
325 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/arel-4.0.2/lib/arel/visitors/ibm_db.rb<br>
326 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/arel-4.0.2/lib/arel/visitors/informix.rb<br>
327 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/arel-4.0.2/lib/arel/visitors.rb<br>
328 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/arel-4.0.2/lib/arel/tree_manager.rb<br>
329 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/arel-4.0.2/lib/arel/insert_manager.rb<br>
330 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/arel-4.0.2/lib/arel/select_manager.rb<br>
331 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/arel-4.0.2/lib/arel/update_manager.rb<br>
332 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/arel-4.0.2/lib/arel/delete_manager.rb<br>
333 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/arel-4.0.2/lib/arel/nodes/node.rb<br>
334 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/arel-4.0.2/lib/arel/nodes/select_statement.rb<br>
335 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/arel-4.0.2/lib/arel/nodes/select_core.rb<br>
336 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/arel-4.0.2/lib/arel/nodes/insert_statement.rb<br>
337 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/arel-4.0.2/lib/arel/nodes/update_statement.rb<br>
338 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/arel-4.0.2/lib/arel/nodes/terminal.rb<br>
339 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/arel-4.0.2/lib/arel/nodes/true.rb<br>
340 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/arel-4.0.2/lib/arel/nodes/false.rb<br>
341 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/arel-4.0.2/lib/arel/nodes/unary.rb<br>
342 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/arel-4.0.2/lib/arel/nodes/grouping.rb<br>
343 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/arel-4.0.2/lib/arel/nodes/ascending.rb<br>
344 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/arel-4.0.2/lib/arel/nodes/descending.rb<br>
345 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/arel-4.0.2/lib/arel/nodes/unqualified_column.rb<br>
346 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/arel-4.0.2/lib/arel/nodes/with.rb<br>
347 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/arel-4.0.2/lib/arel/nodes/binary.rb<br>
348 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/arel-4.0.2/lib/arel/nodes/equality.rb<br>
349 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/arel-4.0.2/lib/arel/nodes/in.rb<br>
350 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/arel-4.0.2/lib/arel/nodes/join_source.rb<br>
351 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/arel-4.0.2/lib/arel/nodes/delete_statement.rb<br>
352 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/arel-4.0.2/lib/arel/nodes/table_alias.rb<br>
353 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/arel-4.0.2/lib/arel/nodes/infix_operation.rb<br>
354 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/arel-4.0.2/lib/arel/nodes/over.rb<br>
355 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/arel-4.0.2/lib/arel/nodes/and.rb<br>
356 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/arel-4.0.2/lib/arel/nodes/function.rb<br>
357 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/arel-4.0.2/lib/arel/nodes/count.rb<br>
358 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/arel-4.0.2/lib/arel/nodes/extract.rb<br>
359 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/arel-4.0.2/lib/arel/nodes/values.rb<br>
360 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/arel-4.0.2/lib/arel/nodes/named_function.rb<br>
361 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/arel-4.0.2/lib/arel/nodes/window.rb<br>
362 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/arel-4.0.2/lib/arel/nodes/inner_join.rb<br>
363 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/arel-4.0.2/lib/arel/nodes/outer_join.rb<br>
364 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/arel-4.0.2/lib/arel/nodes/string_join.rb<br>
365 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/arel-4.0.2/lib/arel/nodes/sql_literal.rb<br>
366 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/arel-4.0.2/lib/arel/nodes.rb<br>
367 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/arel-4.0.2/lib/arel/deprecated.rb<br>
368 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/arel-4.0.2/lib/arel/sql/engine.rb<br>
369 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/arel-4.0.2/lib/arel/sql_literal.rb<br>
370 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/arel-4.0.2/lib/arel.rb<br>
371 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/activerecord-deprecated_finders-1.0.3/lib/active_record/deprecated<br>
_finders/version.rb<br>
372 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/activerecord-deprecated_finders-1.0.3/lib/active_record/deprecated<br>
<em>finders.rb<br>
373 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/activerecord-4.0.4/lib/active_record/version.rb<br>
374 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/activesupport-4.0.4/lib/active_support/core_ext/enumerable.rb<br>
375 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/activemodel-4.0.4/lib/active_model/attribute_methods.rb<br>
376 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/activerecord-4.0.4/lib/active_record/attribute_methods.rb<br>
377 c:/Ruby22-x64/lib/ruby/2.2.0/bigdecimal/util.rb<br>
378 c:/Ruby22-x64/lib/ruby/2.2.0/benchmark.rb<br>
379 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/activesupport-4.0.4/lib/active_support/core_ext/benchmark.rb<br>
380 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/activerecord-4.0.4/lib/active_record/connection_adapters/schema_ca<br>
che.rb<br>
381 c:/Ruby22-x64/lib/ruby/2.2.0/ipaddr.rb<br>
382 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/activerecord-4.0.4/lib/active_record/connection_adapters/abstract/<br>
schema_dumper.rb<br>
383 c:/Ruby22-x64/lib/ruby/2.2.0/psych/exception.rb<br>
384 c:/Ruby22-x64/lib/ruby/2.2.0/psych/syntax_error.rb<br>
385 c:/Ruby22-x64/lib/ruby/2.2.0/x64-mingw32/psych.so<br>
386 c:/Ruby22-x64/lib/ruby/2.2.0/psych/omap.rb<br>
387 c:/Ruby22-x64/lib/ruby/2.2.0/psych/set.rb<br>
388 c:/Ruby22-x64/lib/ruby/2.2.0/psych/class_loader.rb<br>
389 c:/Ruby22-x64/lib/ruby/2.2.0/psych/scalar_scanner.rb<br>
390 c:/Ruby22-x64/lib/ruby/2.2.0/psych/nodes/node.rb<br>
391 c:/Ruby22-x64/lib/ruby/2.2.0/psych/nodes/stream.rb<br>
392 c:/Ruby22-x64/lib/ruby/2.2.0/psych/nodes/document.rb<br>
393 c:/Ruby22-x64/lib/ruby/2.2.0/psych/nodes/sequence.rb<br>
394 c:/Ruby22-x64/lib/ruby/2.2.0/psych/nodes/scalar.rb<br>
395 c:/Ruby22-x64/lib/ruby/2.2.0/psych/nodes/mapping.rb<br>
396 c:/Ruby22-x64/lib/ruby/2.2.0/psych/nodes/alias.rb<br>
397 c:/Ruby22-x64/lib/ruby/2.2.0/psych/nodes.rb<br>
398 c:/Ruby22-x64/lib/ruby/2.2.0/psych/streaming.rb<br>
399 c:/Ruby22-x64/lib/ruby/2.2.0/psych/visitors/visitor.rb<br>
400 c:/Ruby22-x64/lib/ruby/2.2.0/psych/visitors/to_ruby.rb<br>
401 c:/Ruby22-x64/lib/ruby/2.2.0/psych/visitors/emitter.rb<br>
402 c:/Ruby22-x64/lib/ruby/2.2.0/psych/handler.rb<br>
403 c:/Ruby22-x64/lib/ruby/2.2.0/psych/tree_builder.rb<br>
404 c:/Ruby22-x64/lib/ruby/2.2.0/psych/visitors/yaml_tree.rb<br>
405 c:/Ruby22-x64/lib/ruby/2.2.0/psych/json/ruby_events.rb<br>
406 c:/Ruby22-x64/lib/ruby/2.2.0/psych/visitors/json_tree.rb<br>
407 c:/Ruby22-x64/lib/ruby/2.2.0/psych/visitors/depth_first.rb<br>
408 c:/Ruby22-x64/lib/ruby/2.2.0/psych/visitors.rb<br>
409 c:/Ruby22-x64/lib/ruby/2.2.0/psych/parser.rb<br>
410 c:/Ruby22-x64/lib/ruby/2.2.0/psych/coder.rb<br>
411 c:/Ruby22-x64/lib/ruby/2.2.0/psych/core_ext.rb<br>
412 c:/Ruby22-x64/lib/ruby/2.2.0/psych/deprecated.rb<br>
413 c:/Ruby22-x64/lib/ruby/2.2.0/psych/stream.rb<br>
414 c:/Ruby22-x64/lib/ruby/2.2.0/psych/json/yaml_events.rb<br>
415 c:/Ruby22-x64/lib/ruby/2.2.0/psych/json/tree_builder.rb<br>
416 c:/Ruby22-x64/lib/ruby/2.2.0/psych/json/stream.rb<br>
417 c:/Ruby22-x64/lib/ruby/2.2.0/psych/handlers/document_stream.rb<br>
418 c:/Ruby22-x64/lib/ruby/2.2.0/psych.rb<br>
419 c:/Ruby22-x64/lib/ruby/2.2.0/yaml.rb<br>
420 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/activesupport-4.0.4/lib/active_support/core_ext/big_decimal/conver<br>
sions.rb<br>
421 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/activerecord-4.0.4/lib/active_record/connection_adapters/abstract/<br>
quoting.rb<br>
422 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/activerecord-4.0.4/lib/active_record/connection_adapters/abstract/<br>
database_statements.rb<br>
423 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/activerecord-4.0.4/lib/active_record/errors.rb<br>
424 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/activerecord-4.0.4/lib/active_record/migration.rb<br>
425 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/activerecord-4.0.4/lib/active_record/migration/join_table.rb<br>
426 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/activerecord-4.0.4/lib/active_record/connection_adapters/abstract/<br>
schema_statements.rb<br>
427 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/activerecord-4.0.4/lib/active_record/connection_adapters/abstract/<br>
database_limits.rb<br>
428 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/activerecord-4.0.4/lib/active_record/connection_adapters/abstract/<br>
query_cache.rb<br>
429 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/activesupport-4.0.4/lib/active_support/descendants_tracker.rb<br>
430 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/activesupport-4.0.4/lib/active_support/callbacks.rb<br>
431 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/activerecord-4.0.4/lib/active_record/connection_adapters/abstract</em><br>
adapter.rb<br>
432 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/activerecord-4.0.4/lib/active_record/scoping.rb<br>
433 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/activerecord-4.0.4/lib/active_record.rb<br>
434 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/activemodel-4.0.4/lib/active_model/railtie.rb<br>
435 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/activesupport-4.0.4/lib/active_support/core_ext/module/attr_intern<br>
al.rb<br>
436 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/activesupport-4.0.4/lib/active_support/core_ext/module/anonymous.r<br>
b<br>
437 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/actionpack-4.0.4/lib/abstract_controller.rb<br>
438 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/rack-1.5.2/lib/rack/request.rb<br>
439 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/rack-1.5.2/lib/rack/response.rb<br>
440 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/actionpack-4.0.4/lib/action_dispatch/http/filter_redirect.rb<br>
441 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/actionpack-4.0.4/lib/action_dispatch/http/cache.rb<br>
442 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/actionpack-4.0.4/lib/action_dispatch/http/response.rb<br>
443 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/actionpack-4.0.4/lib/action_controller/metal/live.rb<br>
444 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/activesupport-4.0.4/lib/active_support/hash_with_indifferent_acces<br>
s.rb<br>
445 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/activesupport-4.0.4/lib/active_support/core_ext/hash/indifferent_a<br>
ccess.rb<br>
446 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/activesupport-4.0.4/lib/active_support/rescuable.rb<br>
447 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/actionpack-4.0.4/lib/action_dispatch/http/upload.rb<br>
448 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/rack-test-0.6.2/lib/rack/mock_session.rb<br>
449 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/rack-test-0.6.2/lib/rack/test/cookie_jar.rb<br>
450 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/rack-test-0.6.2/lib/rack/test/mock_digest_request.rb<br>
451 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/rack-test-0.6.2/lib/rack/test/utils.rb<br>
452 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/rack-test-0.6.2/lib/rack/test/methods.rb<br>
453 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/rack-test-0.6.2/lib/rack/test/uploaded_file.rb<br>
454 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/rack-test-0.6.2/lib/rack/test.rb<br>
455 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/actionpack-4.0.4/lib/action_controller/metal/strong_parameters.rb<br>
456 c:/Ruby22-x64/lib/ruby/2.2.0/erb.rb<br>
457 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/activesupport-4.0.4/lib/active_support/core_ext/string/output_safe<br>
ty.rb<br>
458 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/actionpack-4.0.4/lib/action_view.rb<br>
459 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/actionpack-4.0.4/lib/action_view/vendor/html-scanner.rb<br>
460 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/activesupport-4.0.4/lib/active_support/core_ext/load_error.rb<br>
461 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/activesupport-4.0.4/lib/active_support/core_ext/name_error.rb<br>
462 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/activesupport-4.0.4/lib/active_support/core_ext/uri.rb<br>
463 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/actionpack-4.0.4/lib/action_controller.rb<br>
464 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/actionpack-4.0.4/lib/action_view/railtie.rb<br>
465 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/actionpack-4.0.4/lib/abstract_controller/railties/routes_helpers.r<br>
b<br>
466 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/actionpack-4.0.4/lib/action_controller/railties/helpers.rb<br>
467 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/actionpack-4.0.4/lib/action_controller/railtie.rb<br>
468 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/activerecord-4.0.4/lib/active_record/railtie.rb<br>
469 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/actionmailer-4.0.4/lib/action_mailer/version.rb<br>
470 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/activesupport-4.0.4/lib/active_support/core_ext/class/delegating_a<br>
ttributes.rb<br>
471 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/activesupport-4.0.4/lib/active_support/core_ext/module/reachable.r<br>
b<br>
472 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/activesupport-4.0.4/lib/active_support/core_ext/class/subclasses.r<br>
b<br>
473 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/activesupport-4.0.4/lib/active_support/core_ext/class.rb<br>
474 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/actionmailer-4.0.4/lib/action_mailer.rb<br>
475 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/actionmailer-4.0.4/lib/action_mailer/railtie.rb<br>
476 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/railties-4.0.4/lib/rails/test_unit/railtie.rb<br>
477 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/sprockets-2.11.0/lib/sprockets/version.rb<br>
478 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/hike-1.2.3/lib/hike.rb<br>
479 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/tilt-1.4.1/lib/tilt/template.rb<br>
480 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/tilt-1.4.1/lib/tilt/string.rb<br>
481 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/tilt-1.4.1/lib/tilt/erb.rb<br>
482 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/tilt-1.4.1/lib/tilt/etanni.rb<br>
483 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/tilt-1.4.1/lib/tilt/haml.rb<br>
484 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/tilt-1.4.1/lib/tilt/css.rb<br>
485 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/tilt-1.4.1/lib/tilt/csv.rb<br>
486 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/tilt-1.4.1/lib/tilt/coffee.rb<br>
487 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/tilt-1.4.1/lib/tilt/nokogiri.rb<br>
488 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/tilt-1.4.1/lib/tilt/builder.rb<br>
489 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/tilt-1.4.1/lib/tilt/markaby.rb<br>
490 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/tilt-1.4.1/lib/tilt/liquid.rb<br>
491 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/tilt-1.4.1/lib/tilt/radius.rb<br>
492 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/tilt-1.4.1/lib/tilt/markdown.rb<br>
493 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/tilt-1.4.1/lib/tilt/textile.rb<br>
494 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/tilt-1.4.1/lib/tilt/rdoc.rb<br>
495 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/tilt-1.4.1/lib/tilt/wiki.rb<br>
496 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/tilt-1.4.1/lib/tilt/yajl.rb<br>
497 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/tilt-1.4.1/lib/tilt/asciidoc.rb<br>
498 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/tilt-1.4.1/lib/tilt/plain.rb<br>
499 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/tilt-1.4.1/lib/tilt.rb<br>
500 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/sprockets-2.11.0/lib/sprockets/eco_template.rb<br>
501 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/sprockets-2.11.0/lib/sprockets/ejs_template.rb<br>
502 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/sprockets-2.11.0/lib/sprockets/jst_processor.rb<br>
503 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/sprockets-2.11.0/lib/sprockets/utils.rb<br>
504 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/sprockets-2.11.0/lib/sprockets/engines.rb<br>
505 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/rack-1.5.2/lib/rack/mime.rb<br>
506 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/sprockets-2.11.0/lib/sprockets/mime.rb<br>
507 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/sprockets-2.11.0/lib/sprockets/processor.rb<br>
508 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/sprockets-2.11.0/lib/sprockets/processing.rb<br>
509 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/sprockets-2.11.0/lib/sprockets/compressing.rb<br>
510 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/sprockets-2.11.0/lib/sprockets/paths.rb<br>
511 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/hike-1.2.3/lib/hike/normalized_array.rb<br>
512 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/hike-1.2.3/lib/hike/extensions.rb<br>
513 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/hike-1.2.3/lib/hike/index.rb<br>
514 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/hike-1.2.3/lib/hike/paths.rb<br>
515 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/hike-1.2.3/lib/hike/trail.rb<br>
516 c:/Ruby22-x64/lib/ruby/2.2.0/shellwords.rb<br>
517 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/sprockets-2.11.0/lib/sprockets/directive_processor.rb<br>
518 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/sprockets-2.11.0/lib/sprockets/safety_colons.rb<br>
519 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/sprockets-2.11.0/lib/sprockets/charset_normalizer.rb<br>
520 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/sprockets-2.11.0/lib/sprockets/sass_compressor.rb<br>
521 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/sprockets-2.11.0/lib/sprockets/yui_compressor.rb<br>
522 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/sprockets-2.11.0/lib/sprockets/closure_compressor.rb<br>
523 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/sprockets-2.11.0/lib/sprockets/uglifier_compressor.rb<br>
524 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/sprockets-2.11.0/lib/sprockets/sass_template.rb<br>
525 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/sprockets-2.11.0/lib/sprockets/scss_template.rb<br>
526 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/sprockets-2.11.0/lib/sprockets.rb<br>
527 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/activesupport-4.0.4/lib/active_support/benchmarkable.rb<br>
528 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/actionpack-4.0.4/lib/action_view/helpers/active_model_helper.rb<br>
529 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/actionpack-4.0.4/lib/action_view/helpers/asset_url_helper.rb<br>
530 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/actionpack-4.0.4/lib/action_view/helpers/capture_helper.rb<br>
531 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/actionpack-4.0.4/lib/action_view/helpers/tag_helper.rb<br>
532 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/actionpack-4.0.4/lib/action_view/helpers/asset_tag_helper.rb<br>
533 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/actionpack-4.0.4/lib/action_view/helpers/atom_feed_helper.rb<br>
534 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/actionpack-4.0.4/lib/action_view/helpers/cache_helper.rb<br>
535 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/actionpack-4.0.4/lib/action_view/helpers/controller_helper.rb<br>
536 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/actionpack-4.0.4/lib/action_view/helpers/csrf_helper.rb<br>
537 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/actionpack-4.0.4/lib/action_view/helpers/date_helper.rb<br>
538 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/actionpack-4.0.4/lib/action_view/helpers/debug_helper.rb<br>
539 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/actionpack-4.0.4/lib/action_view/helpers/javascript_helper.rb<br>
540 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/activesupport-4.0.4/lib/active_support/core_ext/array/access.rb<br>
541 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/actionpack-4.0.4/lib/action_view/helpers/url_helper.rb<br>
542 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/activesupport-4.0.4/lib/active_support/core_ext/string/filters.rb<br>
543 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/actionpack-4.0.4/lib/action_view/helpers/sanitize_helper.rb<br>
544 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/actionpack-4.0.4/lib/action_view/helpers/output_safety_helper.rb<br>
545 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/actionpack-4.0.4/lib/action_view/helpers/text_helper.rb<br>
546 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/actionpack-4.0.4/lib/action_view/helpers/form_tag_helper.rb<br>
547 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/actionpack-4.0.4/lib/action_view/helpers/tags.rb<br>
548 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/actionpack-4.0.4/lib/action_view/model_naming.rb<br>
549 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/actionpack-4.0.4/lib/action_view/helpers/form_helper.rb<br>
550 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/actionpack-4.0.4/lib/action_view/helpers/form_options_helper.rb<br>
551 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/activesupport-4.0.4/lib/active_support/number_helper.rb<br>
552 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/actionpack-4.0.4/lib/action_view/helpers/number_helper.rb<br>
553 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/activesupport-4.0.4/lib/active_support/core_ext/module/qualified_c<br>
onst.rb<br>
554 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/activesupport-4.0.4/lib/active_support/core_ext/module.rb<br>
555 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/actionpack-4.0.4/lib/action_view/record_identifier.rb<br>
556 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/actionpack-4.0.4/lib/action_view/helpers/record_tag_helper.rb<br>
557 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/actionpack-4.0.4/lib/action_view/helpers/rendering_helper.rb<br>
558 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/actionpack-4.0.4/lib/action_view/helpers/translation_helper.rb<br>
559 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/actionpack-4.0.4/lib/action_view/helpers.rb<br>
560 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/sprockets-rails-2.0.1/lib/sprockets/rails/helper.rb<br>
561 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/railties-4.0.4/lib/rails/engine/configuration.rb<br>
562 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/railties-4.0.4/lib/rails/application/configuration.rb<br>
563 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/sprockets-rails-2.0.1/lib/sprockets/railtie.rb<br>
564 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/railties-4.0.4/lib/rails/all.rb<br>
565 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/activesupport-4.0.4/lib/active_support/string_inquirer.rb<br>
566 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/sass-rails-4.0.3/lib/sass/rails/version.rb<br>
567 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/sass-3.2.19/lib/sass/root.rb<br>
568 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/sass-3.2.19/lib/sass/util/subset_map.rb<br>
569 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/sass-3.2.19/lib/sass/util/multibyte_string_scanner.rb<br>
570 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/sass-3.2.19/lib/sass/util.rb<br>
571 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/sass-3.2.19/lib/sass/version.rb<br>
572 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/sass-3.2.19/lib/sass/logger/log_level.rb<br>
573 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/sass-3.2.19/lib/sass/logger/base.rb<br>
574 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/sass-3.2.19/lib/sass/logger.rb<br>
575 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/sass-3.2.19/lib/sass/cache_stores/base.rb<br>
576 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/sass-3.2.19/lib/sass/cache_stores/filesystem.rb<br>
577 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/sass-3.2.19/lib/sass/cache_stores/memory.rb<br>
578 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/sass-3.2.19/lib/sass/cache_stores/chain.rb<br>
579 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/sass-3.2.19/lib/sass/cache_stores.rb<br>
580 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/sass-3.2.19/lib/sass/tree/node.rb<br>
581 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/sass-3.2.19/lib/sass/tree/root_node.rb<br>
582 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/sass-3.2.19/lib/sass/tree/rule_node.rb<br>
583 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/sass-3.2.19/lib/sass/tree/comment_node.rb<br>
584 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/sass-3.2.19/lib/sass/tree/prop_node.rb<br>
585 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/sass-3.2.19/lib/sass/tree/directive_node.rb<br>
586 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/sass-3.2.19/lib/sass/tree/media_node.rb<br>
587 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/sass-3.2.19/lib/sass/tree/supports_node.rb<br>
588 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/sass-3.2.19/lib/sass/tree/css_import_node.rb<br>
589 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/sass-3.2.19/lib/sass/tree/variable_node.rb<br>
590 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/sass-3.2.19/lib/sass/tree/mixin_def_node.rb<br>
591 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/sass-3.2.19/lib/sass/tree/mixin_node.rb<br>
592 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/sass-3.2.19/lib/sass/tree/trace_node.rb<br>
593 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/sass-3.2.19/lib/sass/tree/content_node.rb<br>
594 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/sass-3.2.19/lib/sass/tree/function_node.rb<br>
595 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/sass-3.2.19/lib/sass/tree/return_node.rb<br>
596 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/sass-3.2.19/lib/sass/tree/extend_node.rb<br>
597 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/sass-3.2.19/lib/sass/tree/if_node.rb<br>
598 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/sass-3.2.19/lib/sass/tree/while_node.rb<br>
599 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/sass-3.2.19/lib/sass/tree/for_node.rb<br>
600 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/sass-3.2.19/lib/sass/tree/each_node.rb<br>
601 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/sass-3.2.19/lib/sass/tree/debug_node.rb<br>
602 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/sass-3.2.19/lib/sass/tree/warn_node.rb<br>
603 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/sass-3.2.19/lib/sass/tree/import_node.rb<br>
604 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/sass-3.2.19/lib/sass/tree/charset_node.rb<br>
605 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/sass-3.2.19/lib/sass/tree/visitors/base.rb<br>
606 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/sass-3.2.19/lib/sass/tree/visitors/perform.rb<br>
607 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/sass-3.2.19/lib/sass/tree/visitors/cssize.rb<br>
608 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/sass-3.2.19/lib/sass/tree/visitors/extend.rb<br>
609 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/sass-3.2.19/lib/sass/tree/visitors/convert.rb<br>
610 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/sass-3.2.19/lib/sass/tree/visitors/to_css.rb<br>
611 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/sass-3.2.19/lib/sass/tree/visitors/deep_copy.rb<br>
612 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/sass-3.2.19/lib/sass/tree/visitors/set_options.rb<br>
613 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/sass-3.2.19/lib/sass/tree/visitors/check_nesting.rb<br>
614 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/sass-3.2.19/lib/sass/selector/simple.rb<br>
615 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/sass-3.2.19/lib/sass/selector/abstract_sequence.rb<br>
616 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/sass-3.2.19/lib/sass/selector/comma_sequence.rb<br>
617 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/sass-3.2.19/lib/sass/selector/sequence.rb<br>
618 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/sass-3.2.19/lib/sass/selector/simple_sequence.rb<br>
619 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/sass-3.2.19/lib/sass/selector.rb<br>
620 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/sass-3.2.19/lib/sass/environment.rb<br>
621 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/sass-3.2.19/lib/sass/script/node.rb<br>
622 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/sass-3.2.19/lib/sass/script/variable.rb<br>
623 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/sass-3.2.19/lib/sass/script/functions.rb<br>
624 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/sass-3.2.19/lib/sass/script/funcall.rb<br>
625 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/sass-3.2.19/lib/sass/script/number.rb<br>
626 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/sass-3.2.19/lib/sass/script/color.rb<br>
627 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/sass-3.2.19/lib/sass/script/bool.rb<br>
628 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/sass-3.2.19/lib/sass/script/null.rb<br>
629 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/sass-3.2.19/lib/sass/script/list.rb<br>
630 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/sass-3.2.19/lib/sass/script/arg_list.rb<br>
631 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/sass-3.2.19/lib/sass/script/literal.rb<br>
632 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/sass-3.2.19/lib/sass/script/string.rb<br>
633 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/sass-3.2.19/lib/sass/script/unary_operation.rb<br>
634 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/sass-3.2.19/lib/sass/script/interpolation.rb<br>
635 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/sass-3.2.19/lib/sass/script/string_interpolation.rb<br>
636 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/sass-3.2.19/lib/sass/script/operation.rb<br>
637 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/sass-3.2.19/lib/sass/scss/rx.rb<br>
638 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/sass-3.2.19/lib/sass/script/lexer.rb<br>
639 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/sass-3.2.19/lib/sass/script/parser.rb<br>
640 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/sass-3.2.19/lib/sass/script.rb<br>
641 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/sass-3.2.19/lib/sass/scss/script_lexer.rb<br>
642 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/sass-3.2.19/lib/sass/scss/script_parser.rb<br>
643 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/sass-3.2.19/lib/sass/scss/parser.rb<br>
644 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/sass-3.2.19/lib/sass/script/css_lexer.rb<br>
645 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/sass-3.2.19/lib/sass/script/css_parser.rb<br>
646 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/sass-3.2.19/lib/sass/scss/static_parser.rb<br>
647 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/sass-3.2.19/lib/sass/scss/css_parser.rb<br>
648 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/sass-3.2.19/lib/sass/scss.rb<br>
649 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/sass-3.2.19/lib/sass/error.rb<br>
650 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/sass-3.2.19/lib/sass/importers/base.rb<br>
651 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/sass-3.2.19/lib/sass/importers/filesystem.rb<br>
652 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/sass-3.2.19/lib/sass/importers.rb<br>
653 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/sass-3.2.19/lib/sass/shared.rb<br>
654 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/sass-3.2.19/lib/sass/media.rb<br>
655 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/sass-3.2.19/lib/sass/supports.rb<br>
656 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/sass-3.2.19/lib/sass/engine.rb<br>
657 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/sass-3.2.19/lib/sass/railtie.rb<br>
658 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/sass-3.2.19/lib/sass.rb<br>
659 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/sprockets-2.11.0/lib/sprockets/sass_functions.rb<br>
660 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/sass-rails-4.0.3/lib/sass/rails/helpers.rb<br>
661 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/sprockets-2.11.0/lib/sprockets/sass_importer.rb<br>
662 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/sass-rails-4.0.3/lib/sass/rails/importer.rb<br>
663 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/sass-rails-4.0.3/lib/sass/rails/template.rb<br>
664 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/sass-rails-4.0.3/lib/sass/rails/logger.rb<br>
665 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/sass-rails-4.0.3/lib/sass/rails/railtie.rb<br>
666 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/sass-rails-4.0.3/lib/sass/rails.rb<br>
667 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/sass-rails-4.0.3/lib/sass-rails.rb<br>
668 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/execjs-2.0.2/lib/execjs/version.rb<br>
669 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/execjs-2.0.2/lib/execjs/module.rb<br>
670 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/execjs-2.0.2/lib/execjs/encoding.rb<br>
671 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/execjs-2.0.2/lib/execjs/runtime.rb<br>
672 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/execjs-2.0.2/lib/execjs/disabled_runtime.rb<br>
673 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/execjs-2.0.2/lib/execjs/external_runtime.rb<br>
674 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/execjs-2.0.2/lib/execjs/johnson_runtime.rb<br>
675 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/execjs-2.0.2/lib/execjs/mustang_runtime.rb<br>
676 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/execjs-2.0.2/lib/execjs/ruby_racer_runtime.rb<br>
677 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/execjs-2.0.2/lib/execjs/ruby_rhino_runtime.rb<br>
678 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/execjs-2.0.2/lib/execjs/runtimes.rb<br>
679 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/execjs-2.0.2/lib/execjs.rb<br>
680 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/uglifier-2.5.0/lib/uglifier/version.rb<br>
681 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/uglifier-2.5.0/lib/uglifier.rb<br>
682 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/coffee-script-source-1.7.0/lib/coffee_script/source.rb<br>
683 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/coffee-script-2.2.0/lib/coffee_script.rb<br>
684 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/coffee-script-2.2.0/lib/coffee-script.rb<br>
685 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/coffee-rails-4.0.1/lib/coffee/rails/engine.rb<br>
686 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/coffee-rails-4.0.1/lib/coffee/rails/template_handler.rb<br>
687 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/coffee-rails-4.0.1/lib/coffee/rails/version.rb<br>
688 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/coffee-rails-4.0.1/lib/coffee-rails.rb<br>
689 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/jquery-rails-3.1.0/lib/jquery/rails/engine.rb<br>
690 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/jquery-rails-3.1.0/lib/jquery/rails/railtie.rb<br>
691 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/jquery-rails-3.1.0/lib/jquery/rails/version.rb<br>
692 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/jquery-rails-3.1.0/lib/jquery/rails.rb<br>
693 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/jquery-rails-3.1.0/lib/jquery-rails.rb<br>
694 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/turbolinks-2.2.2/lib/turbolinks/version.rb<br>
695 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/turbolinks-2.2.2/lib/turbolinks/xhr_headers.rb<br>
696 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/turbolinks-2.2.2/lib/turbolinks/xhr_url_for.rb<br>
697 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/turbolinks-2.2.2/lib/turbolinks/cookies.rb<br>
698 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/turbolinks-2.2.2/lib/turbolinks/x_domain_blocker.rb<br>
699 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/turbolinks-2.2.2/lib/turbolinks/redirection.rb<br>
700 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/turbolinks-2.2.2/lib/turbolinks.rb<br>
701 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/activesupport-4.0.4/lib/active_support/ordered_hash.rb<br>
702 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/activesupport-4.0.4/lib/active_support/core_ext/hash/diff.rb<br>
703 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/activesupport-4.0.4/lib/active_support/core_ext/hash.rb<br>
704 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/activesupport-4.0.4/lib/active_support/core_ext/numeric/bytes.rb<br>
705 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/activesupport-4.0.4/lib/active_support/cache.rb<br>
706 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/multi_json-1.9.3/lib/multi_json/options.rb<br>
707 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/multi_json-1.9.3/lib/multi_json/version.rb<br>
708 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/multi_json-1.9.3/lib/multi_json/adapter_error.rb<br>
709 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/multi_json-1.9.3/lib/multi_json/parse_error.rb<br>
710 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/multi_json-1.9.3/lib/multi_json.rb<br>
711 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/activesupport-4.0.4/lib/active_support/core_ext/string/starts_ends<br>
_with.rb<br>
712 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/actionpack-4.0.4/lib/action_dispatch/http/mime_types.rb<br>
713 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/actionpack-4.0.4/lib/action_dispatch/http/mime_type.rb<br>
714 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/actionpack-4.0.4/lib/action_view/template/handlers.rb<br>
715 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/erubis-2.7.0/lib/erubis/util.rb<br>
716 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/erubis-2.7.0/lib/erubis/generator.rb<br>
717 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/erubis-2.7.0/lib/erubis/converter.rb<br>
718 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/erubis-2.7.0/lib/erubis/error.rb<br>
719 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/erubis-2.7.0/lib/erubis/context.rb<br>
720 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/erubis-2.7.0/lib/erubis/evaluator.rb<br>
721 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/erubis-2.7.0/lib/erubis/engine.rb<br>
722 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/erubis-2.7.0/lib/erubis/helper.rb<br>
723 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/erubis-2.7.0/lib/erubis/enhancer.rb<br>
724 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/erubis-2.7.0/lib/erubis/engine/eruby.rb<br>
725 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/erubis-2.7.0/lib/erubis/local-setting.rb<br>
726 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/erubis-2.7.0/lib/erubis.rb<br>
727 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/actionpack-4.0.4/lib/action_view/template/handlers/erb.rb<br>
728 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/actionpack-4.0.4/lib/action_view/template/handlers/builder.rb<br>
729 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/actionpack-4.0.4/lib/action_view/template/handlers/raw.rb<br>
730 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/actionpack-4.0.4/lib/action_view/template.rb<br>
731 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/jbuilder-1.5.3/lib/jbuilder/jbuilder_template.rb<br>
732 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/jbuilder-1.5.3/lib/jbuilder/railtie.rb<br>
733 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/jbuilder-1.5.3/lib/jbuilder.rb<br>
734 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/high_voltage-2.1.0/lib/high_voltage/configuration.rb<br>
735 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/high_voltage-2.1.0/lib/high_voltage/constraints/root_route.rb<br>
736 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/high_voltage-2.1.0/lib/high_voltage/page_finder.rb<br>
737 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/high_voltage-2.1.0/lib/high_voltage/route_drawers/default.rb<br>
738 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/high_voltage-2.1.0/lib/high_voltage/route_drawers/root.rb<br>
739 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/high_voltage-2.1.0/lib/high_voltage/version.rb<br>
740 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/high_voltage-2.1.0/lib/high_voltage/engine.rb<br>
741 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/high_voltage-2.1.0/lib/high_voltage.rb<br>
742 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/rails-erd-1.1.0/lib/rails_erd/railtie.rb<br>
743 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/rails-erd-1.1.0/lib/rails_erd.rb<br>
744 c:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/rails-erd-1.1.0/lib/rails-erd.rb</p>
</li>
</ul>
<p>[NOTE]<br>
You may have encountered a bug in the Ruby interpreter or extension libraries.<br>
Bug reports are welcome.<br>
For details: <a href="http://www.ruby-lang.org/bugreport.html" class="external">http://www.ruby-lang.org/bugreport.html</a></p>
<p>This application has requested the Runtime to terminate it in an unusual way.<br>
Please contact the application's support team for more information.</p> Ruby master - Bug #11268 (Rejected): Zlib::DataError: incorrect header checkhttps://redmine.ruby-lang.org/issues/112682015-06-16T14:15:01Zstevenspiel (Steven Spiel)stevenspiel@gmail.com
<p>I'm having an issue opening a webpage with open-uri</p>
<p>$ ruby -v<br>
ruby 2.2.2p95 (2015-04-13 revision 50295) [x86_64-darwin14]<br>
$ irb</p>
<blockquote>
<p>require 'open-air'<br>
=> true<br>
open('<a href="https://www.hoveround.com" class="external">https://www.hoveround.com</a>')<br>
Zlib::DataError: incorrect header check<br>
from /Users/stevenspiel/.rbenv/versions/2.2.2/lib/ruby/2.2.0/net/http/response.rb:377:in <code>inflate' from /Users/stevenspiel/.rbenv/versions/2.2.2/lib/ruby/2.2.0/net/http/response.rb:377:in </code>block in inflate_adapter'<br>
from /Users/stevenspiel/.rbenv/versions/2.2.2/lib/ruby/2.2.0/net/protocol.rb:411:in <code>call_block' from /Users/stevenspiel/.rbenv/versions/2.2.2/lib/ruby/2.2.0/net/protocol.rb:402:in </code><<'<br>
from /Users/stevenspiel/.rbenv/versions/2.2.2/lib/ruby/2.2.0/net/protocol.rb:102:in <code>read' from /Users/stevenspiel/.rbenv/versions/2.2.2/lib/ruby/2.2.0/net/http/response.rb:399:in </code>read'<br>
from /Users/stevenspiel/.rbenv/versions/2.2.2/lib/ruby/2.2.0/net/http/response.rb:317:in <code>read_chunked' from /Users/stevenspiel/.rbenv/versions/2.2.2/lib/ruby/2.2.0/net/http/response.rb:281:in </code>block in read_body_0'<br>
from /Users/stevenspiel/.rbenv/versions/2.2.2/lib/ruby/2.2.0/net/http/response.rb:260:in <code>inflater' from /Users/stevenspiel/.rbenv/versions/2.2.2/lib/ruby/2.2.0/net/http/response.rb:279:in </code>read_body_0'<br>
from /Users/stevenspiel/.rbenv/versions/2.2.2/lib/ruby/2.2.0/net/http/response.rb:201:in <code>read_body' from /Users/stevenspiel/.rbenv/versions/2.2.2/lib/ruby/2.2.0/open-uri.rb:333:in </code>block (2 levels) in open_http'<br>
from /Users/stevenspiel/.rbenv/versions/2.2.2/lib/ruby/2.2.0/net/http.rb:1421:in <code>block (2 levels) in transport_request' from /Users/stevenspiel/.rbenv/versions/2.2.2/lib/ruby/2.2.0/net/http/response.rb:162:in </code>reading_body'<br>
from /Users/stevenspiel/.rbenv/versions/2.2.2/lib/ruby/2.2.0/net/http.rb:1420:in <code>block in transport_request' from /Users/stevenspiel/.rbenv/versions/2.2.2/lib/ruby/2.2.0/net/http.rb:1411:in </code>catch'<br>
from /Users/stevenspiel/.rbenv/versions/2.2.2/lib/ruby/2.2.0/net/http.rb:1411:in <code>transport_request' from /Users/stevenspiel/.rbenv/versions/2.2.2/lib/ruby/2.2.0/net/http.rb:1384:in </code>request'<br>
from /Users/stevenspiel/.rbenv/versions/2.2.2/lib/ruby/2.2.0/open-uri.rb:324:in <code>block in open_http' from /Users/stevenspiel/.rbenv/versions/2.2.2/lib/ruby/2.2.0/net/http.rb:853:in </code>start'<br>
from /Users/stevenspiel/.rbenv/versions/2.2.2/lib/ruby/2.2.0/open-uri.rb:318:in <code>open_http' from /Users/stevenspiel/.rbenv/versions/2.2.2/lib/ruby/2.2.0/open-uri.rb:736:in </code>buffer_open'<br>
from /Users/stevenspiel/.rbenv/versions/2.2.2/lib/ruby/2.2.0/open-uri.rb:211:in <code>block in open_loop' from /Users/stevenspiel/.rbenv/versions/2.2.2/lib/ruby/2.2.0/open-uri.rb:209:in </code>catch'<br>
from /Users/stevenspiel/.rbenv/versions/2.2.2/lib/ruby/2.2.0/open-uri.rb:209:in <code>open_loop' from /Users/stevenspiel/.rbenv/versions/2.2.2/lib/ruby/2.2.0/open-uri.rb:150:in </code>open_uri'<br>
from /Users/stevenspiel/.rbenv/versions/2.2.2/lib/ruby/2.2.0/open-uri.rb:716:in <code>open' from /Users/stevenspiel/.rbenv/versions/2.2.2/lib/ruby/2.2.0/open-uri.rb:34:in </code>open'<br>
from (irb):2<br>
from /Users/stevenspiel/.rbenv/versions/2.2.2/bin/irb:11:in `'</p>
</blockquote> Ruby master - Bug #11123 (Closed): [PATCH] bsock_recmvsg_internal needs GC guard for control bufferhttps://redmine.ruby-lang.org/issues/111232015-05-06T21:31:39Znormalperson (Eric Wong)normalperson@yhbt.net
<p>The control buffer may be used throughout the function, so<br>
prevent the string from being lost to GC.</p>
<p>I'm pretty sure this is correct and we'll need it, I'll commit in a day or two<br>
unless I missed something. I was planning to introduce new features before<br>
I noticed this bug:</p>
<ul>
<li>"exception: false"</li>
<li>explicit buffer reuse to reduce GC, similar to read_nonblock(num, str)</li>
</ul>
<p>I also feel 4K buffers are too big for stack and should use heap instead<br>
(as ALLOCV caps stack allocations at 1K)</p> Ruby master - Bug #11109 (Third Party's Issue): Crash of irb.https://redmine.ruby-lang.org/issues/111092015-04-30T13:51:36Zyangzhijava (Jeffrey Yang)yangzhijava@outlook.com
<p>ENV:<br>
Mac OS X 10.10.3<br>
ruby 2.2.2p95 (2015-04-13 revision 50295) [x86_64-darwin14]</p>
<p>HOW TO COMPILE:</p>
<ol>
<li>cd to the dir of ruby 2.2.2.</li>
<li>./configure</li>
<li>make</li>
<li>make install as root.</li>
</ol>
<p>STEPS:</p>
<ol>
<li>
<p>Start the irb on console.</p>
</li>
<li>
<p>Type the following code lines in irb:</p>
<pre><code class="ruby syntaxhl" data-language="ruby"><span class="nb">require</span> <span class="s1">'stringio'</span>
<span class="nb">require</span> <span class="s1">'bson'</span>
<span class="n">sio</span> <span class="o">=</span> <span class="no">StringIO</span><span class="p">.</span><span class="nf">new</span> <span class="mi">1</span><span class="p">.</span><span class="nf">to_bson</span>
<span class="no">BSON</span><span class="o">::</span><span class="no">Int64</span><span class="p">.</span> <span class="nf">from_bson</span> <span class="n">sio</span>
</code></pre>
</li>
<li>
<p>The crash happens.</p>
</li>
</ol>
<p>Please see also the attached file for all details.</p> Ruby master - Bug #11037 (Closed): Time Parse Documentation Incorrect - Undefined method getlocalhttps://redmine.ruby-lang.org/issues/110372015-04-07T06:59:50Zcfis (Charlie Savage)
<p>According to:</p>
<p><a href="http://ruby-doc.org/stdlib-2.2.1/libdoc/time/rdoc/Time.html" class="external">http://ruby-doc.org/stdlib-2.2.1/libdoc/time/rdoc/Time.html</a></p>
<p><code>Time#parse</code> can take a 2nd parameter:</p>
<blockquote>
<p>We can change the date used to infer our missing elements by passing a second object that responds to mon, day and year, such as <code>Date</code>, <code>Time</code> or <code>DateTime</code>. We can also use our own object.</p>
</blockquote>
<p>However, that is not correct:</p>
<pre><code class="ruby syntaxhl" data-language="ruby"><span class="n">irb</span><span class="p">(</span><span class="n">main</span><span class="p">):</span><span class="mo">010</span><span class="p">:</span><span class="mi">0</span><span class="o">></span> <span class="no">Time</span><span class="p">.</span><span class="nf">parse</span><span class="p">(</span><span class="s1">'12:30 AM'</span><span class="p">,</span> <span class="no">Date</span><span class="p">.</span><span class="nf">today</span><span class="p">)</span>
<span class="no">NoMethodError</span><span class="p">:</span> <span class="n">undefined</span> <span class="nb">method</span> <span class="sb">`getlocal' for #<Date: 2015-04-07 ((2457120j,0s,0n),+0s,2299161j)>
from C:/mingw64/mingw64/local/ruby/lib/ruby/2.2.0/time.rb:262:in `</span><span class="n">make_time</span><span class="s1">'
from C:/mingw64/mingw64/local/ruby/lib/ruby/2.2.0/time.rb:364:in `parse'</span>
<span class="n">from</span> <span class="p">(</span><span class="n">irb</span><span class="p">):</span><span class="mi">10</span>
<span class="n">from</span> <span class="no">C</span><span class="ss">:/</span><span class="n">mingw64</span><span class="o">/</span><span class="n">mingw64</span><span class="o">/</span><span class="n">local</span><span class="o">/</span><span class="n">ruby</span><span class="o">/</span><span class="n">bin</span><span class="o">/</span><span class="n">irb</span><span class="p">:</span><span class="mi">11</span><span class="ss">:in</span> <span class="sb">`<main>'
</span></code></pre>
<p>The problem is in <code>Time#make_time</code>, lines 259 through 263:</p>
<pre><code class="ruby syntaxhl" data-language="ruby"> <span class="k">if</span> <span class="n">off</span>
<span class="n">now</span> <span class="o">=</span> <span class="n">now</span><span class="p">.</span><span class="nf">getlocal</span><span class="p">(</span><span class="n">off</span><span class="p">)</span> <span class="k">if</span> <span class="n">now</span><span class="p">.</span><span class="nf">utc_offset</span> <span class="o">!=</span> <span class="n">off</span>
<span class="k">else</span>
<span class="n">now</span> <span class="o">=</span> <span class="n">now</span><span class="p">.</span><span class="nf">getlocal</span>
<span class="k">end</span>
</code></pre>
<p>The behavior the documentation does seem desirable, so the code above should check if the now parameter responds to <code>getlocal</code> or not (only <code>Time</code> does, <code>Date</code> and <code>DateTime</code> do not). Or of course the documentation should be updated to specify that a time object must be passed as the now parameter.</p> Ruby master - Bug #10984 (Closed): Hash#contain? to check whether hash contains other hashhttps://redmine.ruby-lang.org/issues/109842015-03-19T14:00:59Zolivierlacan (Olivier Lacan)hi@olivierlacan.com
<p>Comparing hashes seems like a common practice but there currently isn't a method to ask a<br>
hash instance whether it includes another hash instance.</p>
<p>The most intuitive method to reach for would be <code>Hash#include?</code> but it is in fact an alias to <code>Hash#has_key?</code></p>
<p>What I'm looking for can be achieved with:</p>
<pre><code>class Hash
def contain?(other)
self.merge(other) == self
end
end
</code></pre>
<p>Here's a simple demo of <code>#contain?</code> in use:</p>
<pre><code>{ a: true, b: false }.contain?({ a: true})
# => true
{ a: true, b: false }.contain?({ b: false})
# => true
{ a: true, b: false }.contain?({ a: false})
# => false
{ a: true, b: false }.contain?({ c: true})
# => false
</code></pre>
<p>One important note is that this method is <em>not checking for nested hash matches</em>.<br>
This may need to be addressed when the parameters include a nested hash perhaps.</p>
<p>Thanks to Terence Lee's help, nobu created a patch for this feature last year.<br>
I've only modified the name of the method from <a href="https://gist.github.com/nobu/dfe8ba14a48fc949f2ed" class="external">his original patch</a> and attached it to this issue.</p> Ruby master - Bug #10850 (Rejected): BigDecimal division incorrecthttps://redmine.ruby-lang.org/issues/108502015-02-13T11:14:06ZElyasin (Elyasin Shaladi)Elyas.Shaladi@gmail.com
<p>I tried this in Ruby 2.1.4, 2.1.5 and 2.2.0, but in none of the versions it seems correct to me.</p>
<p>irb(main):041:0* amount1 = BigDecimal("241.3")<br>
=> #<a href="BigDecimal:7f49bcb03558,'0.2413E3',18(18)" class="external">BigDecimal:7f49bcb03558,'0.2413E3',18(18)</a></p>
<p>irb(main):042:0> amount2 = BigDecimal("1800")<br>
=> #<a href="BigDecimal:7f49bcaf3400,'0.18E4',9(18)" class="external">BigDecimal:7f49bcaf3400,'0.18E4',9(18)</a></p>
<p>irb(main):043:0> rate = amount1 / amount2<br>
=> #<BigDecimal:7f49bcae8398,'0.1340555555 5555555555 5555556E0',27(45)></p>
<p>irb(main):044:0> rate * amount2 #should return amount1 = 241.3 in BigDecimal, but it does not<br>
=> #<BigDecimal:7f49bcad6a30,'0.2413000000 0000000000 00000008E3',36(45)></p>
<p>My guess is that there is a bug in the BigDecimal implementation.</p> Ruby master - Bug #10787 (Rejected): skipped test are not shown on test-allhttps://redmine.ruby-lang.org/issues/107872015-01-27T14:24:11Zusa (Usaku NAKAMURA)usa@garbagecollect.jp
<p>いつからかはわかりませんが、test-allの結果にskipされたテストが表示されなくなっています。</p> Ruby master - Bug #10767 (Rejected): Time.local doesn't raise an exception during the dead hour o...https://redmine.ruby-lang.org/issues/107672015-01-21T20:22:23Zsobrinho (Gabriel Sobrinho)gabriel.sobrinho@gmail.com
<p>At the begin of DST ruby is accepting the 0 hour which in fact doesn't exists:</p>
<pre><code>Time.local(2014, 10, 19, 0, 30)
#=> 2014-10-19 01:30:00 -0200
Time.local(2014, 10, 19, 1, 30)
#=> 2014-10-19 01:30:00 -0200
Time.local(2014, 10, 19, 2, 30)
#=> 2014-10-19 02:30:00 -0200
</code></pre>
<p>In fact it is returning the next hour for some reason, causing a really strange behaviour:</p>
<pre><code>Time.local(2014, 10, 19, 0, 30) == Time.local(2014, 10, 19, 1, 30)
#=> true
</code></pre>
<p>I think it makes more sense to raise an exception as happens when you specify a invalid month, day, hour, minute or second:</p>
<pre><code>Time.local(2014, 10, 19, 1, 60) # 60 minutes doesn't exists
ArgumentError: invalid date
Time.local(2014, 10, 19, 25, 30) # 25 hours doesn't exists
ArgumentError: invalid date
</code></pre>
<p>Makes sense? I would be happy to provide a patch.</p> Ruby master - Bug #10747 (Closed): DNS resolution should fall back to TCP on Errno::EACCEShttps://redmine.ruby-lang.org/issues/107472015-01-16T19:28:41Za13m (Andy Grimm)agrimm@redhat.com
<p>On some platforms, users may be restricted from global binding to a UDP port, which is necessary for UDP-based DNS lookups. In this case, an exception like the following is currently raised:</p>
<blockquote>
<p>ruby -r resolv -e 'puts Resolv.getaddress "www.ruby-lang.org"'<br>
resolv.rb:655:in <code>bind': Permission denied - bind(2) (Errno::EACCES) resolv.rb:655:in </code>bind_random_port'<br>
resolv.rb:791:in <code>initialize' resolv.rb:560:in </code>new'<br>
resolv.rb:560:in <code>make_udp_requester' resolv.rb:513:in </code>each_resource'<br>
resolv.rb:406:in <code>each_address' resolv.rb:115:in </code>block in each_address'<br>
resolv.rb:114:in <code>each' resolv.rb:114:in </code>each_address'<br>
resolv.rb:92:in <code>getaddress' resolv.rb:43:in </code>getaddress'</p>
</blockquote>
<p>This error should be caught, and the resolver should fall back to TCP, as it does in other cases where this is necessary. A possible patch for this (written against 2.0.0p353 in RHEL) is attached.</p>
<p>Ideally, it would also be nice to be able to specify tcp by default when initializing a DNS object on such platforms, to avoid repeated bind attempts which are known to fail, but I am not sure of the best way to introduce such an option.</p> Ruby master - Bug #10723 (Closed): [PERF] bm_tread_create_join 20% slowerhttps://redmine.ruby-lang.org/issues/107232015-01-09T09:38:45Ztgxworld (Guo Xiang Tan)gxtan1990@gmail.com
<p>Relevant commits: <a href="https://github.com/ruby/ruby/compare/39fd4a8...5697b2f" class="external">https://github.com/ruby/ruby/compare/39fd4a8...5697b2f</a></p>
<p>Chart showing the regression: <a href="http://rubybench.org/ruby/ruby/commits?result_type=vm_thread_create_join" class="external">http://rubybench.org/ruby/ruby/commits?result_type=vm_thread_create_join</a></p>
<p>For those unable to view the chart, the benchmark results have increased from 1.74~ seconds to 2.1~ seconds.</p> Ruby master - Bug #10712 (Closed): [PATCH] lib/resolv.rb: consider ENETUNREACH as ResolvTimeouthttps://redmine.ruby-lang.org/issues/107122015-01-07T21:59:01Znormalperson (Eric Wong)normalperson@yhbt.net
<p>This allows "gem install /path/to/local.gem" to be successful<br>
on a machine without a network connection.</p>
<p>I'm fairly sure this should be fixed in lib/resolv.rb instead<br>
of inside RubyGems (and everything else which relies on rescuing<br>
Resolv::ResolvError).</p> Ruby master - Bug #10630 (Third Party's Issue): ERB tags nested in escaped blocks are skippedhttps://redmine.ruby-lang.org/issues/106302014-12-22T09:48:36Ztonci (Tonči Damjanić)tonci.damjanic@gmail.com
<p>Hello,</p>
<p>First of all, is this a good place to report Erubis bugs? Their GitHub repo is stale (no action since 2011) and I was suggested by the Rails team to try here.</p>
<p>GitHub ticket: <a href="https://github.com/kwatch/erubis/issues/6" class="external">https://github.com/kwatch/erubis/issues/6</a><br>
Repro example: <a href="https://github.com/rails/rails/issues/18098#issuecomment-67667400" class="external">https://github.com/rails/rails/issues/18098#issuecomment-67667400</a></p>
<hr>
<p>It seems that ERB (Erubis) doesn't handle well tags embedded within another tag. My goal is to produce ERB code with some values prefilled in the first pass.</p>
<p>Input ERB code:</p>
<pre><code> <div>
<%%= Results: <%= 'first' %> | <%= 'second' %> | <%= 'third' %> %>
</div>
</code></pre>
<p>Produces the following output:</p>
<pre><code> <div>
<%= Results: <%= 'first' %> | second | third %>
</div>
</code></pre>
<p>Expected output is:</p>
<pre><code> <div>
<%= Results: first | second | third %>
</div>
</code></pre>
<p>The first nested ERB tag is skipped. The same happens when there is just one block nested.</p>
<p>This is reproducible in Rails v4.1.8, which is using Erubis v2.7.0.</p> Ruby master - Bug #10588 (Rejected): Invalid Dateshttps://redmine.ruby-lang.org/issues/105882014-12-11T13:52:35ZNorthernLights (Imran "")
<p>I was in the process of implementing a date-routine, which could prevent possible out-of-range/invalid date values.</p>
<p>The interpreter, rightfully, threw an out-of range error, when I tried any of the following:<br>
puts Time.mktime 2014, 13, 32<br>
puts Time.mktime 2014, 13, 32</p>
<p>No surprises there. However, when I tried:<br>
puts Time.mktime 2014, 11, 31<br>
The interpreter, happily produced: 2014-12-01.</p>
<p>A little intrigued, I went ahead and tried the following routine:<br>
1.upto(12){|month| puts Time.mktime 2014, month, 31}</p>
<p>Result:<br>
2014-01-31 ok<br>
2014-03-03 ???<br>
2014-03-31 ok<br>
2014-05-01 ???<br>
2014-05-31 ok<br>
2014-07-01 ???<br>
2014-07-31 ok<br>
2014-08-31 ok<br>
2014-10-01 ???<br>
2014-10-31 ok<br>
2014-12-01 ???<br>
2014-12-31 ok</p>
<p>I hope, I've been able to describe this issue adequately.</p>
<p>Thanks Matz & all the contributors for bringing this wonderful tool to us.</p>
<p>Regards.</p> Ruby master - Bug #10580 (Closed): TestProcess#test_deadlock_by_signal_at_forking fails on ARMhttps://redmine.ruby-lang.org/issues/105802014-12-08T16:24:25Zvo.x (Vit Ondruch)v.ondruch@tiscali.cz
<p>Testing with Fedora Rawhide:</p>
<pre><code> 1) Error:
TestProcess#test_deadlock_by_signal_at_forking:
Timeout::Error: execution of assert_separately expired
/builddir/build/BUILD/ruby-2.2.0-r48741/test/ruby/test_process.rb:1921:in `test_deadlock_by_signal_at_forking'
</code></pre> Ruby master - Bug #10525 (Rejected): SegFault with mysql2 gemhttps://redmine.ruby-lang.org/issues/105252014-11-19T04:02:47Ztadlambjr (Tad Lamb)
<p>I received this segfault when executing the command<br>
<code>bundle exec rake db:migrate</code></p> Ruby master - Bug #10478 (Closed): WEBrick's server.rb contains a return that should be a breakhttps://redmine.ruby-lang.org/issues/104782014-11-05T00:19:23Zheadius (Charles Nutter)headius@headius.com
<p>Commit 46253 (git hash 6f226d9) added the ability to shut down the running WEBrick server more gracefully, by monitoring a shutdown pipe. However, the logic to actually escape the server loop was written to use "return" instead of break", which causes a LocalJumpError when run inside a threaded server:</p>
<ol>
<li>Error:<br>
TestNetHTTPContinue#test_expect_continue:<br>
LocalJumpError: unexpected return<br>
/Users/headius/projects/jruby/lib/ruby/stdlib/webrick/server.rb:216:in `start'</li>
</ol>
<p>It is not entirely clear why this does not show up for MRI running the same tests (JRuby master is now running MRI trunk stdlib and tests), but we believe this return should be a "break". A break here exits the server loop and allows the rest of the server logic to finish gracefully without an error bubbling out.</p>
<p>We have made this change in JRuby here: <a href="https://github.com/jruby/jruby/commit/ce7e292dcc899111a908467f90fd0c639cfbba18" class="external">https://github.com/jruby/jruby/commit/ce7e292dcc899111a908467f90fd0c639cfbba18</a></p>
<p>I am marking this urgent, because MRI 2.2 is almost done, and JRuby plans to release shortly after with expected 2.2 compatibility.</p>
<p>Assigning to akr because he did the original commit.</p> Ruby master - Bug #10245 (Closed): TestTimeTZ#test_gen_Europe_Lisbon_111 fails with recent tzdatahttps://redmine.ruby-lang.org/issues/102452014-09-16T05:48:06Zvo.x (Vit Ondruch)v.ondruch@tiscali.cz
<p>In Fedora, tzdata were recently updated to tzdata-2014g-1.fc22 [1]. Since that update, one test case fails:</p>
<pre><code>$ make test-all TESTS=test/ruby/test_time_tz.rb
...
snip
...
[ 79/123] TestTimeTZ#test_gen_Europe_Lisbon_111 = 0.00 s
1) Failure:
TestTimeTZ#test_gen_Europe_Lisbon_111 [/builddir/build/BUILD/ruby-2.2.0-r47594/test/ruby/test_time_tz.rb:250]:
TZ=Europe/Lisbon Time.utc(1912, 1, 1, 0, 36, 31).localtime.
<"1911-12-31 23:59:59 -0036"> expected but was
<"1911-12-31 23:59:46 -0036">.
</code></pre>
<p>This is what Red Hat's tzdata maintainer says about that change [2]:</p>
<blockquote>
<p>tl;dr: Ruby will have to fix its test suite.</p>
<p>I expect that this comes from Ruby-internal test suite that expects Europe/Lisbon on some offset, and is surprised that it's actually a couple seconds off. But that far back, time didn't use to be split to zones like today, and every location kept its own local time. I think that most stamps in zoneinfo were calculated from GMT coordinates of the city (which itself is a somewhat fuzzy notion), and are corrected based on historical sources only retroactively, when someone gets to it, or when someone complains. That's what happened here--Paul Eggert got to Lisbon.</p>
<p>It seems like Europe/Brussels might be a good choice for this sort of test, because it's local mean time has been based on an official document since 1997.</p>
</blockquote>
<p>Could you please make the test case compatible with recent tzdata? Thanks.</p>
<p>[1] <a href="https://koji.fedoraproject.org/koji/buildinfo?buildID=576705" class="external">https://koji.fedoraproject.org/koji/buildinfo?buildID=576705</a><br>
[2] <a href="https://bugzilla.redhat.com/show_bug.cgi?id=1141775" class="external">https://bugzilla.redhat.com/show_bug.cgi?id=1141775</a></p> Ruby master - Bug #10202 (Closed): TestBenchmark#test_realtime_output breaks on ARMhttps://redmine.ruby-lang.org/issues/102022014-09-03T13:55:45Zvo.x (Vit Ondruch)v.ondruch@tiscali.cz
<p>I observe following error on ARM:</p>
<pre><code> 3) Failure:
TestBenchmark#test_realtime_output [/builddir/build/BUILD/ruby-2.2.0-r47372/test/benchmark/test_benchmark.rb:159]:
Expected 1.0 to be < 0.999977873172611.
</code></pre>
<p>It seems to be introduced by r47360. Reverting the commit makes test suite to pass once again.</p> Ruby master - Bug #10162 (Closed): Error while installing ruby 2.1.2 on freebsd https://redmine.ruby-lang.org/issues/101622014-08-22T08:06:01Zyogesh (yogesh yadav)yogesh.yadav2912@gmail.com
<p>Below is error while doing make install.</p>
<p>rm -f probes.o<br>
linking miniruby<br>
/usr/bin/ld: probes.o: relocation R_X86_64_32 can not be used when making a shared object; recompile with -fPIC<br>
probes.o: could not read symbols: Bad value<br>
*** Error code 1</p>
<p>Stop in /root/ruby-2.1.2.</p> Ruby master - Bug #10135 (Rejected): Time.at is inaccuratehttps://redmine.ruby-lang.org/issues/101352014-08-15T00:30:04Zthesmart (John Smart)smartj@gmail.com
<p>I believe I have found an issue with Time.at. Many runtimes and DBs use milliseconds since epoch for recording time. Currently, the only way to generate a Time in ruby with milliseconds is:</p>
<pre><code>Time.at(milliseconds / 1000.0)
</code></pre>
<p>However, this is inaccurate:</p>
<pre><code>> Time.at(1381089302195 / 1000.0).to_f
=> 1381089302.1949997
> Time.at(1381089302195 / 1000.0).strftime('%3N')
=> "194"
</code></pre>
<p>This doesn't make much sense because you would expect:</p>
<pre><code>> 1381089302195 / 1000.0
=> 1381089302.195
> (1381089302195 / 1000.0).to_f
=> 1381089302.195
</code></pre>
<p>It seems that somewhere in the MRI, someone is using floating-point math to represent a Time.</p>
<p>Is there any other way (workaround) to construct Time with millisecond accuracy?</p> Ruby master - Bug #10113 (Rejected): Ruby memoization behaving oddly when using hash keys with sp...https://redmine.ruby-lang.org/issues/101132014-08-06T10:11:24Zronald05arias (Ron Arias)ronald05arias@gmail.com
<p>Trying to use simple Hash memoization with a ruby hash in a class method, it "fails" when having spaces as the hash key. Example code is attached.<br>
When calling the memoization method, it fails to maintain the instance variable. It resets the variable every time the method is called.<br>
When not having spaces in the key of the Hash, it works as it should, memoizing the variable.</p>
<p>P.S. Despite my ruby version indicated bellow, it fails in the newest as well.</p> Ruby master - Bug #10036 (Closed): Time.parse raises NoMethodError: undefined method `<' for nil:...https://redmine.ruby-lang.org/issues/100362014-07-15T00:45:46Zgreysteil (Grey Baker)greysteil@gmail.com
<p>To replicate:</p>
<p>require 'time'<br>
Time.parse("2014-13-13T18:00:00-0900") # => NoMethodError: undefined method `<' for nil:NilClass</p>
<p>This should instead return "ArgumentError: argument out of range", like it does with a positive offset:</p>
<p>Time.parse("2014-13-13T18:00:00+0900") # => ArgumentError: argument out of range</p>
<p>Fix is a one-liner on GitHub: <a href="https://github.com/ruby/ruby/pull/667" class="external">https://github.com/ruby/ruby/pull/667</a></p> Ruby master - Bug #10035 (Closed): Find.find no longer accepts Pathname type as argumenthttps://redmine.ruby-lang.org/issues/100352014-07-14T12:21:25Zherwinw (Herwin Quarantainenet)herwin@quarantainenet.nl
<p>In 2.1, a check for encoding of the paths parameter has been added to File.find. This works perfectly well for String parameters, but this results in a NoMethodError when a Pathname parameter is given. In my opinion a Pathname is a better suitable type to feed to Find.find than a String.</p> Ruby master - Bug #10011 (Closed): Passing a string to Pathname#relative_path_from results in NoM...https://redmine.ruby-lang.org/issues/100112014-07-06T15:53:45ZAnonymous
<p>When a string is passed to Pathname#relative_path_from, a NoMethodError is raised.</p>
<pre><code>irb(main):001:0> require "pathname"
=> true
irb(main):002:0> Pathname.new("/usr/bin/cc").relative_path_from Pathname.new("/usr/bin")
=> #<Pathname:cc>
irb(main):003:0> Pathname.new("/usr/bin/cc").relative_path_from("/usr/bin")
NoMethodError: undefined method `cleanpath' for "/usr/bin":String
from /Users/jacknagel/.rubies/ruby-2.2.0/lib/ruby/2.2.0/pathname.rb:493:in `relative_path_from'
from (irb):3
from /Users/jacknagel/.rubies/ruby-2.2.0/bin/irb:11:in `<main>'
</code></pre>
<p>I think either converting the argument to a Pathname or raising TypeError would be acceptable here.</p> Ruby master - Bug #9991 (Closed): fd leak on WEBrick::Utils#create_listeners (fixed at r46598)https://redmine.ruby-lang.org/issues/99912014-06-28T16:33:35Znagachika (Tomoyuki Chikanaga)nagachika00@gmail.com
<p>WEBrick::Utils#create_listeners での socket close 漏れの修正<br>
バックポート管理用にチケット化します。</p> Ruby master - Bug #9951 (Rejected): DateTime.strftime and Time.strftime differ in how they treat ...https://redmine.ruby-lang.org/issues/99512014-06-18T02:17:27Zdchelimsky (David Chelimsky)dchelimsky@gmail.com
<pre><code class="ruby syntaxhl" data-language="ruby"><span class="no">DateTime</span><span class="p">.</span><span class="nf">new</span><span class="p">(</span><span class="mi">2014</span><span class="p">,</span><span class="mi">1</span><span class="p">,</span><span class="mi">2</span><span class="p">,</span><span class="mi">3</span><span class="p">,</span><span class="mi">4</span><span class="p">,</span><span class="mf">5.678</span><span class="p">).</span><span class="nf">strftime</span><span class="p">(</span><span class="s2">"%L"</span><span class="p">)</span>
<span class="c1"># => "678"</span>
<span class="no">Time</span><span class="p">.</span><span class="nf">new</span><span class="p">(</span><span class="mi">2014</span><span class="p">,</span><span class="mi">1</span><span class="p">,</span><span class="mi">2</span><span class="p">,</span><span class="mi">3</span><span class="p">,</span><span class="mi">4</span><span class="p">,</span><span class="mf">5.678</span><span class="p">).</span><span class="nf">strftime</span><span class="p">(</span><span class="s2">"%L"</span><span class="p">)</span>
<span class="c1"># => "677"</span>
</code></pre>
<p>I think these should both produce "678", but at the very least they should produce the same number so users don't have to special case one or the other. I realize there is floating point math under the hood here, but that's an implementation detail I don't think users should care about in this case.</p> Ruby master - Bug #9881 (Closed): stuck in test/openssl/test_ssl.rb on Windowshttps://redmine.ruby-lang.org/issues/98812014-05-29T15:40:00Zusa (Usaku NAKAMURA)usa@garbagecollect.jp
<p>r46223以降、WindowsにおいてOpenSSL::TestSSL#test_verify_resultで刺さってしまうようになりました。<br>
(CI等で確認できます)</p>
<p>調べてみたところ、この変更時に追加された、</p>
<pre><code> ssl.sync_close = true
</code></pre>
<p>の1行が問題のようです。<br>
よくわからないのですが、他のテストメソッドはこれがあっても問題ありません。</p>
<p>意味がわかってないので私にはなんとも言えないのですが、何かわかりますでしょうか?</p> Ruby master - Bug #9458 (Rejected): File write modehttps://redmine.ruby-lang.org/issues/94582014-01-28T17:42:19Zpradeek (pradeek kyahvi)pradeek.k@gmail.com
<p>As i am working ruby 2.1.0p0,it is found that File write mode is pushing the data in to file with out calling the close method on File Oject.When i quit the irb enviroment with out calling the close method,the data is wrote to the file.</p> Ruby master - Bug #9385 (Closed): open-uri always uses proxy set as env var even if proxy flag is...https://redmine.ruby-lang.org/issues/93852014-01-09T06:48:55Ztoch (Christophe Philemotte)christophe.philemotte@8thcolor.com
<p>According to doc <a href="http://ruby-doc.org/stdlib-2.1.0/libdoc/open-uri/rdoc/OpenURI.html" class="external">http://ruby-doc.org/stdlib-2.1.0/libdoc/open-uri/rdoc/OpenURI.html</a> we can disable the proxy by doing</p>
<p>open("<a href="http://www.ruby-lang.org/en/raa.html" class="external">http://www.ruby-lang.org/en/raa.html</a>", :proxy => nil)</p>
<p>and "environment variables for proxy are ignored and connection will be made to a server directly". But it is not. The environment variable is still considered and used (cf attached script and logs).</p>
<p>After digging the code, I think it's because Net::HTTP.new is called without passing p_addr to nil. If I'm not wrong, the attached patch is a possible solution to fix it.</p> Ruby master - Bug #9093 (Closed): Resolv: Multiple strings should be concatenated in a DNS record...https://redmine.ruby-lang.org/issues/90932013-11-08T02:59:19Zzzak (zzak _)
<p>Moved from github [https://github.com/ruby/ruby/pull/389]:</p>
<p>"As per <a href="http://tools.ietf.org/html/rfc4408#section-3.1.3" class="external">http://tools.ietf.org/html/rfc4408#section-3.1.3</a>, when a TXT or SPF record contains multiple strings, those strings should be concatenated without any delimiter. Resolv was taking the first string, which meant that valid data in a TXT record wouldn't be available. This change just concatenates the strings together."</p> Ruby master - Bug #9051 (Closed): open-uri meta_add_field method removed https://redmine.ruby-lang.org/issues/90512013-10-24T21:43:23Zeweb (Eamonn Webster)eamonn.webster@gmail.com
<p>In the fix for bug <a class="issue tracker-1 status-5 priority-4 priority-default closed" title="Bug: open-uri failed to handle multiple "Set-Cookie" headers (Closed)" href="https://redmine.ruby-lang.org/issues/4964">#4964</a> the method Meta#meta_add_field(name, value) was removed and replaced with meta_add_field2(name, values) Note plural!</p>
<p>This breaks code that uses meta_add_field. e.g. HTTPClient.</p>
<p>The fix is to re-implement meta_add_field using meta_add_field2</p> Ruby master - Bug #9008 (Rejected): TestProcess#test_clock_getres_constants and TestProcess#test...https://redmine.ruby-lang.org/issues/90082013-10-09T22:14:07Zvo.x (Vit Ondruch)v.ondruch@tiscali.cz
<p>=begin<br>
I observe following two errors on ARM Building Ruby for Fedora Rawhide. It seems that (({:CLOCK_REALTIME_ALARM})) and (({:CLOCK_BOOTTIME_ALARM})) are not supported there. The error message is confusing, though :/</p>
<ol start="3">
<li>Error:<br>
TestProcess#test_clock_getres_constants:<br>
Errno::E524: Unknown error 524 - clock_getres<br>
/builddir/build/BUILD/ruby-2.1.0-preview1/test/ruby/test_process.rb:1752:in <code>clock_getres' /builddir/build/BUILD/ruby-2.1.0-preview1/test/ruby/test_process.rb:1752:in </code>block in test_clock_getres_constants'<br>
/builddir/build/BUILD/ruby-2.1.0-preview1/test/ruby/test_process.rb:1749:in <code>each' /builddir/build/BUILD/ruby-2.1.0-preview1/test/ruby/test_process.rb:1749:in </code>test_clock_getres_constants'</li>
<li>Error:<br>
TestProcess#test_clock_gettime_constants:<br>
Errno::E524: Unknown error 524 - clock_gettime<br>
/builddir/build/BUILD/ruby-2.1.0-preview1/test/ruby/test_process.rb:1676:in <code>clock_gettime' /builddir/build/BUILD/ruby-2.1.0-preview1/test/ruby/test_process.rb:1676:in </code>block in test_clock_gettime_constants'<br>
/builddir/build/BUILD/ruby-2.1.0-preview1/test/ruby/test_process.rb:1673:in <code>each' /builddir/build/BUILD/ruby-2.1.0-preview1/test/ruby/test_process.rb:1673:in </code>test_clock_gettime_constants'</li>
</ol>
<p>I am going to resolve the issue temporary by applying</p>
<p>sed -i '/Process.constants.grep(/\ACLOCK_/).each {|n|/ s/$/\n next if [:CLOCK_REALTIME_ALARM, :CLOCK_BOOTTIME_ALARM].include? n/' <br>
test/ruby/test_process.rb</p>
<p>on ARM platform, but is there some better solution?<br>
=end</p> Ruby master - Bug #8719 (Closed): r42096 make bm_app_factorial.rb slowhttps://redmine.ruby-lang.org/issues/87192013-08-02T10:16:54ZauthorNari (Narihiro Nakamura)authorNari@gmail.com
<p>r42096 のコミットでbm_app_factorial.rbがかなり遅くなるようです。<br>
しょうがないということでしたらrejectしてください。<br>
とりあえずご報告までということで。</p>
<p>% time ./miniruby -v benchmark/bm_app_factorial.rb<br>
ruby 2.1.0dev (2013-07-21 trunk 42095) [x86_64-linux]<br>
./miniruby -v benchmark/bm_app_factorial.rb 1.17s user 0.00s system 99% cpu 1.184 total</p>
<p>% time ./miniruby -v benchmark/bm_app_factorial.rb<br>
ruby 2.1.0dev (2013-07-21 trunk 42096) [x86_64-linux]<br>
./miniruby -v benchmark/bm_app_factorial.rb 2.11s user 0.02s system 99% cpu 2.137 total</p> Ruby master - Bug #8679 (Closed): Time.newのutc_offset文字列で、 MMが60-99の場合にも例外を出して欲しいhttps://redmine.ruby-lang.org/issues/86792013-07-24T18:05:06Zkachick (Kenichi Kamiya)kachick1@gmail.com
<a name="要望"></a>
<h2 >要望<a href="#要望" class="wiki-anchor">¶</a></h2>
<p>Time.new へ utc_offset を表す文字列 "+HH:MM" "-HH:MM" が渡された時、<br>
MM が 60-99 の場合にも ArgumentError を出して欲しい。</p>
<a name="期待する結果の例"></a>
<h3 >期待する結果の例<a href="#期待する結果の例" class="wiki-anchor">¶</a></h3>
<p>Time.new(2000, 1, 1, 0, 0, 0, "+01:60") #=> "+HH:MM" or "-HH:MM" expected for utc_offset (ArgumentError)<br>
Time.new(2000, 1, 1, 0, 0, 0, "+01:99") #=> "+HH:MM" or "-HH:MM" expected for utc_offset (ArgumentError)</p>
<a name="現状"></a>
<h2 >現状<a href="#現状" class="wiki-anchor">¶</a></h2>
<a name="ArgumentError-を出す例"></a>
<h3 >ArgumentError を出す例<a href="#ArgumentError-を出す例" class="wiki-anchor">¶</a></h3>
<p>Time.new(2000, 1, 1, 0, 0, 0, "+23:60") #=> utc_offset out of range (ArgumentError)<br>
Time.new(2000, 1, 1, 0, 0, 0, "+01:100") #=> "+HH:MM" or "-HH:MM" expected for utc_offset (ArgumentError)</p>
<a name="ArgumentError-を出さない例"></a>
<h3 >ArgumentError を出さない例<a href="#ArgumentError-を出さない例" class="wiki-anchor">¶</a></h3>
<p>Time.new(2000, 1, 1, 0, 0, 0, "+01:60") #=> 2000-01-01 00:00:00 +0200<br>
Time.new(2000, 1, 1, 0, 0, 0, "+01:99") #=> 2000-01-01 00:00:00 +0239</p>
<a name="付記"></a>
<h2 >付記<a href="#付記" class="wiki-anchor">¶</a></h2>
<ul>
<li>
<p>次の RubySpec が通らない事により気づいたのですが、<br>
これに関しては RubySpec 側で記載された動作になってくれた方が嬉しいと思いました。</p>
<p><a href="https://github.com/rubyspec/rubyspec/commit/05564bdd92d9f36fcfc60f76f4f6b1f6c1171fe5" class="external">RubySpec</a></p>
</li>
<li>
<p><a href="https://github.com/kachick/ruby/commit/2c22e381a5080e0bd1b2a163f2f23f718e20d4b5" class="external">example-patch</a></p>
</li>
</ul>
<a name="ruby-v"></a>
<h3 >ruby -v<a href="#ruby-v" class="wiki-anchor">¶</a></h3>
<ul>
<li>
<p>ruby 2.1.0dev (2013-07-23 trunk 42140) [i686-linux]</p>
</li>
<li>
<p>ruby 2.0.0p247 (2013-06-27 revision 41674) [i686-linux]</p>
</li>
<li>
<p>ruby 1.9.3p448 (2013-06-27 revision 41675) [i686-linux]</p>
</li>
<li>
<p>ruby 2.0.0p247 (2013-06-27 revision 41674) [x86_64-darwin12.4.0]</p>
</li>
<li>
<p>ruby 1.9.3p448 (2013-06-27 revision 41675) [x86_64-darwin12.4.0]</p>
</li>
</ul> Ruby master - Bug #8605 (Rejected): TestSocket_TCPSocket#test_initialize_failure fails on Windowshttps://redmine.ruby-lang.org/issues/86052013-07-05T20:56:01Zusa (Usaku NAKAMURA)usa@garbagecollect.jp
<p>=begin<br>
表題の通りですが、こんな風に失敗しています。</p>
<ol start="76">
<li>Failure:<br>
TestSocket_TCPSocket#test_initialize_failure [D:/tmp/mswin-build20130705-8260-1av0ek2/ruby/test/socket/test_tcp.rb:24]:<br>
Expected /for\ "127.0.0.1"\ port\ 11459/ to match "Only one usage of each socket address (protocol/network address/port) is normally permitted. - connect(2) for "127.0.0.1" port 11458".</li>
</ol>
<p>テストを眺めると、クライアントポート側で失敗するはずだ、と明記されているわけですが、なぜかご覧の通りでサーバポート側でエラーメッセージが出力されております。<br>
これはrubyでどうにかすべき問題でしょうか? それとも単にプラットフォーム依存として片付けるべき?<br>
=end</p> Ruby master - Bug #8574 (Closed): CI Build failure introduced by r41686https://redmine.ruby-lang.org/issues/85742013-06-28T19:20:17Zluislavena (Luis Lavena)luislavena@gmail.com
<p>=begin<br>
Hello,</p>
<p>r41686 caused a failure in RubyInstaller CI for both x86 and x64:</p>
<p><a href="http://ci.rubyinstaller.org/job/ruby-trunk-x64-test-all/1474/console" class="external">http://ci.rubyinstaller.org/job/ruby-trunk-x64-test-all/1474/console</a><br>
<a href="http://ci.rubyinstaller.org/job/ruby-trunk-x86-test-all/1675/console" class="external">http://ci.rubyinstaller.org/job/ruby-trunk-x86-test-all/1675/console</a></p>
<ol>
<li>Failure:<br>
TestSocket_TCPSocket#test_initialize_failure [C:/Users/Worker/Jenkins/workspace/ruby-trunk-x86-build/test/socket/test_tcp.rb:24]:<br>
Expected /for\ "127.0.0.1"\ port\ 57239/ to match "Only one usage of each socket address (protocol/network address/port) is normally permitted. - connect(2) for "127.0.0.1" port 57238".</li>
</ol>
<p>Seems the port is wrong by 1.</p>
<p>=end</p> Ruby master - Bug #8522 (Closed): r41264 causes "implicit conversion loses integer precision" on ...https://redmine.ruby-lang.org/issues/85222013-06-13T05:28:17Zdrbrain (Eric Hodel)drbrain@segment7.net
<p>=begin<br>
compiling ../trunk/bignum.c<br>
../trunk/bignum.c:1128:46: error: implicit conversion loses integer precision:<br>
'unsigned long' to 'int' [-Werror,-Wshorten-64-to-32]<br>
*nlp_bits_ret = num_bdigits * BITSPERDIG - num_bits;<br>
~ ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~<br>
1 error generated.<br>
make: *** [bignum.o] Error 1</p>
<p>=end</p> Ruby master - Bug #8445 (Assigned): IO.open and IO#set_enconding does not support :fallback optionhttps://redmine.ruby-lang.org/issues/84452013-05-24T22:03:00Zpjmtdw (Haruhiro Yoshimoto)pjmtdw@gmail.com
<p>RubyDoc says that <code>IO.open</code> and <code>IO#set_encoding</code> supports optional argument defined in <code>String#encode</code>.<br>
<a href="http://ruby-doc.org/core-2.0/IO.html#method-c-new-label-Options" class="external">http://ruby-doc.org/core-2.0/IO.html#method-c-new-label-Options</a><br>
In fact, <code>:invalid, :undef and :replace</code> works as expected.</p>
<p>However, <code>:fallback</code> option does not work neither for <code>IO.open</code> and <code>IO#set_encoding</code>.<br>
Following is the example code which does not work.<br>
<code>f(x)</code> is never called even if hoge.txt contains non convertible character.</p>
<pre><code class="ruby syntaxhl" data-language="ruby"><span class="no">File</span><span class="p">.</span><span class="nf">open</span><span class="p">(</span><span class="s2">"./hoge.txt"</span><span class="p">,</span><span class="s2">"r:Shift_JIS:utf-8"</span><span class="p">,</span> <span class="ss">:fallback</span> <span class="o">=></span> <span class="nb">lambda</span><span class="p">{</span><span class="o">|</span><span class="n">x</span><span class="o">|</span><span class="n">f</span><span class="p">(</span><span class="n">x</span><span class="p">)}){</span><span class="o">|</span><span class="n">f</span><span class="o">|</span>
<span class="o">...</span>
<span class="p">}</span>
<span class="no">File</span><span class="p">.</span><span class="nf">open</span><span class="p">(</span><span class="s2">"./hoge.txt"</span><span class="p">){</span><span class="o">|</span><span class="n">f</span><span class="o">|</span>
<span class="n">f</span><span class="p">.</span><span class="nf">set_encoding</span><span class="p">(</span><span class="s2">"Shift_JIS"</span><span class="p">,</span><span class="s2">"utf-8"</span><span class="p">,</span><span class="ss">:fallback</span> <span class="o">=></span> <span class="nb">lambda</span><span class="p">{</span><span class="o">|</span><span class="n">x</span><span class="o">|</span><span class="n">f</span><span class="p">(</span><span class="n">x</span><span class="p">)})</span>
<span class="o">...</span>
<span class="p">}</span>
</code></pre>
<p>I Think this is because <code>fill_cbuf()</code> in <code>io.c</code> calls <code>rb_econv_convert()</code> from <code>transcode.c</code> directly.<br>
On the other hand, <code>fallback_func</code> is called in <code>transcode_loop()</code>, which is called by <code>str_encode()</code>.</p>
<p>Since <code>transcode_loop()</code> also calls <code>rb_econv_convert()</code>, I wrote a small patch which moves some codes from<br>
<code>transcode_loop()</code> to <code>rb_econv_convert()</code> to fix the problem.</p>
<p>The attached file is the patch. Hope this helps.</p> Ruby master - Bug #8113 (Closed): ArgumentError: cannot interpret as DNS name: nilhttps://redmine.ruby-lang.org/issues/81132013-03-18T20:48:56Zjaz_lim (Jaz Lim)angmeng@gmail.com
<p>Loading development environment (Rails 3.2.12)<br>
irb(main):001:0> open("<a href="http://www.ruby-lang.org/" class="external">http://www.ruby-lang.org/</a>") {|f|<br>
irb(main):002:1* f.each_line {|line| p line}<br>
irb(main):003:1> }<br>
ArgumentError: cannot interpret as DNS name: nil<br>
from /usr/local/lib/ruby/2.0.0/resolv.rb:1176:in <code>create' from /usr/local/lib/ruby/2.0.0/resolv.rb:1022:in </code>generate_candidates'<br>
from /usr/local/lib/ruby/2.0.0/resolv.rb:1047:in <code>resolv' from /usr/local/lib/ruby/2.0.0/resolv.rb:513:in </code>each_resource'<br>
from /usr/local/lib/ruby/2.0.0/resolv.rb:406:in <code>each_address' from /usr/local/lib/ruby/2.0.0/resolv.rb:115:in </code>block in each_address'<br>
from /usr/local/lib/ruby/2.0.0/resolv.rb:114:in <code>each' from /usr/local/lib/ruby/2.0.0/resolv.rb:114:in </code>each_address'<br>
from /usr/local/lib/ruby/2.0.0/resolv.rb:92:in <code>getaddress' from /usr/local/lib/ruby/2.0.0/resolv.rb:43:in </code>getaddress'<br>
from /usr/local/lib/ruby/2.0.0/resolv-replace.rb:10:in <code>getaddress' from /usr/local/lib/ruby/2.0.0/resolv-replace.rb:22:in </code>initialize'<br>
from /usr/local/lib/ruby/2.0.0/net/http.rb:877:in <code>open' from /usr/local/lib/ruby/2.0.0/net/http.rb:877:in </code>block in connect'<br>
from /usr/local/lib/ruby/2.0.0/timeout.rb:51:in <code>timeout' from /usr/local/lib/ruby/2.0.0/net/http.rb:876:in </code>connect'<br>
from /usr/local/lib/ruby/2.0.0/net/http.rb:861:in <code>do_start' from /usr/local/lib/ruby/2.0.0/net/http.rb:850:in </code>start'<br>
from /usr/local/lib/ruby/2.0.0/open-uri.rb:313:in <code>open_http' from /usr/local/lib/ruby/2.0.0/open-uri.rb:708:in </code>buffer_open'<br>
from /usr/local/lib/ruby/2.0.0/open-uri.rb:210:in <code>block in open_loop' from /usr/local/lib/ruby/2.0.0/open-uri.rb:208:in </code>catch'<br>
from /usr/local/lib/ruby/2.0.0/open-uri.rb:208:in <code>open_loop' from /usr/local/lib/ruby/2.0.0/open-uri.rb:149:in </code>open_uri'<br>
from /usr/local/lib/ruby/2.0.0/open-uri.rb:688:in <code>open' from /usr/local/lib/ruby/2.0.0/open-uri.rb:34:in </code>open'<br>
from (irb):1<br>
from /usr/local/lib/ruby/gems/2.0.0/gems/railties-3.2.12/lib/rails/commands/console.rb:47:in <code>start' from /usr/local/lib/ruby/gems/2.0.0/gems/railties-3.2.12/lib/rails/commands/console.rb:8:in </code>start'<br>
from /usr/local/lib/ruby/gems/2.0.0/gems/railties-3.2.12/lib/rails/commands.rb:41:in <code><top (required)>' from script/rails:6:in </code>require'<br>
from script/rails:6:in `'</p> Ruby master - Bug #7829 (Closed): Rounding error in Ruby Timehttps://redmine.ruby-lang.org/issues/78292013-02-12T05:52:16Zloirotte (Philippe Dosch)loirotte@gmail.com
<p>Even if I know the precision errors related to the implementation of IEEE 754 floating values, I'm very surprised of:</p>
<p>irb(main):001:0> Time.utc(1970,1,1,0,0,12.860).strftime("%H:%M:%S,%L")<br>
=> "00:00:12,859"</p>
<p>The fact is that I obtain:</p>
<p>irb(main):002:0> Time.utc( 1970, 1, 1, 0, 0, 12.860 ).subsec<br>
=> (60517119992791/70368744177664)<br>
irb(main):003:0> Time.utc( 1970, 1, 1, 0, 0, 12.860 ).subsec.to_f<br>
=> 0.8599999999999994</p>
<p>If I well understand the precision error that is reported for the 12th or 14th digit after the comma, I don't understand why the rounding process gives an unexpected result for this value. In this case, the last significant digit of my value is impacted, and it appears to be a embarrassing behavior. For other values, the obtained result is as expected:</p>
<p>irb(main):001:0> Time.utc(1970,1,1,0,0,12.880).strftime("%H:%M:%S,%L")<br>
=> "00:00:12,880"</p>
<p>Moreover, this is a part of the Time class and I don't know any way to fix it in a program (and I don't know the full list of values reproducing this issue...)</p> Ruby master - Bug #7811 (Closed): SecureRandom::random_bytes Only use random bytes, not extra Stringhttps://redmine.ruby-lang.org/issues/78112013-02-09T12:12:20Zzzak (zzak _)
<p>=begin<br>
From ((<github #247|URL:<a href="https://github.com/ruby/ruby/pull/247%3E" class="external">https://github.com/ruby/ruby/pull/247></a>))<br>
=end</p> Ruby master - Bug #7489 (Closed): Kernel.spawn sometimes executes string directlyhttps://redmine.ruby-lang.org/issues/74892012-12-02T02:58:14Zjcaesar (Julius Caesar)
<p>Kernel.spawn throws an exception in certain cases where it shouldn't.<br>
It seems to attempt to execute the command directly, rather than passing<br>
it to the shell.</p>
<p>See the demo script below. What should happen, when I run this script,<br>
is that both assertions should fail, and there should be an error message<br>
from the testing framework about each test. What actually happens is<br>
that both tests pass and the test framework reports success.</p>
<p>#-------------------------------<br>
require 'test/unit'</p>
<p>class TestSpawn < Test::Unit::TestCase<br>
#> either command would work fine if executed</p>
<a name="in-the-shell"></a>
<h1 >in the shell.<a href="#in-the-shell" class="wiki-anchor">¶</a></h1>
<p>def test1<br>
assert_raises(Errno::ENOENT) { spawn ':' }<br>
end</p>
<p>def test2<br>
assert_raises(Errno::ENOENT) { spawn 'a=b true' }<br>
end<br>
end<br>
#-------------------------------</p>
<p>My compiler is GCC, and the output of "gcc --version" is:</p>
<p>gcc-4.4.real (Debian 4.4.5-8) 4.4.5<br>
Copyright (C) 2010 Free Software Foundation, Inc.<br>
This is free software; see the source for copying conditions. There is NO<br>
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.</p>
<p>Please note that I have attached my rbconfig.rb file.</p> Ruby master - Bug #7183 (Closed): Resolv::DNS::getresources throws Errno::EACCES: Permission deni...https://redmine.ruby-lang.org/issues/71832012-10-18T21:47:26Zfrank_meier (Frank Meier)
<p>we have ruby running on Solaris. sometimes one of our tools fails with exception Errno::EACCES while calling Resolv::DNS::getresources. This only happens one out of thousands of times the tool is used.<br>
After looking into lib/resolv.rb I saw, there is an optimistic loop in bind_random_port(), which looks to me it is thought of the possibility that a unusable port is selected (one that is used by another process), and if that happens it is tried again. Unfortunately it is only done when the exception is Errno::EADDRINUSE, what might be correct in Linux, but not Solaris (Sol10u6).</p>
<p>I propose to add Errno::EACCESS to the raise statement. Maybe a retry count limit as well:</p>
<pre><code>def self.bind_random_port(udpsock, bind_host="0.0.0.0") # :nodoc:
begin
count += 1
port = rangerand(1024..65535)
udpsock.bind(bind_host, port)
rescue Errno::EADDRINUSE, Errno::EACCESS => e
if count < 10
retry
else
raise e
end
end
end
</code></pre> Ruby master - Bug #7167 (Closed): Segmentation Faulthttps://redmine.ruby-lang.org/issues/71672012-10-16T03:58:41Zushi (ushi kalcher)martin.kalcher@gmail.com
<p>I got a segfault trying to install the prawn gem via rubygems on a archlinux box. Please tell me how i can help.</p>
<p>% sudo ruby -v /usr/bin/gem install prawn<br>
ruby 1.9.3p286 (2012-10-12 revision 37165) [x86_64-linux]<br>
/usr/lib/ruby/1.9.1/rubygems/psych_tree.rb:31: warning: method redefined; discarding old visit_String<br>
/usr/lib/ruby/1.9.1/rubygems/psych_tree.rb:4: warning: previous definition of visit_String was here<br>
/usr/lib/ruby/1.9.1/rubygems/psych_tree.rb:39: warning: method redefined; discarding old register<br>
/usr/lib/ruby/1.9.1/rubygems/psych_tree.rb:12: warning: previous definition of register was here<br>
/usr/lib/ruby/1.9.1/rubygems/psych_tree.rb:43: warning: method redefined; discarding old format_time<br>
/usr/lib/ruby/1.9.1/rubygems/psych_tree.rb:16: warning: previous definition of format_time was here<br>
/usr/lib/ruby/1.9.1/rubygems/syck_hack.rb:115: warning: method redefined; discarding old to_s<br>
/usr/lib/ruby/1.9.1/rubygems/syck_hack.rb:44: warning: previous definition of to_s was here<br>
Fetching: prawn-0.12.0.gem ( 78%)/usr/lib/ruby/1.9.1/net/protocol.rb:141: [BUG] rb_gc_mark(): unknown data type 0x0(0x27a3568) non object<br>
ruby 1.9.3p286 (2012-10-12 revision 37165) [x86_64-linux]</p>
<p>-- Control frame information -----------------------------------------------<br>
c:0035 p:---- s:0188 b:0188 l:000187 d:000187 CFUNC :read_nonblock<br>
c:0034 p:0025 s:0184 b:0183 l:000182 d:000182 METHOD /usr/lib/ruby/1.9.1/net/protocol.rb:141<br>
c:0033 p:0090 s:0180 b:0180 l:000179 d:000179 METHOD /usr/lib/ruby/1.9.1/net/protocol.rb:92<br>
c:0032 p:0067 s:0172 b:0172 l:000171 d:000171 METHOD /usr/lib/ruby/1.9.1/net/http.rb:2755<br>
c:0031 p:0102 s:0167 b:0167 l:000166 d:000166 METHOD /usr/lib/ruby/1.9.1/net/http.rb:2710<br>
c:0030 p:0071 s:0161 b:0161 l:001d30 d:001d20 BLOCK /usr/lib/ruby/1.9.1/rubygems/remote_fetcher.rb:423<br>
c:0029 p:0017 s:0156 b:0156 l:000140 d:000155 BLOCK /usr/lib/ruby/1.9.1/net/http.rb:1322<br>
c:0028 p:0042 s:0154 b:0154 l:000153 d:000153 METHOD /usr/lib/ruby/1.9.1/net/http.rb:2671<br>
c:0027 p:0106 s:0149 b:0149 l:000140 d:000148 BLOCK /usr/lib/ruby/1.9.1/net/http.rb:1321<br>
c:0026 p:---- s:0147 b:0147 l:000146 d:000146 FINISH<br>
c:0025 p:---- s:0145 b:0145 l:000144 d:000144 CFUNC :catch<br>
c:0024 p:0025 s:0141 b:0141 l:000140 d:000140 METHOD /usr/lib/ruby/1.9.1/net/http.rb:1316<br>
c:0023 p:0097 s:0135 b:0135 l:000134 d:000134 METHOD /usr/lib/ruby/1.9.1/net/http.rb:1293<br>
c:0022 p:0373 s:0128 b:0128 l:001d30 d:001d30 METHOD /usr/lib/ruby/1.9.1/rubygems/remote_fetcher.rb:417<br>
c:0021 p:0060 s:0114 b:0114 l:000113 d:000113 METHOD /usr/lib/ruby/1.9.1/rubygems/remote_fetcher.rb:205<br>
c:0020 p:0392 s:0104 b:0104 l:000103 d:000103 METHOD /usr/lib/ruby/1.9.1/rubygems/remote_fetcher.rb:220<br>
c:0019 p:0149 s:0094 b:0094 l:000093 d:000093 METHOD /usr/lib/ruby/1.9.1/rubygems/remote_fetcher.rb:238<br>
c:0018 p:0489 s:0086 b:0086 l:000085 d:000085 METHOD /usr/lib/ruby/1.9.1/rubygems/remote_fetcher.rb:135<br>
c:0017 p:0140 s:0071 b:0071 l:000053 d:000070 BLOCK /usr/lib/ruby/1.9.1/rubygems/dependency_installer.rb:278<br>
c:0016 p:---- s:0063 b:0063 l:000062 d:000062 FINISH<br>
c:0015 p:---- s:0061 b:0061 l:000056 d:000060 IFUNC<br>
c:0014 p:---- s:0059 b:0059 l:000058 d:000058 CFUNC :each<br>
c:0013 p:---- s:0057 b:0057 l:000056 d:000056 CFUNC :each_with_index<br>
c:0012 p:0134 s:0054 b:0054 l:000053 d:000053 METHOD /usr/lib/ruby/1.9.1/rubygems/dependency_installer.rb:270<br>
c:0011 p:0119 s:0048 b:0048 l:000037 d:000047 BLOCK /usr/lib/ruby/1.9.1/rubygems/commands/install_command.rb:121<br>
c:0010 p:---- s:0043 b:0043 l:000042 d:000042 FINISH<br>
c:0009 p:---- s:0041 b:0041 l:000040 d:000040 CFUNC :each<br>
c:0008 p:0118 s:0038 b:0038 l:000037 d:000037 METHOD /usr/lib/ruby/1.9.1/rubygems/commands/install_command.rb:115<br>
c:0007 p:0076 s:0032 b:0032 l:000031 d:000031 METHOD /usr/lib/ruby/1.9.1/rubygems/command.rb:278<br>
c:0006 p:0193 s:0028 b:0028 l:000027 d:000027 METHOD /usr/lib/ruby/1.9.1/rubygems/command_manager.rb:147<br>
c:0005 p:0013 s:0022 b:0022 l:000021 d:000021 METHOD /usr/lib/ruby/1.9.1/rubygems/command_manager.rb:117<br>
c:0004 p:0178 s:0017 b:0017 l:000016 d:000016 METHOD /usr/lib/ruby/1.9.1/rubygems/gem_runner.rb:65<br>
c:0003 p:0164 s:0009 b:0009 l:001248 d:0009b0 EVAL /usr/bin/gem:21<br>
c:0002 p:---- s:0004 b:0004 l:000003 d:000003 FINISH<br>
c:0001 p:0000 s:0002 b:0002 l:001248 d:001248 TOP</p>
<p>-- Ruby level backtrace information ----------------------------------------<br>
/usr/bin/gem:21:in <code><main>' /usr/lib/ruby/1.9.1/rubygems/gem_runner.rb:65:in </code>run'<br>
/usr/lib/ruby/1.9.1/rubygems/command_manager.rb:117:in <code>run' /usr/lib/ruby/1.9.1/rubygems/command_manager.rb:147:in </code>process_args'<br>
/usr/lib/ruby/1.9.1/rubygems/command.rb:278:in <code>invoke' /usr/lib/ruby/1.9.1/rubygems/commands/install_command.rb:115:in </code>execute'<br>
/usr/lib/ruby/1.9.1/rubygems/commands/install_command.rb:115:in <code>each' /usr/lib/ruby/1.9.1/rubygems/commands/install_command.rb:121:in </code>block in execute'<br>
/usr/lib/ruby/1.9.1/rubygems/dependency_installer.rb:270:in <code>install' /usr/lib/ruby/1.9.1/rubygems/dependency_installer.rb:270:in </code>each_with_index'<br>
/usr/lib/ruby/1.9.1/rubygems/dependency_installer.rb:270:in <code>each' /usr/lib/ruby/1.9.1/rubygems/dependency_installer.rb:278:in </code>block in install'<br>
/usr/lib/ruby/1.9.1/rubygems/remote_fetcher.rb:135:in <code>download' /usr/lib/ruby/1.9.1/rubygems/remote_fetcher.rb:238:in </code>fetch_path'<br>
/usr/lib/ruby/1.9.1/rubygems/remote_fetcher.rb:220:in <code>fetch_http' /usr/lib/ruby/1.9.1/rubygems/remote_fetcher.rb:205:in </code>fetch_http'<br>
/usr/lib/ruby/1.9.1/rubygems/remote_fetcher.rb:417:in <code>request' /usr/lib/ruby/1.9.1/net/http.rb:1293:in </code>request'<br>
/usr/lib/ruby/1.9.1/net/http.rb:1316:in <code>transport_request' /usr/lib/ruby/1.9.1/net/http.rb:1316:in </code>catch'<br>
/usr/lib/ruby/1.9.1/net/http.rb:1321:in <code>block in transport_request' /usr/lib/ruby/1.9.1/net/http.rb:2671:in </code>reading_body'<br>
/usr/lib/ruby/1.9.1/net/http.rb:1322:in <code>block (2 levels) in transport_request' /usr/lib/ruby/1.9.1/rubygems/remote_fetcher.rb:423:in </code>block in request'<br>
/usr/lib/ruby/1.9.1/net/http.rb:2710:in <code>read_body' /usr/lib/ruby/1.9.1/net/http.rb:2755:in </code>read_body_0'<br>
/usr/lib/ruby/1.9.1/net/protocol.rb:92:in <code>read' /usr/lib/ruby/1.9.1/net/protocol.rb:141:in </code>rbuf_fill'<br>
/usr/lib/ruby/1.9.1/net/protocol.rb:141:in `read_nonblock'</p>
<p>-- C level backtrace information -------------------------------------------<br>
/usr/lib/libruby.so.1.9(+0x155839) [0x7f3921662839]<br>
/usr/lib/libruby.so.1.9(+0x57d79) [0x7f3921564d79]<br>
/usr/lib/libruby.so.1.9(rb_bug+0xb3) [0x7f3921565563]<br>
/usr/lib/libruby.so.1.9(+0x6bb91) [0x7f3921578b91]<br>
/usr/lib/libruby.so.1.9(+0x6bafb) [0x7f3921578afb]<br>
/usr/lib/libruby.so.1.9(+0x6bafb) [0x7f3921578afb]<br>
/usr/lib/libruby.so.1.9(+0x6bf50) [0x7f3921578f50]<br>
/usr/lib/libruby.so.1.9(st_foreach+0xbd) [0x7f392160bc3d]<br>
/usr/lib/libruby.so.1.9(+0x6b719) [0x7f3921578719]<br>
/usr/lib/libruby.so.1.9(+0x6bb3b) [0x7f3921578b3b]<br>
/usr/lib/libruby.so.1.9(+0x6bf82) [0x7f3921578f82]<br>
/usr/lib/libruby.so.1.9(st_foreach+0x47) [0x7f392160bbc7]<br>
/usr/lib/libruby.so.1.9(+0x6a726) [0x7f3921577726]<br>
/usr/lib/libruby.so.1.9(+0x6ba4c) [0x7f3921578a4c]<br>
/usr/lib/libruby.so.1.9(+0x6bf16) [0x7f3921578f16]<br>
/usr/lib/libruby.so.1.9(st_foreach+0xbd) [0x7f392160bc3d]<br>
/usr/lib/libruby.so.1.9(+0x6ba71) [0x7f3921578a71]<br>
/usr/lib/libruby.so.1.9(+0x6b7ae) [0x7f39215787ae]<br>
/usr/lib/libruby.so.1.9(+0x13bf25) [0x7f3921648f25]<br>
/usr/lib/libruby.so.1.9(+0x6b6ca) [0x7f39215786ca]<br>
/usr/lib/libruby.so.1.9(+0x6beea) [0x7f3921578eea]<br>
/usr/lib/libruby.so.1.9(st_foreach+0x47) [0x7f392160bbc7]<br>
/usr/lib/libruby.so.1.9(+0x6ba39) [0x7f3921578a39]<br>
/usr/lib/libruby.so.1.9(+0x6b4f5) [0x7f39215784f5]<br>
/usr/lib/libruby.so.1.9(+0x6b4f5) [0x7f39215784f5]<br>
/usr/lib/libruby.so.1.9(+0x6b4f5) [0x7f39215784f5]<br>
/usr/lib/libruby.so.1.9(+0x6bafb) [0x7f3921578afb]<br>
/usr/lib/libruby.so.1.9(+0x6bafb) [0x7f3921578afb]<br>
/usr/lib/libruby.so.1.9(+0x6bafb) [0x7f3921578afb]<br>
/usr/lib/libruby.so.1.9(+0x6bd72) [0x7f3921578d72]<br>
/usr/lib/libruby.so.1.9(+0x14062e) [0x7f392164d62e]<br>
/usr/lib/libruby.so.1.9(+0x6b6ca) [0x7f39215786ca]<br>
/usr/lib/libruby.so.1.9(+0x6bd72) [0x7f3921578d72]<br>
/usr/lib/libruby.so.1.9(+0x14062e) [0x7f392164d62e]<br>
/usr/lib/libruby.so.1.9(+0x6b6ca) [0x7f39215786ca]<br>
/usr/lib/libruby.so.1.9(+0x5fb65) [0x7f392156cb65]<br>
/usr/lib/libruby.so.1.9(+0x6b6ca) [0x7f39215786ca]<br>
/usr/lib/libruby.so.1.9(+0x6bb3b) [0x7f3921578b3b]<br>
/usr/lib/libruby.so.1.9(+0x6bf50) [0x7f3921578f50]<br>
/usr/lib/libruby.so.1.9(st_foreach+0xbd) [0x7f392160bc3d]<br>
/usr/lib/libruby.so.1.9(+0x6b719) [0x7f3921578719]<br>
/usr/lib/libruby.so.1.9(+0x6bb3b) [0x7f3921578b3b]<br>
/usr/lib/libruby.so.1.9(+0x6bafb) [0x7f3921578afb]<br>
/usr/lib/libruby.so.1.9(+0x6bb3b) [0x7f3921578b3b]<br>
/usr/lib/libruby.so.1.9(+0x6bb3b) [0x7f3921578b3b]<br>
/usr/lib/libruby.so.1.9(+0x1406a5) [0x7f392164d6a5]<br>
/usr/lib/libruby.so.1.9(+0x6b6ca) [0x7f39215786ca]<br>
/usr/lib/libruby.so.1.9(+0x5fb65) [0x7f392156cb65]<br>
/usr/lib/libruby.so.1.9(+0x6b6ca) [0x7f39215786ca]<br>
/usr/lib/libruby.so.1.9(+0x6bafb) [0x7f3921578afb]<br>
/usr/lib/libruby.so.1.9(+0x6bf50) [0x7f3921578f50]<br>
/usr/lib/libruby.so.1.9(st_foreach+0xbd) [0x7f392160bc3d]<br>
/usr/lib/libruby.so.1.9(+0x6b719) [0x7f3921578719]<br>
/usr/lib/libruby.so.1.9(+0x6bb3b) [0x7f3921578b3b]<br>
/usr/lib/libruby.so.1.9(+0x6bafb) [0x7f3921578afb]<br>
/usr/lib/libruby.so.1.9(+0x6bf82) [0x7f3921578f82]<br>
/usr/lib/libruby.so.1.9(st_foreach+0x47) [0x7f392160bbc7]<br>
/usr/lib/libruby.so.1.9(+0x6a726) [0x7f3921577726]<br>
/usr/lib/libruby.so.1.9(+0x6ba4c) [0x7f3921578a4c]<br>
/usr/lib/libruby.so.1.9(+0x6b7ae) [0x7f39215787ae]<br>
/usr/lib/libruby.so.1.9(+0x13bf25) [0x7f3921648f25]<br>
/usr/lib/libruby.so.1.9(+0x6b6ca) [0x7f39215786ca]<br>
/usr/lib/libruby.so.1.9(+0x6bafb) [0x7f3921578afb]<br>
/usr/lib/libruby.so.1.9(+0x13bf65) [0x7f3921648f65]<br>
/usr/lib/libruby.so.1.9(+0x6b6ca) [0x7f39215786ca]<br>
/usr/lib/libruby.so.1.9(+0x6beea) [0x7f3921578eea]<br>
/usr/lib/libruby.so.1.9(st_foreach+0x47) [0x7f392160bbc7]<br>
/usr/lib/libruby.so.1.9(+0x6ba39) [0x7f3921578a39]<br>
/usr/lib/libruby.so.1.9(+0x6b4f5) [0x7f39215784f5]<br>
/usr/lib/libruby.so.1.9(+0x6b4f5) [0x7f39215784f5]<br>
/usr/lib/libruby.so.1.9(+0x6b4f5) [0x7f39215784f5]<br>
/usr/lib/libruby.so.1.9(+0x74dae) [0x7f3921581dae]<br>
/usr/lib/libruby.so.1.9(+0x6b6ca) [0x7f39215786ca]<br>
/usr/lib/libruby.so.1.9(+0x6bf16) [0x7f3921578f16]<br>
/usr/lib/libruby.so.1.9(st_foreach+0xbd) [0x7f392160bc3d]<br>
/usr/lib/libruby.so.1.9(+0x6ba71) [0x7f3921578a71]<br>
/usr/lib/libruby.so.1.9(+0x6b4f5) [0x7f39215784f5]<br>
/usr/lib/libruby.so.1.9(+0x13bf55) [0x7f3921648f55]<br>
/usr/lib/libruby.so.1.9(+0x6b6ca) [0x7f39215786ca]<br>
/usr/lib/libruby.so.1.9(+0x6beea) [0x7f3921578eea]<br>
/usr/lib/libruby.so.1.9(st_foreach+0x47) [0x7f392160bbc7]<br>
/usr/lib/libruby.so.1.9(+0x6ba39) [0x7f3921578a39]<br>
/usr/lib/libruby.so.1.9(+0x6bf82) [0x7f3921578f82]<br>
/usr/lib/libruby.so.1.9(st_foreach+0x47) [0x7f392160bbc7]<br>
/usr/lib/libruby.so.1.9(+0x6a726) [0x7f3921577726]<br>
/usr/lib/libruby.so.1.9(+0x6ba4c) [0x7f3921578a4c]<br>
/usr/lib/libruby.so.1.9(+0x6b4f5) [0x7f39215784f5]<br>
/usr/lib/libruby.so.1.9(+0x6b4f5) [0x7f39215784f5]<br>
/usr/lib/libruby.so.1.9(+0x6b4f5) [0x7f39215784f5]<br>
/usr/lib/libruby.so.1.9(+0x6beea) [0x7f3921578eea]<br>
/usr/lib/libruby.so.1.9(st_foreach+0xbd) [0x7f392160bc3d]<br>
/usr/lib/libruby.so.1.9(+0x6ba39) [0x7f3921578a39]<br>
/usr/lib/libruby.so.1.9(+0x6bf82) [0x7f3921578f82]<br>
/usr/lib/libruby.so.1.9(st_foreach+0x47) [0x7f392160bbc7]<br>
/usr/lib/libruby.so.1.9(+0x6a726) [0x7f3921577726]<br>
/usr/lib/libruby.so.1.9(+0x6ba4c) [0x7f3921578a4c]<br>
/usr/lib/libruby.so.1.9(+0x6bf82) [0x7f3921578f82]<br>
/usr/lib/libruby.so.1.9(st_foreach+0x47) [0x7f392160bbc7]<br>
/usr/lib/libruby.so.1.9(+0x6a726) [0x7f3921577726]<br>
/usr/lib/libruby.so.1.9(+0x6ba4c) [0x7f3921578a4c]<br>
/usr/lib/libruby.so.1.9(+0x6bf82) [0x7f3921578f82]<br>
/usr/lib/libruby.so.1.9(st_foreach+0x47) [0x7f392160bbc7]<br>
/usr/lib/libruby.so.1.9(+0x6a726) [0x7f3921577726]<br>
/usr/lib/libruby.so.1.9(+0x6ba4c) [0x7f3921578a4c]<br>
/usr/lib/libruby.so.1.9(+0x6b4f5) [0x7f39215784f5]<br>
/usr/lib/libruby.so.1.9(+0x6b4f5) [0x7f39215784f5]<br>
/usr/lib/libruby.so.1.9(+0x6b4f5) [0x7f39215784f5]<br>
/usr/lib/libruby.so.1.9(+0x6b4f5) [0x7f39215784f5]<br>
/usr/lib/libruby.so.1.9(+0x6b4f5) [0x7f39215784f5]<br>
/usr/lib/libruby.so.1.9(+0x6d774) [0x7f392157a774]<br>
/usr/lib/libruby.so.1.9(+0x6d9c7) [0x7f392157a9c7]<br>
/usr/lib/libruby.so.1.9(+0x6dd7a) [0x7f392157ad7a]<br>
/usr/lib/libruby.so.1.9(+0x1024aa) [0x7f392160f4aa]<br>
/usr/lib/libruby.so.1.9(+0x75e07) [0x7f3921582e07]<br>
/usr/lib/libruby.so.1.9(+0x7d5b0) [0x7f392158a5b0]<br>
/usr/lib/libruby.so.1.9(+0x7d78e) [0x7f392158a78e]<br>
/usr/lib/libruby.so.1.9(+0x14f9d3) [0x7f392165c9d3]<br>
/usr/lib/libruby.so.1.9(+0x145818) [0x7f3921652818]<br>
/usr/lib/libruby.so.1.9(+0x14aeb0) [0x7f3921657eb0]<br>
/usr/lib/libruby.so.1.9(+0x150d75) [0x7f392165dd75]<br>
/usr/lib/libruby.so.1.9(rb_catch_obj+0xba) [0x7f392165093a]<br>
/usr/lib/libruby.so.1.9(+0x1439de) [0x7f39216509de]<br>
/usr/lib/libruby.so.1.9(+0x14f9d3) [0x7f392165c9d3]<br>
/usr/lib/libruby.so.1.9(+0x145818) [0x7f3921652818]<br>
/usr/lib/libruby.so.1.9(+0x14aeb0) [0x7f3921657eb0]<br>
/usr/lib/libruby.so.1.9(rb_yield_values+0x25d) [0x7f392165ea5d]<br>
/usr/lib/libruby.so.1.9(+0x1444a3) [0x7f39216514a3]<br>
/usr/lib/libruby.so.1.9(rb_yield+0x37b) [0x7f392165e73b]<br>
/usr/lib/libruby.so.1.9(rb_ary_each+0x52) [0x7f39215382a2]<br>
/usr/lib/libruby.so.1.9(+0x14be62) [0x7f3921658e62]<br>
/usr/lib/libruby.so.1.9(rb_iterate+0xcf) [0x7f39216504cf]<br>
/usr/lib/libruby.so.1.9(rb_block_call+0x2b) [0x7f392165068b]<br>
/usr/lib/libruby.so.1.9(+0x53c0b) [0x7f3921560c0b]<br>
/usr/lib/libruby.so.1.9(+0x14f9d3) [0x7f392165c9d3]<br>
/usr/lib/libruby.so.1.9(+0x145818) [0x7f3921652818]<br>
/usr/lib/libruby.so.1.9(+0x14aeb0) [0x7f3921657eb0]<br>
/usr/lib/libruby.so.1.9(rb_yield+0x178) [0x7f392165e538]<br>
/usr/lib/libruby.so.1.9(rb_ary_each+0x52) [0x7f39215382a2]<br>
/usr/lib/libruby.so.1.9(+0x14f9d3) [0x7f392165c9d3]<br>
/usr/lib/libruby.so.1.9(+0x145818) [0x7f3921652818]<br>
/usr/lib/libruby.so.1.9(+0x14aeb0) [0x7f3921657eb0]<br>
/usr/lib/libruby.so.1.9(rb_iseq_eval_main+0xad) [0x7f392165f3bd]<br>
/usr/lib/libruby.so.1.9(+0x5b6ba) [0x7f39215686ba]<br>
/usr/lib/libruby.so.1.9(ruby_exec_node+0x1d) [0x7f392156915d]<br>
/usr/lib/libruby.so.1.9(ruby_run_node+0x1e) [0x7f392156abee]<br>
ruby() [0x4008ab]<br>
/usr/lib/libc.so.6(__libc_start_main+0xf5) [0x7f3921187725]<br>
ruby() [0x4008d9]</p>
<p>-- Other runtime information -----------------------------------------------</p>
<ul>
<li>
<p>Loaded script: /usr/bin/gem</p>
</li>
<li>
<p>Loaded features:</p>
<p>0 enumerator.so<br>
1 /usr/lib/ruby/1.9.1/x86_64-linux/enc/encdb.so<br>
2 /usr/lib/ruby/1.9.1/x86_64-linux/enc/trans/transdb.so<br>
3 /usr/lib/ruby/1.9.1/rubygems/defaults.rb<br>
4 /usr/lib/ruby/1.9.1/x86_64-linux/rbconfig.rb<br>
5 /usr/lib/ruby/1.9.1/rubygems/deprecate.rb<br>
6 /usr/lib/ruby/1.9.1/rubygems/exceptions.rb<br>
7 /usr/lib/ruby/1.9.1/rubygems/custom_require.rb<br>
8 /usr/lib/ruby/1.9.1/rubygems.rb<br>
9 /usr/lib/ruby/1.9.1/optparse.rb<br>
10 /usr/lib/ruby/1.9.1/rubygems/user_interaction.rb<br>
11 /usr/lib/ruby/1.9.1/rubygems/command.rb<br>
12 /usr/lib/ruby/1.9.1/rubygems/command_manager.rb<br>
13 /usr/lib/ruby/1.9.1/x86_64-linux/etc.so<br>
14 /usr/lib/ruby/1.9.1/rubygems/config_file.rb<br>
15 /usr/lib/ruby/1.9.1/rubygems/doc_manager.rb<br>
16 /usr/lib/ruby/1.9.1/rubygems/version.rb<br>
17 /usr/lib/ruby/1.9.1/rubygems/requirement.rb<br>
18 /usr/lib/ruby/1.9.1/rubygems/platform.rb<br>
19 /usr/lib/ruby/1.9.1/rubygems/specification.rb<br>
20 /usr/lib/ruby/1.9.1/rubygems/path_support.rb<br>
21 /usr/lib/ruby/1.9.1/rubygems/dependency.rb<br>
22 /usr/lib/ruby/1.9.1/rubygems/gem_runner.rb<br>
23 /usr/lib/ruby/1.9.1/psych/syntax_error.rb<br>
24 /usr/lib/ruby/1.9.1/x86_64-linux/psych.so<br>
25 /usr/lib/ruby/1.9.1/x86_64-linux/stringio.so<br>
26 /usr/lib/ruby/1.9.1/psych/nodes/node.rb<br>
27 /usr/lib/ruby/1.9.1/psych/nodes/stream.rb<br>
28 /usr/lib/ruby/1.9.1/psych/nodes/document.rb<br>
29 /usr/lib/ruby/1.9.1/psych/nodes/sequence.rb<br>
30 /usr/lib/ruby/1.9.1/psych/nodes/scalar.rb<br>
31 /usr/lib/ruby/1.9.1/psych/nodes/mapping.rb<br>
32 /usr/lib/ruby/1.9.1/psych/nodes/alias.rb<br>
33 /usr/lib/ruby/1.9.1/psych/nodes.rb<br>
34 /usr/lib/ruby/1.9.1/psych/streaming.rb<br>
35 /usr/lib/ruby/1.9.1/psych/visitors/visitor.rb<br>
36 /usr/lib/ruby/1.9.1/x86_64-linux/strscan.so<br>
37 /usr/lib/ruby/1.9.1/psych/scalar_scanner.rb<br>
38 /usr/lib/ruby/1.9.1/psych/visitors/to_ruby.rb<br>
39 /usr/lib/ruby/1.9.1/psych/visitors/emitter.rb<br>
40 /usr/lib/ruby/1.9.1/psych/visitors/yaml_tree.rb<br>
41 /usr/lib/ruby/1.9.1/psych/json/ruby_events.rb<br>
42 /usr/lib/ruby/1.9.1/psych/visitors/json_tree.rb<br>
43 /usr/lib/ruby/1.9.1/psych/visitors/depth_first.rb<br>
44 /usr/lib/ruby/1.9.1/psych/visitors.rb<br>
45 /usr/lib/ruby/1.9.1/psych/handler.rb<br>
46 /usr/lib/ruby/1.9.1/psych/tree_builder.rb<br>
47 /usr/lib/ruby/1.9.1/psych/parser.rb<br>
48 /usr/lib/ruby/1.9.1/psych/omap.rb<br>
49 /usr/lib/ruby/1.9.1/psych/set.rb<br>
50 /usr/lib/ruby/1.9.1/psych/coder.rb<br>
51 /usr/lib/ruby/1.9.1/psych/core_ext.rb<br>
52 /usr/lib/ruby/1.9.1/x86_64-linux/date_core.so<br>
53 /usr/lib/ruby/1.9.1/date/format.rb<br>
54 /usr/lib/ruby/1.9.1/date.rb<br>
55 /usr/lib/ruby/1.9.1/psych/deprecated.rb<br>
56 /usr/lib/ruby/1.9.1/psych/stream.rb<br>
57 /usr/lib/ruby/1.9.1/psych/json/yaml_events.rb<br>
58 /usr/lib/ruby/1.9.1/psych/json/tree_builder.rb<br>
59 /usr/lib/ruby/1.9.1/psych/json/stream.rb<br>
60 /usr/lib/ruby/1.9.1/psych/handlers/document_stream.rb<br>
61 /usr/lib/ruby/1.9.1/psych.rb<br>
62 /usr/lib/ruby/1.9.1/rubygems/psych_additions.rb<br>
63 /usr/lib/ruby/1.9.1/rubygems/psych_tree.rb<br>
64 /usr/lib/ruby/1.9.1/yaml.rb<br>
65 /usr/lib/ruby/1.9.1/rubygems/syck_hack.rb<br>
66 /usr/lib/ruby/1.9.1/x86_64-linux/enc/utf_16le.so<br>
67 /usr/lib/ruby/1.9.1/x86_64-linux/enc/utf_16be.so<br>
68 /usr/lib/ruby/1.9.1/timeout.rb<br>
69 /usr/lib/ruby/1.9.1/rubygems/install_update_options.rb<br>
70 /usr/lib/ruby/1.9.1/tsort.rb<br>
71 /usr/lib/ruby/1.9.1/rubygems/dependency_list.rb<br>
72 /usr/lib/ruby/1.9.1/rubygems/package/f_sync_dir.rb<br>
73 /usr/lib/ruby/1.9.1/rubygems/package/tar_header.rb<br>
74 /usr/lib/ruby/1.9.1/x86_64-linux/enc/iso_8859_1.so<br>
75 /usr/lib/ruby/1.9.1/x86_64-linux/zlib.so<br>
76 /usr/lib/ruby/1.9.1/rubygems/package/tar_input.rb<br>
77 /usr/lib/ruby/1.9.1/rubygems/package/tar_output.rb<br>
78 /usr/lib/ruby/1.9.1/rubygems/package/tar_reader/entry.rb<br>
79 /usr/lib/ruby/1.9.1/rubygems/package/tar_reader.rb<br>
80 /usr/lib/ruby/1.9.1/rubygems/package/tar_writer.rb<br>
81 /usr/lib/ruby/1.9.1/rubygems/package.rb<br>
82 /usr/lib/ruby/1.9.1/rubygems/format.rb<br>
83 /usr/lib/ruby/1.9.1/rubygems/ext/builder.rb<br>
84 /usr/lib/ruby/1.9.1/rubygems/ext/configure_builder.rb<br>
85 /usr/lib/ruby/1.9.1/rubygems/ext/ext_conf_builder.rb<br>
86 /usr/lib/ruby/1.9.1/rubygems/ext/rake_builder.rb<br>
87 /usr/lib/ruby/1.9.1/rubygems/ext.rb<br>
88 /usr/lib/ruby/1.9.1/rubygems/require_paths_builder.rb<br>
89 /usr/lib/ruby/1.9.1/rubygems/installer.rb<br>
90 /usr/lib/ruby/1.9.1/uri/common.rb<br>
91 /usr/lib/ruby/1.9.1/uri/generic.rb<br>
92 /usr/lib/ruby/1.9.1/uri/ftp.rb<br>
93 /usr/lib/ruby/1.9.1/uri/http.rb<br>
94 /usr/lib/ruby/1.9.1/uri/https.rb<br>
95 /usr/lib/ruby/1.9.1/uri/ldap.rb<br>
96 /usr/lib/ruby/1.9.1/uri/ldaps.rb<br>
97 /usr/lib/ruby/1.9.1/uri/mailto.rb<br>
98 /usr/lib/ruby/1.9.1/uri.rb<br>
99 /usr/lib/ruby/1.9.1/rubygems/remote_fetcher.rb<br>
100 /usr/lib/ruby/1.9.1/rubygems/errors.rb<br>
101 /usr/lib/ruby/1.9.1/rubygems/text.rb<br>
102 /usr/lib/ruby/1.9.1/rubygems/spec_fetcher.rb<br>
103 /usr/lib/ruby/1.9.1/rubygems/dependency_installer.rb<br>
104 /usr/lib/ruby/1.9.1/rubygems/local_remote_options.rb<br>
105 /usr/lib/ruby/1.9.1/rubygems/validator.rb<br>
106 /usr/lib/ruby/1.9.1/rubygems/version_option.rb<br>
107 /usr/lib/ruby/1.9.1/rubygems/commands/install_command.rb<br>
108 /usr/lib/ruby/1.9.1/fileutils.rb<br>
109 /usr/lib/ruby/1.9.1/x86_64-linux/socket.so<br>
110 /usr/lib/ruby/1.9.1/socket.rb<br>
111 /usr/lib/ruby/1.9.1/net/protocol.rb<br>
112 /usr/lib/ruby/1.9.1/net/http.rb<br>
113 /usr/lib/ruby/1.9.1/time.rb</p>
</li>
<li>
<p>Process memory map:</p>
</li>
</ul>
<p>00400000-00401000 r-xp 00000000 08:03 1462685 /usr/bin/ruby<br>
00600000-00601000 r--p 00000000 08:03 1462685 /usr/bin/ruby<br>
00601000-00602000 rw-p 00001000 08:03 1462685 /usr/bin/ruby<br>
01595000-04c63000 rw-p 00000000 00:00 0 [heap]<br>
7f391d78b000-7f391d7a0000 r-xp 00000000 08:03 1445210 /usr/lib/libgcc_s.so.1<br>
7f391d7a0000-7f391d99f000 ---p 00015000 08:03 1445210 /usr/lib/libgcc_s.so.1<br>
7f391d99f000-7f391d9a0000 rw-p 00014000 08:03 1445210 /usr/lib/libgcc_s.so.1<br>
7f391d9b8000-7f391e221000 rw-p 00000000 00:00 0<br>
7f391e221000-7f391e234000 r-xp 00000000 08:03 1464210 /usr/lib/libresolv-2.16.so<br>
7f391e234000-7f391e434000 ---p 00013000 08:03 1464210 /usr/lib/libresolv-2.16.so<br>
7f391e434000-7f391e435000 r--p 00013000 08:03 1464210 /usr/lib/libresolv-2.16.so<br>
7f391e435000-7f391e436000 rw-p 00014000 08:03 1464210 /usr/lib/libresolv-2.16.so<br>
7f391e436000-7f391e438000 rw-p 00000000 00:00 0<br>
7f391e438000-7f391e43d000 r-xp 00000000 08:03 1442112 /usr/lib/libnss_dns-2.16.so<br>
7f391e43d000-7f391e63c000 ---p 00005000 08:03 1442112 /usr/lib/libnss_dns-2.16.so<br>
7f391e63c000-7f391e63d000 r--p 00004000 08:03 1442112 /usr/lib/libnss_dns-2.16.so<br>
7f391e63d000-7f391e63e000 rw-p 00005000 08:03 1442112 /usr/lib/libnss_dns-2.16.so<br>
7f391e63e000-7f391e64a000 r-xp 00000000 08:03 1463115 /usr/lib/libnss_files-2.16.so<br>
7f391e64a000-7f391e849000 ---p 0000c000 08:03 1463115 /usr/lib/libnss_files-2.16.so<br>
7f391e849000-7f391e84a000 r--p 0000b000 08:03 1463115 /usr/lib/libnss_files-2.16.so<br>
7f391e84a000-7f391e84b000 rw-p 0000c000 08:03 1463115 /usr/lib/libnss_files-2.16.so<br>
7f391e84b000-7f391e86d000 r-xp 00000000 08:03 1716969 /usr/lib/ruby/1.9.1/x86_64-linux/socket.so<br>
7f391e86d000-7f391ea6c000 ---p 00022000 08:03 1716969 /usr/lib/ruby/1.9.1/x86_64-linux/socket.so<br>
7f391ea6c000-7f391ea6d000 r--p 00021000 08:03 1716969 /usr/lib/ruby/1.9.1/x86_64-linux/socket.so<br>
7f391ea6d000-7f391ea6e000 rw-p 00022000 08:03 1716969 /usr/lib/ruby/1.9.1/x86_64-linux/socket.so<br>
7f391ea6e000-7f391ea83000 r-xp 00000000 08:03 1447989 /usr/lib/libz.so.1.2.7<br>
7f391ea83000-7f391ec82000 ---p 00015000 08:03 1447989 /usr/lib/libz.so.1.2.7<br>
7f391ec82000-7f391ec83000 r--p 00014000 08:03 1447989 /usr/lib/libz.so.1.2.7<br>
7f391ec83000-7f391ec84000 rw-p 00015000 08:03 1447989 /usr/lib/libz.so.1.2.7<br>
7f391ec84000-7f391ec90000 r-xp 00000000 08:03 1716945 /usr/lib/ruby/1.9.1/x86_64-linux/zlib.so<br>
7f391ec90000-7f391ee90000 ---p 0000c000 08:03 1716945 /usr/lib/ruby/1.9.1/x86_64-linux/zlib.so<br>
7f391ee90000-7f391ee91000 r--p 0000c000 08:03 1716945 /usr/lib/ruby/1.9.1/x86_64-linux/zlib.so<br>
7f391ee91000-7f391ee92000 rw-p 0000d000 08:03 1716945 /usr/lib/ruby/1.9.1/x86_64-linux/zlib.so<br>
7f391ee92000-7f391ee94000 r-xp 00000000 08:03 1978102 /usr/lib/ruby/1.9.1/x86_64-linux/enc/iso_8859_1.so<br>
7f391ee94000-7f391f093000 ---p 00002000 08:03 1978102 /usr/lib/ruby/1.9.1/x86_64-linux/enc/iso_8859_1.so<br>
7f391f093000-7f391f094000 r--p 00001000 08:03 1978102 /usr/lib/ruby/1.9.1/x86_64-linux/enc/iso_8859_1.so<br>
7f391f094000-7f391f095000 rw-p 00002000 08:03 1978102 /usr/lib/ruby/1.9.1/x86_64-linux/enc/iso_8859_1.so<br>
7f391f095000-7f391f096000 r-xp 00000000 08:03 1978132 /usr/lib/ruby/1.9.1/x86_64-linux/enc/utf_16be.so<br>
7f391f096000-7f391f296000 ---p 00001000 08:03 1978132 /usr/lib/ruby/1.9.1/x86_64-linux/enc/utf_16be.so<br>
7f391f296000-7f391f297000 r--p 00001000 08:03 1978132 /usr/lib/ruby/1.9.1/x86_64-linux/enc/utf_16be.so<br>
7f391f297000-7f391f298000 rw-p 00002000 08:03 1978132 /usr/lib/ruby/1.9.1/x86_64-linux/enc/utf_16be.so<br>
7f391f298000-7f391f299000 r-xp 00000000 08:03 1978101 /usr/lib/ruby/1.9.1/x86_64-linux/enc/utf_16le.so<br>
7f391f299000-7f391f499000 ---p 00001000 08:03 1978101 /usr/lib/ruby/1.9.1/x86_64-linux/enc/utf_16le.so<br>
7f391f499000-7f391f49a000 r--p 00001000 08:03 1978101 /usr/lib/ruby/1.9.1/x86_64-linux/enc/utf_16le.so<br>
7f391f49a000-7f391f49b000 rw-p 00002000 08:03 1978101 /usr/lib/ruby/1.9.1/x86_64-linux/enc/utf_16le.so<br>
7f391f49b000-7f391f4c9000 r-xp 00000000 08:03 1716965 /usr/lib/ruby/1.9.1/x86_64-linux/date_core.so<br>
7f391f4c9000-7f391f6c9000 ---p 0002e000 08:03 1716965 /usr/lib/ruby/1.9.1/x86_64-linux/date_core.so<br>
7f391f6c9000-7f391f6ca000 r--p 0002e000 08:03 1716965 /usr/lib/ruby/1.9.1/x86_64-linux/date_core.so<br>
7f391f6ca000-7f391f6cb000 rw-p 0002f000 08:03 1716965 /usr/lib/ruby/1.9.1/x86_64-linux/date_core.so<br>
7f391f6cb000-7f391f6cc000 rw-p 00000000 00:00 0<br>
7f391f6cc000-7f391f6d1000 r-xp 00000000 08:03 1716947 /usr/lib/ruby/1.9.1/x86_64-linux/strscan.so<br>
7f391f6d1000-7f391f8d0000 ---p 00005000 08:03 1716947 /usr/lib/ruby/1.9.1/x86_64-linux/strscan.so<br>
7f391f8d0000-7f391f8d1000 r--p 00004000 08:03 1716947 /usr/lib/ruby/1.9.1/x86_64-linux/strscan.so<br>
7f391f8d1000-7f391f8d2000 rw-p 00005000 08:03 1716947 /usr/lib/ruby/1.9.1/x86_64-linux/strscan.so<br>
7f391f8d2000-7f391f8d8000 r-xp 00000000 08:03 1716954 /usr/lib/ruby/1.9.1/x86_64-linux/stringio.so<br>
7f391f8d8000-7f391fad7000 ---p 00006000 08:03 1716954 /usr/lib/ruby/1.9.1/x86_64-linux/stringio.so<br>
7f391fad7000-7f391fad8000 r--p 00005000 08:03 1716954 /usr/lib/ruby/1.9.1/x86_64-linux/stringio.so<br>
7f391fad8000-7f391fad9000 rw-p 00006000 08:03 1716954 /usr/lib/ruby/1.9.1/x86_64-linux/stringio.so<br>
7f391fad9000-7f391faf9000 r-xp 00000000 08:03 1462670 /usr/lib/libyaml-0.so.2.0.2<br>
7f391faf9000-7f391fcf8000 ---p 00020000 08:03 1462670 /usr/lib/libyaml-0.so.2.0.2<br>
7f391fcf8000-7f391fcf9000 r--p 0001f000 08:03 1462670 /usr/lib/libyaml-0.so.2.0.2<br>
7f391fcf9000-7f391fcfa000 rw-p 00020000 08:03 1462670 /usr/lib/libyaml-0.so.2.0.2<br>
7f391fcfa000-7f391fd00000 r-xp 00000000 08:03 1716951 /usr/lib/ruby/1.9.1/x86_64-linux/psych.so<br>
7f391fd00000-7f391feff000 ---p 00006000 08:03 1716951 /usr/lib/ruby/1.9.1/x86_64-linux/psych.so<br>
7f391feff000-7f391ff00000 r--p 00005000 08:03 1716951 /usr/lib/ruby/1.9.1/x86_64-linux/psych.so<br>
7f391ff00000-7f391ff01000 rw-p 00006000 08:03 1716951 /usr/lib/ruby/1.9.1/x86_64-linux/psych.so<br>
7f391ff01000-7f391ff04000 r-xp 00000000 08:03 1716974 /usr/lib/ruby/1.9.1/x86_64-linux/etc.so<br>
7f391ff04000-7f3920103000 ---p 00003000 08:03 1716974 /usr/lib/ruby/1.9.1/x86_64-linux/etc.so<br>
7f3920103000-7f3920104000 r--p 00002000 08:03 1716974 /usr/lib/ruby/1.9.1/x86_64-linux/etc.so<br>
7f3920104000-7f3920105000 rw-p 00003000 08:03 1716974 /usr/lib/ruby/1.9.1/x86_64-linux/etc.so<br>
7f3920105000-7f3920107000 r-xp 00000000 08:03 1978141 /usr/lib/ruby/1.9.1/x86_64-linux/enc/trans/transdb.so<br>
7f3920107000-7f3920307000 ---p 00002000 08:03 1978141 /usr/lib/ruby/1.9.1/x86_64-linux/enc/trans/transdb.so<br>
7f3920307000-7f3920308000 r--p 00002000 08:03 1978141 /usr/lib/ruby/1.9.1/x86_64-linux/enc/trans/transdb.so<br>
7f3920308000-7f3920309000 rw-p 00003000 08:03 1978141 /usr/lib/ruby/1.9.1/x86_64-linux/enc/trans/transdb.so<br>
7f3920309000-7f392030b000 r-xp 00000000 08:03 1978123 /usr/lib/ruby/1.9.1/x86_64-linux/enc/encdb.so<br>
7f392030b000-7f392050a000 ---p 00002000 08:03 1978123 /usr/lib/ruby/1.9.1/x86_64-linux/enc/encdb.so<br>
7f392050a000-7f392050b000 r--p 00001000 08:03 1978123 /usr/lib/ruby/1.9.1/x86_64-linux/enc/encdb.so<br>
7f392050b000-7f392050c000 rw-p 00002000 08:03 1978123 /usr/lib/ruby/1.9.1/x86_64-linux/enc/encdb.so<br>
7f392050c000-7f392060d000 rw-p 00000000 00:00 0<br>
7f392060d000-7f3920706000 r-xp 00000000 08:03 1452563 /usr/lib/libm-2.16.so<br>
7f3920706000-7f3920905000 ---p 000f9000 08:03 1452563 /usr/lib/libm-2.16.so<br>
7f3920905000-7f3920906000 r--p 000f8000 08:03 1452563 /usr/lib/libm-2.16.so<br>
7f3920906000-7f3920907000 rw-p 000f9000 08:03 1452563 /usr/lib/libm-2.16.so<br>
7f3920907000-7f392090f000 r-xp 00000000 08:03 1444066 /usr/lib/libcrypt-2.16.so<br>
7f392090f000-7f3920b0e000 ---p 00008000 08:03 1444066 /usr/lib/libcrypt-2.16.so<br>
7f3920b0e000-7f3920b0f000 r--p 00007000 08:03 1444066 /usr/lib/libcrypt-2.16.so<br>
7f3920b0f000-7f3920b10000 rw-p 00008000 08:03 1444066 /usr/lib/libcrypt-2.16.so<br>
7f3920b10000-7f3920b3e000 rw-p 00000000 00:00 0<br>
7f3920b3e000-7f3920b41000 r-xp 00000000 08:03 1463570 /usr/lib/libdl-2.16.so<br>
7f3920b41000-7f3920d40000 ---p 00003000 08:03 1463570 /usr/lib/libdl-2.16.so<br>
7f3920d40000-7f3920d41000 r--p 00002000 08:03 1463570 /usr/lib/libdl-2.16.so<br>
7f3920d41000-7f3920d42000 rw-p 00003000 08:03 1463570 /usr/lib/libdl-2.16.so<br>
7f3920d42000-7f3920d49000 r-xp 00000000 08:03 1463114 /usr/lib/librt-2.16.so<br>
7f3920d49000-7f3920f48000 ---p 00007000 08:03 1463114 /usr/lib/librt-2.16.so<br>
7f3920f48000-7f3920f49000 r--p 00006000 08:03 1463114 /usr/lib/librt-2.16.so<br>
7f3920f49000-7f3920f4a000 rw-p 00007000 08:03 1463114 /usr/lib/librt-2.16.so<br>
7f3920f4a000-7f3920f61000 r-xp 00000000 08:03 1463186 /usr/lib/libpthread-2.16.so<br>
7f3920f61000-7f3921160000 ---p 00017000 08:03 1463186 /usr/lib/libpthread-2.16.so<br>
7f3921160000-7f3921161000 r--p 00016000 08:03 1463186 /usr/lib/libpthread-2.16.so<br>
7f3921161000-7f3921162000 rw-p 00017000 08:03 1463186 /usr/lib/libpthread-2.16.so<br>
7f3921162000-7f3921166000 rw-p 00000000 00:00 0<br>
7f3921166000-7f3921304000 r-xp 00000000 08:03 1463118 /usr/lib/libc-2.16.so<br>
7f3921304000-7f3921503000 ---p 0019e000 08:03 1463118 /usr/lib/libc-2.16.so<br>
7f3921503000-7f3921507000 r--p 0019d000 08:03 1463118 /usr/lib/libc-2.16.so<br>
7f3921507000-7f3921509000 rw-p 001a1000 08:03 1463118 /usr/lib/libc-2.16.so<br>
7f3921509000-7f392150d000 rw-p 00000000 00:00 0<br>
7f392150d000-7f39216fd000 r-xp 00000000 08:03 1462677 /usr/lib/libruby.so.1.9.1<br>
7f39216fd000-7f39218fc000 ---p 001f0000 08:03 1462677 /usr/lib/libruby.so.1.9.1<br>
7f39218fc000-7f3921904000 rw-p 001ef000 08:03 1462677 /usr/lib/libruby.so.1.9.1<br>
7f3921904000-7f3921920000 rw-p 00000000 00:00 0<br>
7f3921920000-7f3921941000 r-xp 00000000 08:03 1464274 /usr/lib/ld-2.16.so<br>
7f392199a000-7f3921b23000 r--p 00000000 08:03 1464288 /usr/lib/locale/locale-archive<br>
7f3921b23000-7f3921b29000 rw-p 00000000 00:00 0<br>
7f3921b3b000-7f3921b3d000 rw-p 00000000 00:00 0<br>
7f3921b3d000-7f3921b3e000 ---p 00000000 00:00 0<br>
7f3921b3e000-7f3921b41000 rw-p 00000000 00:00 0 [stack:10233]<br>
7f3921b41000-7f3921b42000 r--p 00021000 08:03 1464274 /usr/lib/ld-2.16.so<br>
7f3921b42000-7f3921b43000 rw-p 00022000 08:03 1464274 /usr/lib/ld-2.16.so<br>
7f3921b43000-7f3921b44000 rw-p 00000000 00:00 0<br>
7fffcc654000-7fffcc675000 rw-p 00000000 00:00 0 [stack]<br>
7fffcc6db000-7fffcc6dc000 r-xp 00000000 00:00 0 [vdso]<br>
ffffffffff600000-ffffffffff601000 r-xp 00000000 00:00 0 [vsyscall]</p> Ruby master - Bug #7100 (Closed): WEBrick::HTTPServer.new で BindAddress を指定しない場合に必ず警告が記録されるhttps://redmine.ruby-lang.org/issues/71002012-10-02T17:21:38Zsho-h (Sho Hashimoto)sho-h@netlab.jp
<p>=begin<br>
以下のようにすると必ず警告が記録されるようです。</p>
<p>$ ruby -v -r webrick -e 'WEBrick::HTTPServer.new(Port: 3000)'<br>
ruby 1.9.3p194 (2012-04-20 revision 35410) [x86_64-linux]<br>
[2012-09-04 19:20:48] INFO WEBrick 1.3.1<br>
[2012-09-04 19:20:48] INFO ruby 1.9.3 (2012-04-20) [x86_64-linux]<br>
[2012-09-04 19:20:48] WARN TCPServer Error: Address already in use - bind(2)</p>
<p>1.8 では記録されませんでした。1.9.1 以降は記録されました。</p>
<p>lib/webrick/utils.rb の WEBrick::Utils#create_listeners が以下のようになっており、</p>
<p>res = Socket::getaddrinfo(address, port,<br>
Socket::AF_UNSPEC, # address family<br>
Socket::SOCK_STREAM, # socket type<br>
0, # protocol<br>
Socket::AI_PASSIVE) # flag<br>
last_error = nil<br>
sockets = []<br>
res.each{|ai|<br>
begin<br>
logger.debug("TCPServer.new(#{ai[3]}, #{port})") if logger<br>
sock = TCPServer.new(ai[3], port)<br>
...</p>
<p>Socket.getaddrinfo が 1.9 から複数値を返すからのようです。1.8.7 だと 0.0.0.0 の方だけでした。</p>
<p>$ ruby -v -r pp -r socket -e 'pp Socket::getaddrinfo(nil, 3000, Socket::AF_UNSPEC, Socket::SOCK_STREAM, 0, Socket::AI_PASSIVE)'<br>
ruby 1.9.3p194 (2012-04-20 revision 35410) [x86_64-linux]<br>
[["AF_INET", 3000, "0.0.0.0", "0.0.0.0", 2, 1, 6],<br>
["AF_INET6", 3000, "::", "::", 10, 1, 6]]</p>
<p>WEBrick::Utils#create_listeners のコメントとマッチしなくなるデメリットがあるのですが、config[:BindAddress] のデフォルト値を 0.0.0.0 か :: のどちらかにしてしまうのはいかがでしょう。<br>
=end</p> Ruby master - Bug #6928 (Closed): SecureRandom.random_bytes: assume zero entropy for seed valuehttps://redmine.ruby-lang.org/issues/69282012-08-26T01:58:06ZMartinBosslet (Martin Bosslet)Martin.Bosslet@gmail.com
<p>If OpenSSL is available SecureRandom.random_bytes uses<br>
OpenSSL::Random.random_bytes and the random generator is reseeded [1]<br>
whenever the current pid changes (due to repeated values when a pid<br>
is reused, cf. <a class="issue tracker-1 status-5 priority-4 priority-default closed" title="Bug: SecureRandom + OpenSSL may repeat with fork (Closed)" href="https://redmine.ruby-lang.org/issues/4579">#4579</a>).</p>
<p>Since this seeding is also called the first time the method is entered,<br>
using OpenSSL::Random.seed is potentially dangerous. OpenSSL::Random.seed<br>
is equal to using OpenSSL::Random.random_add where it is assumed that the<br>
string passed to seed possesses full entropy. This is definitely not the<br>
case for pid and time values. In fact, OpenSSL itself assumes an entropy<br>
of 1.0 or even 0.0 when doing similar seeding in RAND_poll [2][3]. However,<br>
this seems to have no impact so far, since the OpenSSL random generator<br>
gathers enough entropy on startup even if we seeded with what it would<br>
consider enough bytes of entropy (32 by default). So even if our seed<br>
string is already 32 bytes or larger, OpenSSL's RAND_poll still seems to<br>
collect 32 bytes of entropy on initialization regardless of what has been<br>
added/seeded so far, which is a good thing in this case. Still, this could<br>
change over time if OpenSSL for example changes internal behaviour and<br>
would decide that enough entropy had been provided while seeding.</p>
<p>Therefore I believe using OpenSSL::Random.random_add with an assumed<br>
entropy of 0.0 might be a more defensive choice. The forking test from<br>
<a class="issue tracker-1 status-5 priority-4 priority-default closed" title="Bug: SecureRandom + OpenSSL may repeat with fork (Closed)" href="https://redmine.ruby-lang.org/issues/4579">#4579</a> still passes with the attached patch. What do you think?</p>
<p>[1] <a href="https://github.com/ruby/ruby/blob/trunk/lib/securerandom.rb#L56" class="external">https://github.com/ruby/ruby/blob/trunk/lib/securerandom.rb#L56</a><br>
[2] <a href="https://github.com/plenluno/openssl/blob/master/crypto/rand/rand_unix.c#L179" class="external">https://github.com/plenluno/openssl/blob/master/crypto/rand/rand_unix.c#L179</a><br>
[3] <a href="https://github.com/plenluno/openssl/blob/master/crypto/rand/rand_unix.c#L398" class="external">https://github.com/plenluno/openssl/blob/master/crypto/rand/rand_unix.c#L398</a></p> Ruby master - Bug #6781 (Closed): open-uri で NameError が発生するhttps://redmine.ruby-lang.org/issues/67812012-07-23T21:10:54Zhsbt (Hiroshi SHIBATA)hsbt@ruby-lang.org
<p>本日、trunk をビルドして tDiary を動かしたところ、open-uri.rb を使っている箇所で以下のエラーが<br>
発生するようになりました。</p>
<p>uninitialized constant OpenURI::Tempfile (NameError)</p>
<p>tDiary で open-uri と同時に tempfile も require することで NameError は消えました。</p>
<p>なお、以下のコミットが原因と思いますが、akr さん見て頂けないでしょうか。</p>
<p><a href="https://github.com/ruby/ruby/commit/cb0d480532c416ca6db0ca4d0ec8c0461b58f84c" class="external">https://github.com/ruby/ruby/commit/cb0d480532c416ca6db0ca4d0ec8c0461b58f84c</a></p> Ruby master - Bug #6653 (Closed): 1.9.2/1.9.3 exhibit SEGV with many threads+tcp connectionshttps://redmine.ruby-lang.org/issues/66532012-06-27T08:19:27Zerikh (Erik Hollensbe)erik@hollensbe.org
<p>the script: <a href="https://gist.github.com/4f36f8543ad702861096" class="external">https://gist.github.com/4f36f8543ad702861096</a><br>
the trace + output of the run: <a href="https://gist.github.com/cf7dd137ad65802c46ae" class="external">https://gist.github.com/cf7dd137ad65802c46ae</a></p>
<p>ruby -v is 1.9.2-p290, but we're seeing this in 1.9.3-p194 as well.</p>
<p>This does <em>not</em> exhibit on OS X, only linux, we tested on Ubuntu 12.04.</p>
<p>I can get more information if desired.</p>
<p>Just guessing, this appears to be a bug in how FD_SETSIZE is handled.</p>
<p>Thank you!</p> Ruby master - Bug #6633 (Closed): MinGW: broken build caused by changes in process.c (execve)https://redmine.ruby-lang.org/issues/66332012-06-23T22:46:40Zluislavena (Luis Lavena)luislavena@gmail.com
<p>=begin<br>
Hello,</p>
<p>I find myself unable to compile trunk (r36201) caused by errors in process.c (execve):</p>
<p>compiling ../process.c<br>
../process.c: In function 'proc_exec_cmd':<br>
../process.c:1138:9: warning: passing argument 2 of 'execve' from incompatible pointer type [enabled by default]<br>
c:\users\worker\tools\devkit\tdm-32-4.6.1\mingw\bin../lib/gcc/mingw32/4.6.1/../../../../include/process.h:119:42: note:<br>
expected 'const char * const*' but argument is of type 'char *<em>'<br>
../process.c:1138:9: warning: passing argument 3 of 'execve' from incompatible pointer type [enabled by default]<br>
c:\users\worker\tools\devkit\tdm-32-4.6.1\mingw\bin../lib/gcc/mingw32/4.6.1/../../../../include/process.h:119:42: note:<br>
expected 'const char * const</em>' but argument is of type 'char **'<br>
../process.c: In function 'rb_execarg_addopt':<br>
../process.c:1582:18: error: 'options' undeclared (first use in this function)<br>
../process.c:1582:18: note: each undeclared identifier is reported only once for each function it appears in<br>
../process.c: In function 'save_env':<br>
../process.c:2711:11: warning: variable 'soptions' set but not used [-Wunused-but-set-variable]<br>
../process.c: In function 'p_uid_change_privilege':<br>
../process.c:4895:14: warning: variable 'uid' set but not used [-Wunused-but-set-variable]<br>
../process.c: In function 'p_gid_change_privilege':<br>
../process.c:5598:14: warning: variable 'gid' set but not used [-Wunused-but-set-variable]<br>
make: *** [process.o] Error 1</p>
<p>Above error happens under GCC 4.5.2, 4.6.1 and 4.6.3 in both x86 and x64 (mingw and mingw-w64 respectively)</p>
<p>Base Ruby is 1.9.3-p194 [i386-mingw32]</p>
<p>=end</p> Ruby master - Bug #6616 (Closed): MinGW: cannot build extensions or run tests due changes in exec...https://redmine.ruby-lang.org/issues/66162012-06-21T09:55:41Zluislavena (Luis Lavena)luislavena@gmail.com
<p>Hello,</p>
<p>Originally reported in <a href="https://blade.ruby-lang.org/ruby-core/45727">[ruby-core:45727]</a> due Redmine being down.</p>
<p>Latest trunk revision (r36154) is failing on me:<br>
<a href="https://gist.github.com/2959908" class="external">https://gist.github.com/2959908</a></p>
<p>Decided to attempt a Git bisect to determine the commit that<br>
introduced this and which doing it found another error at r36148:<br>
<a href="https://gist.github.com/2960374" class="external">https://gist.github.com/2960374</a></p>
<p>Worker machine as 4GB of RAM (Windows 7 x64) and memory was no<br>
exhausted during tests (monitored memory usage)</p>
<p>Git bisect didn't tell me precisely which commit failed since the<br>
error happens randomly except for last commit, which happens always.</p>
<p>Build was made on a separate directory (build32) inside Ruby's source.</p>
<p>MinGW GCC 4.6.3 was used (mingw-w64) which has build successfully<br>
everything in the past.</p>
<p>Entire work tree is reset on every build.</p>
<p>I can attribute this issue to support libraries or compiler since<br>
those have been the same and work properly in the past revisions and<br>
also against ruby_1_9_3 branch.</p>
<p>Further investigation shows the following:</p>
<p>configuring digest/md5<br>
wrong argument type false (expected exec_arg)<br>
Failed to configure digest/md5. It will not be installed.<br>
configuring digest/rmd160<br>
wrong argument type false (expected exec_arg)<br>
Failed to configure digest/rmd160. It will not be installed.<br>
configuring digest/sha1<br>
wrong argument type false (expected exec_arg)<br>
Failed to configure digest/sha1. It will not be installed.<br>
configuring digest/sha2<br>
wrong argument type false (expected exec_arg)<br>
Failed to configure digest/sha2. It will not be installed.<br>
configuring dl<br>
wrong argument type false (expected exec_arg)<br>
Failed to configure dl. It will not be installed.</p>
<p>Which might indicate an incompatible change with exec?</p> Ruby master - Bug #6249 (Closed): Process.exec doesn't restore the environment if it failshttps://redmine.ruby-lang.org/issues/62492012-04-03T08:06:20Zjohn_firebaugh (John Firebaugh)john.firebaugh@gmail.com
<blockquote>
<blockquote>
<p>ENV["foo"]<br>
=> nil<br>
Process.exec({"foo" => "bar"}, "nonexistent")<br>
Errno::ENOENT: No such file or directory - nonexistent<br>
from (irb):2:in <code>exec' from (irb):2 from /Users/john/.rvm/rubies/ruby-1.9.3-p125/bin/irb:16:in </code>'<br>
ENV["foo"]<br>
=> "bar"</p>
</blockquote>
</blockquote>
<p>I expected that Process.exec would either use execle or execve, or (if it implements environment modification itself), to manually restore the existing environment upon failure.</p> Ruby master - Bug #6247 (Closed): Range not checked for day of yearhttps://redmine.ruby-lang.org/issues/62472012-04-03T05:57:02Zrubysubmit (Ruby Submit)rubysubmitter@gmail.com
<p>File: strftime.c</p>
<p>case 'j': /* day of the year, 001 - 366 */<br>
FMT('0', 3, "d", vtm->yday);<br>
continue;</p>
<p>The range for the vtm->yday function is not checked as many of the other values are before formatting. The end result allows the day of year to be up to the size of a ushort.</p> Ruby master - Bug #5988 (Rejected): Time class interprets "2012-02-30" as "2012-03-01"https://redmine.ruby-lang.org/issues/59882012-02-09T06:00:04Zdmarkow (Dylan Markow)dmarkow@gmail.com
<p>=begin<br>
The time class seems to accept any number from 1-31 as a valid day for any month of the year, even if the month has less than 31 days. If the day exceeds the number of days, it just spills over into the following month; "2012-02-30" become "2012-03-01", "2012-04-31" becomes "2012-05-01", and so on. It's not until you try 32 as a day number that you get the expected Argument Error. This happens with Time.new, Time.parse, Time.local, Time.utc, etc.</p>
<p>irb(main):002:0> RUBY_DESCRIPTION<br>
=> "ruby 2.0.0dev (2012-02-09 trunk 34499) [x86_64-darwin11.3.0]"<br>
irb(main):003:0> Time.parse "2012-02-30"<br>
=> 2012-03-01 00:00:00 -0800<br>
irb(main):004:0> Time.new 2012, 2, 30<br>
=> 2012-03-01 00:00:00 -0800<br>
irb(main):005:0> Time.local 2012, 2, 30<br>
=> 2012-03-01 00:00:00 -0800<br>
irb(main):006:0> Time.utc 2012, 2, 30<br>
=> 2012-03-01 00:00:00 UTC<br>
irb(main):007:0> Time.new 2012, 4, 31<br>
=> 2012-05-01 00:00:00 -0700<br>
irb(main):008:0> Time.new 2012, 2, 32<br>
ArgumentError: argument out of range<br>
from (irb):8:in <code>initialize' from (irb):8:in </code>new'<br>
from (irb):8<br>
from /Users/dylan/.rbenv/versions/2.0.0-dev/bin/irb:12:in `'<br>
irb(main):009:0></p>
<p>=end</p> Ruby master - Bug #5950 (Closed): open-uri: https redirect fix https://redmine.ruby-lang.org/issues/59502012-01-31T00:33:19Zazet (Aaron Zauner)azet@azet.org
<p>open-uri raises an exception if a http/s redirect refers to https.</p>
<p>original mail to the maintainer with a quickfix: <a href="https://gist.github.com/1704932" class="external">https://gist.github.com/1704932</a></p>
<p>--snip--</p>
<a name="this-is-taken-from-the-original-ruby-open-uri-class"></a>
<h1 >this is taken from the original ruby open-uri class,<a href="#this-is-taken-from-the-original-ruby-open-uri-class" class="wiki-anchor">¶</a></h1>
<a name="fixed-this-to-support-secure-socket-http-redirects"></a>
<h1 >fixed this to support secure socket http redirects:<a href="#fixed-this-to-support-secure-socket-http-redirects" class="wiki-anchor">¶</a></h1>
<p>def OpenURI.redirectable?(uri1, uri2) # :nodoc:<br>
# This test is intended to forbid a redirection from http://... to<br>
# file:///etc/passwd.<br>
# However this is ad hoc. It should be extensible/configurable.<br>
uri1.scheme.downcase == uri2.scheme.downcase ||<br>
(/\A(?:http|ftp|https)\z/i =~ uri1.scheme && /\A(?:http|ftp|https)\z/i =~<br>
uri2.scheme)<br>
end<br>
--snip--</p> Ruby master - Bug #5833 (Closed): [mingw] trivial patch for thread.c build warninghttps://redmine.ruby-lang.org/issues/58332012-01-03T04:42:21Zjonforums (Jon Forums)
<p>When building with MinGW (not Windows SDK) on Win7 I get the following:</p>
<p>compiling ../../../../Users/Jon/Documents/RubyDev/ruby-git/thread.c<br>
../../../../Users/Jon/Documents/RubyDev/ruby-git/thread.c: In function 'rb_fd_rcopy':<br>
../../../../Users/Jon/Documents/RubyDev/ruby-git/thread.c:2471:33: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]</p>
<p>Below is a trivial patch that fixes the warning on MinGW. The patch successfully builds and tests with MinGW and Windows SDK on Win7 32bit. When building on Arch Linux, the patched build gives the same <code>make test && make test-all</code> results (6 errors, 45 skips) as an unpatched build. In all other uses in <code>thread.c</code> (except for <code>rb_fd_rcopy</code>) the <code>rb_fd_max</code> macro generates a <code>size_t</code> object. From what I can tell, use cases are all unsigned int's.</p>
<p>diff --git a/thread.c b/thread.c<br>
index d9fe5506..0b48061 100644<br>
--- a/thread.c<br>
+++ b/thread.c<br>
@@ -2463,7 +2463,7 @@ rb_fd_init_copy(rb_fdset_t *dst, rb_fdset_t *src)<br>
static void<br>
rb_fd_rcopy(fd_set *dst, rb_fdset_t *src)<br>
{</p>
<ul>
<li>int max = rb_fd_max(src);</li>
</ul>
<ul>
<li>
<p>size_t max = rb_fd_max(src);</p>
<p>/* we assume src is the result of select() with dst, so dst should be</p>
<ul>
<li>larger or equal than src. */</li>
</ul>
</li>
</ul> Ruby master - Bug #5828 (Closed): Non anonymous classes can't be frozen, cloned and then inspectedhttps://redmine.ruby-lang.org/issues/58282011-12-31T10:06:00Zagrimm (Andrew Grimm)andrew.j.grimm@gmail.com
<p>=begin<br>
If you assign a class to a constant (that is, it isn't anonymous), and you freeze it and then clone it, you can't call to_s on it.</p>
<pre><code>MyClass = Class.new ; MyClass.freeze.clone.to_s
RuntimeError: can't modify frozen Class
from (irb):1:in `to_s'
from (irb):1
from /Users/agrimm/.rvm/rubies/ruby-head/bin/irb:16:in `<main>'
MyConstantObject = Object.new ; MyConstantObject.freeze.clone.to_s # => "#<Object:0x00000100884d60>"
MyClass_2 = Class.new ; MyClass_2.clone.to_s # => "#<Class:0x00000100872930>"
MyClass_3 = Class.new ; MyClass_3.freeze.to_s # => "MyClass_3"
MyClass_4 = Class.new.freeze ; MyClass_4.clone.to_s # => "#<Class:0x0000010088d4d8>"
MyClass_5 = Class.new.freeze ; MyClass_5.freeze.clone.to_s # => An exception
local_variable_class = Class.new ; local_variable_class.freeze.clone.to_s # => "#<Class:0x00000100964028>"
</code></pre>
<p>Presumably this is caused by class only determining whether it's assigned to a constant when it's first inspected.</p>
<p>I don't have a use case for freezing and cloning a class.<br>
=end</p> Ruby master - Bug #5811 (Closed): Ruby Process Deadlocks With Fork on Mac OS X Lionhttps://redmine.ruby-lang.org/issues/58112011-12-27T03:42:32Znetshade (Chris Zelenak)netshade@gmail.com
<p>=begin<br>
Given a Ruby process that acts like the following:</p>
<ul>
<li>Spawn new thread that initializes a TCPSocket</li>
<li>Execute script using backticks in main thread</li>
</ul>
<p>there is a chance that it will deadlock on Lion. The GDB traces for the threads show:</p>
<ul>
<li>The TCP connecting thread stuck on native_cond_wait/thread_pthread.c:321 by way of rsock_getaddrinfo/raddrinfo.c:359</li>
<li>The main thread stuck on read() by way of rb_f_backquote/io.c:7266</li>
</ul>
<p>Meanwhile, in the forked process from rb_f_backquote:</p>
<ul>
<li>The main thread is stuck at (longer trace):<br>
#0 0x00007fff9160c6b6 in semaphore_wait_trap ()<br>
#1 0x00007fff8fc03bc2 in _dispatch_thread_semaphore_wait ()<br>
#2 0x00007fff8fc04286 in dispatch_once_f ()<br>
#3 0x00007fff95e12f20 in si_module_static_search ()<br>
#4 0x00007fff95e16a3d in si_module_with_name ()<br>
#5 0x00007fff95e0eac8 in getpwuid ()<br>
<a class="issue tracker-1 status-5 priority-4 priority-default closed behind-schedule" title="Bug: sprintf() of %f on Windows(MSVCRT) (Closed)" href="https://redmine.ruby-lang.org/issues/6">#6</a> 0x00007fff90daa842 in getgroups$DARWIN_EXTSN ()<br>
#7 0x000000010b82b020 in rb_group_member (gid=0) at file.c:1002<br>
#8 0x000000010b82b10f in eaccess (path=0x7fff6b3d3570 "/bin/hostname", mode=1) at file.c:1052<br>
...</li>
</ul>
<p>The documentation for getpwuid in Mac OS X Lion states that getpwuid now is threadsafe, much like getpwuid_r - however, the values returned by getpwuid are thread local and disposed automatically, as opposed to getpwuid_r's allocation of results. The disassembly of semaphore_wait_trap and __psynch_cvwait both show syscalls being made (I don't know how to go much further here), but the arguments are all void to these functions too when snooping in GDB. I believe that the posix wait and semaphore_wait taking place are in fact making syscalls to wait on a condition variable of the same value - this value is the same due to the shared memory state of the fork.</p>
<p>When an artificial delay ("sleep 1") is introduced after the creation of the TCP connect thread, this deadlock no longer occurs.</p>
<p>Attached is a test script that uses the Instrumental Agent gem for the TCP connect and can reliably cause the deadlock under 1.9.3.<br>
=end</p> Ruby master - Bug #5750 (Closed): Thread.current local-variables behaviorhttps://redmine.ruby-lang.org/issues/57502011-12-12T20:26:24Zschmurfy (Julien A)schmurfy@gmail.com
<p>Hi, I stumbled upon something which for me is a bug and wanted to check if it is working as intended or not:</p>
<pre><code>Thread.current[:a] = 1
p Thread.current[:a] # => 1
Fiber.new do
p Thread.current[:a] # => nil
end.resume
</code></pre>
<p>There is clearly a problem in either the documentation or the implementation for me there, we are in the same thread yet the returned values are different which is completely counter intuitive...<br>
Why not add a fiber-variables store to allow the following and keep things separated between fibers and threads</p>
<pre><code>Fiber.current[:a] = 1
p Fiber.current[:a] # => 1
Fiber.new do
p Fiber.current[:a] # => nil
end.resume
</code></pre>
<p>Which is now the behavior I would expect.</p> Ruby master - Bug #5487 (Rejected): popen3 + timeout regression in ruby 1.9https://redmine.ruby-lang.org/issues/54872011-10-27T07:26:55Zwmorgan (William Morgan)wmorgan-redmine@masanjin.net
<p>Wrapping Open3.popen3 in a Timeout::timeout block used to work in Ruby 1.8, but doesn't work in 1.9:</p>
<p>w@masanjin:~$ cat timeout.rb<br>
require 'timeout'<br>
require 'open3'</p>
<p>Timeout::timeout(1) { Open3.popen3("sleep 100 && echo hi") { |i, o, e| e.read } }<br>
w@masanjin:~$ /usr/bin/ruby -v<br>
ruby 1.8.7 (2010-01-10 patchlevel 249) [i486-linux]<br>
w@masanjin:~$ /usr/bin/ruby timeout.rb<br>
/usr/lib/ruby/1.8/timeout.rb:60: execution expired (Timeout::Error)<br>
from /usr/lib/ruby/1.8/open3.rb:86:in `popen3'<br>
from timeout.rb:4<br>
from timeout.rb:4</p>
<p>w@masanjin:~$ ruby -v<br>
ruby 1.9.2p290 (2011-07-09 revision 32553) [i686-linux]<br>
w@masanjin:~$ ruby timeout.rb<br>
[sleeps forever]</p> Ruby master - Bug #5463 (Rejected): PTY or IO.select timing issue results in no EOF https://redmine.ruby-lang.org/issues/54632011-10-19T12:02:39Zthinkerbot (Simon Chiang)simon.a.chiang@gmail.com
<p>I have observed that when running a shell through PTY the slave will sometimes fail to produce an EOF after an exit command. As a result polling via IO.select can timeout. A full example is attached. This is a simplified example illustrating the problematic loop:</p>
<a name="PTYspawn-"></a>
<h1 >PTY.spawn ...<a href="#PTYspawn-" class="wiki-anchor">¶</a></h1>
<p>master.write "exit 8\n"</p>
<p>str = ''<br>
while true<br>
unless IO.select([slave],nil,nil,3)<br>
raise "timeout waiting for slave EOF"<br>
end</p>
<pre><code>if slave.eof?
break
end
str << slave.read(1)
</code></pre>
<p>end</p>
<p>After 'exit' is written to master, the loop normally reads all of slave into str. The select ensures the loop can timeout but under normal circumstances it will not (3 seconds is plenty of time to exit a shell). The bug is that it occasionally does timeout having never seen an EOF - meaning either the select is not detecting EOF on the slave or an EOF is not being written to the slave.</p>
<p>The bizarre thing is that I can confirm after the timeout that the pty process does exit with the correct status (8) regardless of whether the loop exits normally with an EOF or by timeout.</p>
<p>I'm not sure if this is an issue with the PTY implementation, an issue with the shell, or with the OS. I have observed the bug repeatedly using 1.9.2 on OS X 10.6.8, Ubuntu 11.04, and SLES 10, and with shells bash, ksh, csh, zsh (although mostly with bash). I suspect the PTY implementation plays some role because the bug does not appear to occur on 1.8.7 and 1.8.6. However the frequency of the bug varies so much across OS and shell, I know it could very well be an issue outside of ruby.</p>
<p>To reproduce, run the pty_fail.rb script for 10k (or more) iterations. On OS X it usually crops up within 10k. On Ubuntu 11.04 it is very, very rare, ~100k may be needed. Ex:</p>
<p>ruby pty_no_eof_example.rb 10000 /bin/bash</p> Ruby master - Bug #5330 (Rejected): Bug Report: wrong backtracehttps://redmine.ruby-lang.org/issues/53302011-09-16T14:43:14Zulrich (Ulrich Kramer)ulrich.kramer@crossgate.com
<p>=begin<br>
I would like to report a ruby1.9 bug. I tried to create a new ticket in redmine. After registration(wonderix) I tried to login, but I didn't succeed. After 4 password resets I gave up.</p>
<p>So here is my description:</p>
<p>a.rb:<br>
test = Class.new(Object)<br>
test.class_eval(File.read("b.rb"),"b.rb",1)<br>
test.run</p>
<p>b.rb:<br>
p caller<br>
def self.run()<br>
p caller<br>
end</p>
<p>When I run a.rb I got:<br>
["a.rb:2:in <code>class_eval'", "a.rb:2:in </code>'"]<br>
["a.rb:3:in `'"]</p>
<p>Should be:<br>
["b.rb:1:in <code>class_eval'", "a.rb:2:in </code>'"]<br>
["b.rb:3:in `'"]</p>
<p>ruby -v:<br>
ruby 1.9.2p290 (2011-07-09 revision 32553) [x86_64-linux]</p>
<p>Mit freundlichen Grüßen | best regards,</p>
<p>Ulrich Kramer<br>
Senior Developer<br>
=end</p> Ruby master - Bug #5328 (Rejected): Splat args are treated wrongly in instance_exec and class_exechttps://redmine.ruby-lang.org/issues/53282011-09-15T15:26:45Zmyronmarston (Myron Marston)myron.marston@gmail.com
<p>This gist demonstrates the issue:</p>
<p><a href="https://gist.github.com/1218664" class="external">https://gist.github.com/1218664</a></p>
<p>On 1.8.7, instance_exec and class_exec treat splat block args the same as method splat args. On 1.9, it is treated differently and this is very unexpected.</p> Ruby master - Bug #4964 (Closed): open-uri failed to handle multiple "Set-Cookie" headershttps://redmine.ruby-lang.org/issues/49642011-07-02T18:42:25Ztdsparrow (ren li)sqallowlee@gmail.com
<p>=begin<br>
== Problem<br>
open-uri handle multiple "Set-Cookie" headers in a wrong way. Given a header from http server like:</p>
<pre><code> Set-Cookie: name1=value1; blabla
Set-Cookie: name2=value2; blabla
</code></pre>
<p>open-uri will pack it into meta info of result like:</p>
<pre><code> Set-Cookie: name1=value; blabla, name2=value2; blabla
</code></pre>
<p>The problem is that line 332 of open-uri.rb<br>
resp.each {|name,value| buf.io.meta_add_field name, value }</p>
<p>In turn will call invoke code in net/http.rb to join headers with ",".</p>
<p>== ruby -v:<br>
ruby 1.9.2p174 (2011-01-28 revision 30696) [i686-linux]</p>
<p>== code:<br>
require 'open-uri'<br>
begin<br>
open "<a href="http://douban.fm" class="external">http://douban.fm</a>", :redirect => false<br>
rescue OpenURI::HTTPRedirect => redirect<br>
redirect.io.meta['set-cookie']<br>
end</p>
<p>=end</p> Ruby master - Bug #4458 (Closed): Time#strftime で %z 指定子での結果への空白を詰めかたが正しくないhttps://redmine.ruby-lang.org/issues/44582011-03-02T20:04:23Ztadf (tadayoshi funaba)
<p>=begin<br>
$ ruby -e "p Time.now.strftime('%_10z')"<br>
"+ 900"</p>
<p>=end</p> Ruby master - Bug #3589 (Closed): Converting Bignums to Float for equality checks is wronghttps://redmine.ruby-lang.org/issues/35892010-07-21T04:48:48Ztaw (Tomasz Wegrzanowski)Tomasz.Wegrzanowski@gmail.com
<p>=begin<br>
In all versions of Ruby, when comparing Bignums with Floats, Bignum get converted to Floats first. This naturally results in wrong results, as this conversion is lossy. Not only will some unequal number be reported as equal, transitivity of equality gets broken:</p>
<p>big = 10**20<br>
bigger = big+1<br>
flt = big.to_f<br>
[big == bigger, big == flt, bigger == flt] #=> [false, true, true]</p>
<p>Ruby is so close to getting equality right, it would be a shame not to get it totally right. And it's not Float's fault - IEEE 754 defines correct results of all Float operations to the last bit, and all rounding and comparisons between Floats happens with what is mathematically equivalent to infinite precision.</p>
<p>= Solution 1 =</p>
<p>Now I could be missing something, but it seems to be that it's all as simple as:</p>
<ul>
<li>perform equality / comparison check like now with bignum.to_f and float</li>
<li>if they're not equal so far, direction of inequality is correct</li>
<li>compare bignum with float.to_i</li>
</ul>
<p>As both Float <=> Float, and Bignum <=> Bignum are exact to the last bit (ignoring issues like -0.0 etc. - they're not relevant here), this means roundtrip conversion is identity, and there can exist no other Float that would be equal to this particular Bignum, and no other Bignum that would be equal to this particular Float. It also seems to me that they'd need to be mathematically equal for that unless I miss something big.</p>
<p>The first check ensures all fractional bits are correct (that is if flt has any it will fail as convertion of integer to float is guaranteed not to generate any). The second check ensures that all integer bits are correct (that is every bit exceeding limit of float representation is 0, as correct float to integer conversion is guaranteed not to geterate any there)</p>
<p>This leads where we want:<br>
[bigger.to_f == flt, bigger == flt.to_i]<br>
=> [true, false]</p>
<p>Some pictures:</p>
<ul>
<li>Huge BigNum XXXXXXXXXXXXXXXYYYYYYYYYYY.00000000000000</li>
<li>Huge Float XXXXXXXXXXXXXXX00000000000.00000000000000</li>
<li>Small BigNum XXXXXXX.000000000000000</li>
<li>Small Float XXXXXXX.YYYYYYYYY000000</li>
</ul>
<p>0s are bits that cannot be represented, Xs bits represented by both, Ys bits represented in only one. Someone should double check with all the rounding etc. but it seems to that it's impossible for Ys to exist in both, if they're nearly equal.</p>
<p>= Solution 2 =</p>
<p>A completely different solution would be converting BigNum to Float with hardware (it's already universally supported, even if standard C tends to ignore it) in two modes - round up and round down (starting from low bits) - they will be the same or differ by 1ulp - so its impossible for the compared float to be between them. If bignum.to_f_up > flt, it's >. If bignum.to_f_down < flt, it's <. If they're all three equal, they're really ==.<br>
=end</p> Ruby master - Bug #2008 (Closed): test_io.rb: test 2 fails on FreeBSDhttps://redmine.ruby-lang.org/issues/20082009-08-27T16:59:53Zlucas (Lucas Nussbaum)lucas@lucas-nussbaum.net
<p>=begin<br>
Hi,</p>
<p>Test 2 in test_io.rb fails on FreeBSD. This is related to <a href="http://redmine.ruby-lang.org/issues/show/1066" class="external">http://redmine.ruby-lang.org/issues/show/1066</a>, which, according to the comments posted after the bug was closed, wasn't really fixed.</p>
<p>I ran into this on Debian GNU/kfreebsd (Debian userland, freebsd kernel). One of our freebsd porter wrote (see <a href="http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=543805" class="external">http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=543805</a>):</p>
<blockquote>
<p>The test assumes that the kernel buffer for pipes have fixed size.<br>
It does not have to be true, there could be adaptive buffer size<br>
provided by kernel. After filling whole kernel buffer (by non-blocking<br>
write), it might be required to buffer becomes filled only from half<br>
or even empty. The next write() might be blocked until whole<br>
kernel buffer is read. Such behaviour of kernel is correct one.</p>
<p>The kernel of FreeBSD uses adaptive pipe sizes and direct pipe writes,<br>
see <a href="http://www.freebsd.org/cgi/cvsweb.cgi/src/sys/kern/sys_pipe.c" class="external">http://www.freebsd.org/cgi/cvsweb.cgi/src/sys/kern/sys_pipe.c</a></p>
</blockquote>
<p>(It is likely to be the same on Mac OS X)</p>
<p>He suggests changing the test to:</p>
<blockquote>
<p>begin<br>
require "io/nonblock"<br>
r, w = IO.pipe<br>
w.nonblock = true<br>
bytes = w.write_nonblock("a" * 100000)<br>
w.nonblock = false<br>
t1 = Thread.new { w.write("b" * 4096) }<br>
t2 = Thread.new { w.write("c" * 4096) }<br>
sleep 0.5<br>
blocks = 2 + bytes/4096<br>
blocks.times {<br>
r.sysread(4096).length<br>
sleep 0.1<br>
}<br>
t1.join<br>
t2.join<br>
rescue LoadError<br>
end</p>
</blockquote>
<p>However, I don't understand what that test is trying to test. It might be better to simply remove that test...<br>
=end</p>