Ruby Issue Tracking System: Issues
https://bugs.ruby-lang.org/
https://bugs.ruby-lang.org/favicon.ico?1711330511
2021-10-05T08:52:12Z
Ruby Issue Tracking System
Redmine
Ruby master - Bug #18240 (Closed): Random segfault on a local Rails server
https://bugs.ruby-lang.org/issues/18240
2021-10-05T08:52:12Z
Benoit_Tigeot (Benoit Tigeot)
<p>Hello</p>
<p>I am having random segfault locally when rails a basic rails app.</p>
<p>The control frame is weird:</p>
<p>| -- Control frame information -----------------------------------------------<br>
web | c:0073 p:---- s:0470 e:000469 CFUNC :append_features<br>
web | c:0072 p:---- s:0467 e:000466 CFUNC :include</p>
Ruby master - Bug #16675 (Closed): Regression on Ripper in Ruby 2.7 when parsing new line
https://bugs.ruby-lang.org/issues/16675
2020-03-06T00:03:54Z
Benoit_Tigeot (Benoit Tigeot)
<p>Hello</p>
<p>While using migrating RSpec documentation to last Yard. I noticed an issue in code parsing and Ripper. The regression appears on Ruby 2.7 and Head.</p>
<pre><code class="ruby syntaxhl" data-language="ruby"><span class="nb">require</span> <span class="s1">'pp'</span>
<span class="nb">require</span> <span class="s1">'ripper'</span>
<span class="no">SOURCE</span> <span class="o">=</span> <span class="s2">"def name</span><span class="se">\n</span><span class="s2"> # comment</span><span class="se">\n</span><span class="s2">end"</span>
<span class="k">class</span> <span class="nc">RipperParser</span> <span class="o"><</span> <span class="no">Ripper</span>
<span class="nb">attr_accessor</span> <span class="ss">:tokens</span>
<span class="no">SCANNER_EVENTS</span><span class="p">.</span><span class="nf">each</span> <span class="k">do</span> <span class="o">|</span><span class="n">event</span><span class="o">|</span>
<span class="n">define_method</span><span class="p">(</span><span class="s2">"on_</span><span class="si">#{</span><span class="n">event</span><span class="si">}</span><span class="s2">"</span><span class="p">)</span> <span class="k">do</span> <span class="o">|*</span><span class="n">args</span><span class="o">|</span>
<span class="nb">puts</span> <span class="s2">"TOKEN: </span><span class="si">#{</span><span class="n">event</span><span class="si">}</span><span class="s2">"</span>
<span class="p">(</span><span class="vi">@tokens</span> <span class="o">||=</span> <span class="p">[])</span> <span class="o"><<</span> <span class="p">[</span><span class="n">event</span><span class="p">,</span> <span class="n">args</span><span class="p">]</span>
<span class="k">super</span><span class="p">(</span><span class="o">*</span><span class="n">args</span><span class="p">)</span>
<span class="k">end</span>
<span class="k">end</span>
<span class="k">end</span>
<span class="n">parser</span> <span class="o">=</span> <span class="no">RipperParser</span><span class="p">.</span><span class="nf">new</span><span class="p">(</span><span class="no">SOURCE</span><span class="p">,</span> <span class="s1">'(stdin)'</span><span class="p">)</span>
<span class="nb">puts</span> <span class="s2">"PARSING:"</span>
<span class="n">parser</span><span class="p">.</span><span class="nf">parse</span>
<span class="nb">puts</span> <span class="s2">"</span><span class="se">\n</span><span class="s2">TOKENS:"</span>
<span class="n">pp</span> <span class="n">parser</span><span class="p">.</span><span class="nf">tokens</span>
<span class="nb">puts</span> <span class="s2">"</span><span class="se">\n</span><span class="s2">RIPPER SAYS"</span>
<span class="n">pp</span> <span class="no">Ripper</span><span class="p">.</span><span class="nf">lex</span><span class="p">(</span><span class="no">SOURCE</span><span class="p">)</span>
</code></pre>
<pre><code class="diff syntaxhl" data-language="diff"><span class="gd">--- a/2-6-3_ripper_lex.txt
</span><span class="gi">+++ b/2-7-0_ripper_lex.txt
</span><span class="p">@@ -1,27 +1,27 @@</span>
<span class="gd">->> RUBY_VERSION: 2.6.3
</span><span class="gi">+>> RUBY_VERSION: 2.7.0
</span> PARSING:
TOKEN: kw
TOKEN: sp
TOKEN: ident
<span class="gd">-TOKEN: nl
</span> TOKEN: sp
TOKEN: comment
<span class="gi">+TOKEN: nl
</span> TOKEN: kw
<span class="err">
</span> TOKENS:
[[:kw, ["def"]],
[:sp, [" "]],
[:ident, ["name"]],
<span class="gd">- [:nl, ["\n"]],
</span> [:sp, [" "]],
[:comment, ["# comment\n"]],
<span class="gi">+ [:nl, ["\n"]],
</span> [:kw, ["end"]]]
<span class="err">
</span> RIPPER SAYS
<span class="gd">-[[[1, 0], :on_kw, "def", EXPR_FNAME],
- [[1, 3], :on_sp, " ", EXPR_FNAME],
- [[1, 4], :on_ident, "name", EXPR_ENDFN],
- [[1, 8], :on_nl, "\n", EXPR_BEG],
- [[2, 0], :on_sp, " ", EXPR_BEG],
- [[2, 2], :on_comment, "# comment\n", EXPR_BEG],
- [[3, 0], :on_kw, "end", EXPR_END]]
</span><span class="gi">+[[[1, 0], :on_kw, "def", FNAME],
+ [[1, 3], :on_sp, " ", FNAME],
+ [[1, 4], :on_ident, "name", ENDFN],
+ [[1, 8], :on_nl, "\n", BEG],
+ [[2, 0], :on_sp, " ", ENDFN],
+ [[2, 2], :on_comment, "# comment\n", ENDFN],
+ [[3, 0], :on_kw, "end", END]]
</span></code></pre>
<p>As Loren Segal <a href="https://github.com/lsegal/yard/issues/1313#issuecomment-595458928" class="external">mentionned</a></p>
<blockquote>
<p>Note that "comment" is detected before "nl" in both the event and the collected tokens, which is different from the results in Ripper.lex</p>
</blockquote>
Ruby master - Bug #14626 (Closed): One failing test on trunk 58fbe69a5b and OSX
https://bugs.ruby-lang.org/issues/14626
2018-03-23T08:45:19Z
Benoit_Tigeot (Benoit Tigeot)
<p>I'm using ruby/trunk on 58fbe69a5b. When I run <em>make test-all TESTS='rubygems/test_require.rb'</em></p>
<pre><code class="text syntaxhl" data-language="text">Run options: "--ruby=./miniruby -I../ruby/lib -I. -I.ext/common ../ruby/tool/runruby.rb --extout=.ext -- --disable-gems" --excludes-dir=../ruby/test/excludes --name=!/memory_leak/
# Running tests:
[ 2/21] TestGemRequire#test_dash_i_beats_gems = 0.05 s
1) Error:
TestGemRequire#test_dash_i_beats_gems:
NameError: uninitialized constant HELLO
/Users/bti/code/ruby/test/rubygems/test_require.rb:65:in `test_dash_i_beats_gems'
Finished tests in 0.656300s, 31.9976 tests/s, 135.6087 assertions/s.
21 tests, 89 assertions, 0 failures, 1 errors, 1 skips
</code></pre>
<p>Here are my current environment details:</p>
<ul>
<li>osx 10.13.2</li>
<li>ruby trunk 58fbe69a5b</li>
</ul>
<p>Is their a guide somewhere for git bisecting ruby trunk. I'm using <a href="https://github.com/ko1/rubyhackchallenge/blob/master/EN/2_mri_structure.md#assumptions" class="external">https://github.com/ko1/rubyhackchallenge/blob/master/EN/2_mri_structure.md#assumptions</a> and I'm not sure about the best way of doing it.</p>
<p>I'm running <em>make test-all</em> from my <em>build</em> folder but do I need to run <em>../ruby/configure ....</em> and <em>make install</em> everytime I checkout a previous version? I feel dumb of asking those questions.</p>
<p>Thanks a lot in advance</p>
Ruby master - Bug #13646 (Third Party's Issue): Segmentation fault with postgresql_adapter in Rails
https://bugs.ruby-lang.org/issues/13646
2017-06-09T08:45:09Z
Benoit_Tigeot (Benoit Tigeot)
<p>Sometimes will running a test with guard and spring, test crash. I get a segfault on <a href="https://github.com/rails/rails/blob/v4.2.8/activerecord/lib/active_record/connection_adapters/postgresql_adapter.rb#L651" class="external">postgresql_adapter</a></p>
<pre><code class="text syntaxhl" data-language="text">10:16:57 - INFO - Running: spec/../../.._worker_spec.rb
Running via Spring preloader in process 45503
Run options: --seed 9030
/Users/bti/.rvm/gems/ruby-2.4.1@app/gems/activerecord-4.2.8/lib/active_record/connection_adapters/postgresql_adapter.rb:651: [BUG] Segmentation fault at 0x0000010abfaa3a
ruby 2.4.1p111 (2017-03-22 revision 58053) [x86_64-darwin16]
-- Crash Report log information --------------------------------------------
See Crash Report log file under the one of following:
* ~/Library/Logs/DiagnosticReports
* /Library/Logs/DiagnosticReports
for more details.
Don't forget to include the above Crash Report log file in bug reports.
-- Control frame information -----------------------------------------------
c:0059 p:---- s:0296 e:000295 CFUNC :initialize
c:0058 p:---- s:0293 e:000292 CFUNC :new
c:0057 p:0017 s:0288 e:000287 METHOD /Users/bti/.rvm/gems/ruby-2.4.1@app/gems/activerecord-4.2.8/lib/active_record/connection_adapters/postgresql_adapter.rb:6
c:0056 p:0100 s:0283 e:000282 METHOD /Users/bti/.rvm/gems/ruby-2.4.1@app/gems/activerecord-4.2.8/lib/active_record/connection_adapters/postgresql_adapter.rb:2 [FINISH]
c:0055 p:---- s:0275 e:000274 CFUNC :new
c:0054 p:0104 s:0267 e:000266 METHOD /Users/bti/.rvm/gems/ruby-2.4.1@app/gems/activerecord-4.2.8/lib/active_record/connection_adapters/postgresql_adapter.rb:4
c:0053 p:0028 s:0261 e:000260 METHOD /Users/bti/.rvm/gems/ruby-2.4.1@app/gems/activerecord-4.2.8/lib/active_record/connection_adapters/abstract/connection_poo
c:0052 p:0027 s:0257 e:000256 METHOD /Users/bti/.rvm/gems/ruby-2.4.1@app/gems/activerecord-4.2.8/lib/active_record/connection_adapters/abstract/connection_poo
c:0051 p:0043 s:0252 e:000251 METHOD /Users/bti/.rvm/gems/ruby-2.4.1@app/gems/activerecord-4.2.8/lib/active_record/connection_adapters/abstract/connection_poo
c:0050 p:0008 s:0247 e:000246 BLOCK /Users/bti/.rvm/gems/ruby-2.4.1@app/gems/activerecord-4.2.8/lib/active_record/connection_adapters/abstract/connection_poo
c:0049 p:0015 s:0243 e:000242 METHOD /Users/bti/.rvm/rubies/ruby-2.4.1/lib/ruby/2.4.0/monitor.rb:214
c:0048 p:0009 s:0239 e:000238 METHOD /Users/bti/.rvm/gems/ruby-2.4.1@app/gems/activerecord-4.2.8/lib/active_record/connection_adapters/abstract/connection_poo
c:0047 p:0025 s:0235 e:000231 BLOCK /Users/bti/.rvm/gems/ruby-2.4.1@app/gems/activerecord-4.2.8/lib/active_record/connection_adapters/abstract/connection_poo
c:0046 p:0015 s:0229 e:000228 METHOD /Users/bti/.rvm/rubies/ruby-2.4.1/lib/ruby/2.4.0/monitor.rb:214
c:0045 p:0023 s:0225 e:000224 METHOD /Users/bti/.rvm/gems/ruby-2.4.1@app/gems/activerecord-4.2.8/lib/active_record/connection_adapters/abstract/connection_poo
c:0044 p:0044 s:0221 e:000220 METHOD /Users/bti/.rvm/gems/ruby-2.4.1@app/gems/activerecord-4.2.8/lib/active_record/connection_adapters/abstract/connection_poo
c:0043 p:0012 s:0214 e:000213 METHOD /Users/bti/.rvm/gems/ruby-2.4.1@app/gems/activerecord-4.2.8/lib/active_record/connection_handling.rb:113
c:0042 p:0008 s:0210 e:000209 METHOD /Users/bti/.rvm/gems/ruby-2.4.1@app/gems/activerecord-4.2.8/lib/active_record/connection_handling.rb:87
c:0041 p:0010 s:0206 e:000205 METHOD /Users/bti/.rvm/gems/ruby-2.4.1@app/gems/activerecord-4.2.8/lib/active_record/migration.rb:857
c:0040 p:0016 s:0201 e:000200 METHOD /Users/bti/.rvm/gems/ruby-2.4.1@app/gems/activerecord-4.2.8/lib/active_record/migration.rb:396
c:0039 p:0008 s:0197 e:000196 BLOCK /Users/bti/.rvm/gems/ruby-2.4.1@app/gems/activerecord-4.2.8/lib/active_record/migration.rb:411
c:0038 p:0025 s:0194 e:000193 METHOD /Users/bti/.rvm/gems/ruby-2.4.1@app/gems/activerecord-4.2.8/lib/active_record/migration.rb:642
c:0037 p:0031 s:0189 e:000188 METHOD /Users/bti/.rvm/gems/ruby-2.4.1@app/gems/activerecord-4.2.8/lib/active_record/migration.rb:416
c:0036 p:0025 s:0182 E:001a50 METHOD /Users/bti/.rvm/gems/ruby-2.4.1@app/gems/activerecord-4.2.8/lib/active_record/migration.rb:411
c:0035 p:0146 s:0178 e:000177 TOP /Users/bti/code/app/spec/rails_helper.rb:33 [FINISH]
c:0034 p:---- s:0175 e:000174 CFUNC :require
c:0033 p:0012 s:0170 e:000169 BLOCK /Users/bti/.rvm/gems/ruby-2.4.1@app/gems/activesupport-4.2.8/lib/active_support/dependencies.rb:274
c:0032 p:0059 s:0167 e:000166 METHOD /Users/bti/.rvm/gems/ruby-2.4.1@app/gems/activesupport-4.2.8/lib/active_support/dependencies.rb:240
c:0031 p:0017 s:0161 e:000160 METHOD /Users/bti/.rvm/gems/ruby-2.4.1@app/gems/activesupport-4.2.8/lib/active_support/dependencies.rb:274
c:0030 p:0008 s:0155 e:000154 TOP /Users/bti/code/app/spec/workers/../.._worker_spec.rb:1 [FINISH]
c:0029 p:---- s:0152 e:000151 CFUNC :load
c:0028 p:0014 s:0146 e:000145 BLOCK /Users/bti/.rvm/gems/ruby-2.4.1@app/gems/activesupport-4.2.8/lib/active_support/dependencies.rb:268
c:0027 p:0059 s:0143 e:000142 METHOD /Users/bti/.rvm/gems/ruby-2.4.1@app/gems/activesupport-4.2.8/lib/active_support/dependencies.rb:240
c:0026 p:0021 s:0137 e:000136 METHOD /Users/bti/.rvm/gems/ruby-2.4.1@app/gems/activesupport-4.2.8/lib/active_support/dependencies.rb:268
c:0025 p:0026 s:0130 e:000129 BLOCK /Users/bti/.rvm/gems/ruby-2.4.1@app/gems/rspec-core-3.5.4/lib/rspec/core/configuration.rb:1435 [FINISH]
c:0024 p:---- s:0125 e:000124 CFUNC :each
c:0023 p:0029 s:0121 e:000120 METHOD /Users/bti/.rvm/gems/ruby-2.4.1@app/gems/rspec-core-3.5.4/lib/rspec/core/configuration.rb:1433
c:0022 p:0057 s:0117 e:000116 METHOD /Users/bti/.rvm/gems/ruby-2.4.1@app/gems/rspec-core-3.5.4/lib/rspec/core/runner.rb:100
c:0021 p:0012 s:0111 e:000110 METHOD /Users/bti/.rvm/gems/ruby-2.4.1@app/gems/rspec-core-3.5.4/lib/rspec/core/runner.rb:86
c:0020 p:0085 s:0105 e:000104 METHOD /Users/bti/.rvm/gems/ruby-2.4.1@app/gems/rspec-core-3.5.4/lib/rspec/core/runner.rb:71
c:0019 p:0026 s:0097 e:000096 METHOD /Users/bti/.rvm/gems/ruby-2.4.1@app/gems/rspec-core-3.5.4/lib/rspec/core/runner.rb:45
c:0018 p:0025 s:0092 e:000091 TOP /Users/bti/.rvm/gems/ruby-2.4.1@app/gems/rspec-core-3.5.4/exe/rspec:4 [FINISH]
c:0017 p:---- s:0089 e:000088 CFUNC :load
c:0016 p:0014 s:0083 e:000082 BLOCK /Users/bti/.rvm/gems/ruby-2.4.1@app/gems/activesupport-4.2.8/lib/active_support/dependencies.rb:268
c:0015 p:0059 s:0080 e:000079 METHOD /Users/bti/.rvm/gems/ruby-2.4.1@app/gems/activesupport-4.2.8/lib/active_support/dependencies.rb:240
c:0014 p:0021 s:0074 e:000073 METHOD /Users/bti/.rvm/gems/ruby-2.4.1@app/gems/activesupport-4.2.8/lib/active_support/dependencies.rb:268
c:0013 p:0101 s:0067 e:000066 METHOD /Users/bti/.rvm/gems/ruby-2.4.1@app/gems/spring-commands-rspec-1.0.4/lib/spring/commands/rspec.rb:18
c:0012 p:0024 s:0063 e:000062 METHOD /Users/bti/.rvm/gems/ruby-2.4.1@app/gems/spring-1.7.2/lib/spring/command_wrapper.rb:38
c:0011 p:0204 s:0059 e:000058 BLOCK /Users/bti/.rvm/gems/ruby-2.4.1@app/gems/spring-1.7.2/lib/spring/application.rb:191 [FINISH]
c:0010 p:---- s:0056 e:000055 CFUNC :fork
c:0009 p:0272 s:0052 e:000051 METHOD /Users/bti/.rvm/gems/ruby-2.4.1@app/gems/spring-1.7.2/lib/spring/application.rb:161
c:0008 p:0075 s:0038 e:000037 BLOCK /Users/bti/.rvm/gems/ruby-2.4.1@app/gems/spring-1.7.2/lib/spring/application.rb:131 [FINISH]
c:0007 p:---- s:0035 e:000034 CFUNC :loop
c:0006 p:0028 s:0031 e:000030 METHOD /Users/bti/.rvm/gems/ruby-2.4.1@app/gems/spring-1.7.2/lib/spring/application.rb:125
c:0005 p:0167 s:0027 E:002468 TOP /Users/bti/.rvm/gems/ruby-2.4.1@app/gems/spring-1.7.2/lib/spring/application/boot.rb:19 [FINISH]
c:0004 p:---- s:0023 e:000022 CFUNC :require
c:0003 p:0132 s:0018 e:000017 METHOD /Users/bti/.rvm/rubies/ruby-2.4.1/lib/ruby/2.4.0/rubygems/core_ext/kernel_require.rb:55
c:0002 p:0008 s:0006 e:000005 EVAL -e:1 [FINISH]
c:0001 p:0000 s:0003 E:001830 (none) [FINISH]
-- Ruby level backtrace information ----------------------------------------
-e:1:in `<main>'
/Users/bti/.rvm/rubies/ruby-2.4.1/lib/ruby/2.4.0/rubygems/core_ext/kernel_require.rb:55:in `require'
/Users/bti/.rvm/rubies/ruby-2.4.1/lib/ruby/2.4.0/rubygems/core_ext/kernel_require.rb:55:in `require'
/Users/bti/.rvm/gems/ruby-2.4.1@app/gems/spring-1.7.2/lib/spring/application/boot.rb:19:in `<top (required)>'
/Users/bti/.rvm/gems/ruby-2.4.1@app/gems/spring-1.7.2/lib/spring/application.rb:125:in `run'
/Users/bti/.rvm/gems/ruby-2.4.1@app/gems/spring-1.7.2/lib/spring/application.rb:125:in `loop'
/Users/bti/.rvm/gems/ruby-2.4.1@app/gems/spring-1.7.2/lib/spring/application.rb:131:in `block in run'
/Users/bti/.rvm/gems/ruby-2.4.1@app/gems/spring-1.7.2/lib/spring/application.rb:161:in `serve'
/Users/bti/.rvm/gems/ruby-2.4.1@app/gems/spring-1.7.2/lib/spring/application.rb:161:in `fork'
/Users/bti/.rvm/gems/ruby-2.4.1@app/gems/spring-1.7.2/lib/spring/application.rb:191:in `block in serve'
/Users/bti/.rvm/gems/ruby-2.4.1@app/gems/spring-1.7.2/lib/spring/command_wrapper.rb:38:in `call'
/Users/bti/.rvm/gems/ruby-2.4.1@app/gems/spring-commands-rspec-1.0.4/lib/spring/commands/rspec.rb:18:in `call'
/Users/bti/.rvm/gems/ruby-2.4.1@app/gems/activesupport-4.2.8/lib/active_support/dependencies.rb:268:in `load'
/Users/bti/.rvm/gems/ruby-2.4.1@app/gems/activesupport-4.2.8/lib/active_support/dependencies.rb:240:in `load_dependency'
/Users/bti/.rvm/gems/ruby-2.4.1@app/gems/activesupport-4.2.8/lib/active_support/dependencies.rb:268:in `block in load'
/Users/bti/.rvm/gems/ruby-2.4.1@app/gems/activesupport-4.2.8/lib/active_support/dependencies.rb:268:in `load'
/Users/bti/.rvm/gems/ruby-2.4.1@app/gems/rspec-core-3.5.4/exe/rspec:4:in `<top (required)>'
/Users/bti/.rvm/gems/ruby-2.4.1@app/gems/rspec-core-3.5.4/lib/rspec/core/runner.rb:45:in `invoke'
/Users/bti/.rvm/gems/ruby-2.4.1@app/gems/rspec-core-3.5.4/lib/rspec/core/runner.rb:71:in `run'
/Users/bti/.rvm/gems/ruby-2.4.1@app/gems/rspec-core-3.5.4/lib/rspec/core/runner.rb:86:in `run'
/Users/bti/.rvm/gems/ruby-2.4.1@app/gems/rspec-core-3.5.4/lib/rspec/core/runner.rb:100:in `setup'
...................
-- Machine register context ------------------------------------------------
rax: 0x0000000000000000 rbx: 0x00007f9938701620 rcx: 0x0000000000010000
rdx: 0x00007fff5708b860 rdi: 0x000000010abfaa38 rsi: 0x00007f9938701620
rbp: 0x00007fff5708b850 rsp: 0x00007fff5708b818 r8: 0x0000000000000000
r9: 0x0000000000c18233 r10: 0x0000000108b716f0 r11: 0xffffffffa781063d
r12: 0x00007fffb85a2e48 r13: 0x00007fffaf8c3fa0 r14: 0x00007fff5708b860
r15: 0x00007f9938701630 rip: 0x00007fffaf8c3fa4 rfl: 0x0000000000010202
-- C level backtrace information -------------------------------------------
0 libruby.2.4.1.dylib 0x0000000108d42248 rb_vm_bugreport + 136
1 libruby.2.4.1.dylib 0x0000000108bda0ce rb_bug_context + 510
2 libruby.2.4.1.dylib 0x0000000108cbd748 sigsegv + 72
3 libsystem_platform.dylib 0x00007fffaf898b3a _sigtramp + 26
4 libsystem_trace.dylib 0x00007fffaf8c3fa4 _os_log_cmp_key + 4
-- Other runtime information -----------------------------------------------
* Loaded script: rspec
* Loaded features:
0 enumerator.so
1 thread.rb
2 rational.so
3 complex.so
</code></pre>
<p>I can share if needed full output by email (contains code we don't want to share)</p>