Issue #14053 has been updated by shevegen (Robert A. Heiler).


Come to think about it, while it may not be directly related to the
above report, I think it may also have to do with the fact that the
case/when menu is really huge, using lots of conditional checks
such as:

    case i
    when /^Foo(_|-| )?bar(_|-| )?bla(_|-| )?$/i
      'some_remote_url_here'

I don't recommend anyone to use such huge case/when menus but now I
consider it just ... testing ruby a little bit as well. :D

I think that either way, perhaps the error message could be different -
or perhaps more consistent to itself IF this bug is related to 
memory problems, such as the "out of memory" errors. However had, I
speculate here since I do not know the origin. All I suspect is that
it may have to do with excessively long case/when menus and way
too many regex-entries in them. :)

----------------------------------------
Bug #14053: Problem with case/when menus in ruby 2.5.0dev (2017-10-25) [x86_64-linux] - semi-random tracebook of different errors (NODE_STR, NODE_ARGS etc...) and also segfaults sometimes
https://bugs.ruby-lang.org/issues/14053#change-67591

* Author: shevegen (Robert A. Heiler)
* Status: Open
* Priority: Normal
* Assignee: 
* Target version: 
* ruby -v: ruby 2.5.0dev (2017-10-25) [x86_64-linux]
* Backport: 2.3: UNKNOWN, 2.4: UNKNOWN
----------------------------------------
Hello.

I think something must have changed in ruby recently in regards to how
case/when menus are handled. I am using svn checkout of ruby today.

I can trigger strange bug events that appear to be semi-random:

---

NODE_OP_CDECL
NODE_ARGS_AUX
NODE_SCOPE
NODE_STR
NODE_ARGS

---

(1)

/Programs/Ruby/25.10.2017/lib/ruby/site_ruby/2.5.0/beautiful_url/menu.rb: /Programs/Ruby/25.10.2017/lib/ruby/site_ruby/2.5.0/beautiful_url/menu.rb:2848: NODE_CASE: unknown node (NODE_OP_CDECL) (SyntaxError

---

(2)

You may have encountered a bug in the Ruby interpreter or extension libraries.
Bug reports are welcome.
For details: http://www.ruby-lang.org/bugreport.html

Aborted

---

(3)

/Programs/Ruby/25.10.2017/lib/ruby/site_ruby/2.5.0/beautiful_url/menu.rb: /Programs/Ruby/25.10.2017/lib/ruby/site_ruby/2.5.0/beautiful_url/menu.rb:171: iseq_compile_each: unknown node (NODE_ARGS_AUX) (SyntaxError)

---

(4)

/Programs/Ruby/25.10.2017/lib/ruby/site_ruby/2.5.0/beautiful_url/menu.rb: /Programs/Ruby/25.10.2017/lib/ruby/site_ruby/2.5.0/beautiful_url/menu.rb: NODE_CASE: unknown node (NODE_SCOPE) (SyntaxError)

---

(5)

/Programs/Ruby/25.10.2017/lib/ruby/site_ruby/2.5.0/beautiful_url/menu.rb: /Programs/Ruby/25.10.2017/lib/ruby/site_ruby/2.5.0/beautiful_url/menu.rb:6084: NODE_CASE: unknown node (NODE_STR) (SyntaxError)

---

(6)

/Programs/Ruby/25.10.2017/lib/ruby/site_ruby/2.5.0/beautiful_url/menu.rb: /Programs/Ruby/25.10.2017/lib/ruby/site_ruby/2.5.0/beautiful_url/menu.rb:2849: iseq_compile_each: unknown node (NODE_ARGS) (SyntaxError)

-----------------------------

The above errors appear to happen randomly. I should note that this is
a really HUGE case/when menu. I even split it up into separate .rb files
because I used to get "out of memory" errors with ruby. :D

With the stable "ruby 2.4.2p198" I do not get the above, semi-random
errors, so I am quite sure that something may have changed since then.

I removed the gem "beautiful_url" for the time being, until I have
finished reworking it; then I will upload it again.

Before the above errors, I also had some more specific errors about
specific lines that appeared to be "wrong" to ruby 2.5.x - but ruby
2.4.x was fine with that.

The most confusing part is that I can randomly "trigger" different
results, upon invoking the above. Sometimes I just get a plain
SEGFAULT, and sometimes I seem to randomly get NODE_OP_CDECL or
NODE_ARGS_AUX or NODE_SCOPE or NODE_STR or NODE_ARGS. I have never
seen that behaviour before. :)

I am sorry to be unable to give more information right now. I will
continue to investigate but most time I spend with ruby 2.4.2 and
perhaps the above error may disappear in a while. (May be due to
errors in my own .rb files, but since ruby 2.4.2 does not exhibit
the above issue, I think it must be because something may have
changed in ruby 2.5.x).

I'll try to make this more reproducable if it keeps on appearing
in later svn-checkouts in some days / a few weeks perhaps. I test
upcoming ruby semi-regularly.

Thanks!




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

Unsubscribe: <mailto:ruby-core-request / ruby-lang.org?subject=unsubscribe>
<http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-core>