Closed gnilrets closed 8 years ago
Having a look.
This error usually happens if a recursion is involved, but there is none here. Investigating now.
@zverok @mrkn have you come across something like this before?
@gnilrets I just learned about caller.length
from that answer and it appears that the problem happens at the Array#values_at
function called here.
Upon testing it with a simple Array:
[3] pry(main)> a = [1] * 140_000
[4] pry(main)> a.values_at(1,2,3)
=> [1, 1, 1]
[5] pry(main)> a.values_at([1,2,3]*100_000)
TypeError: no implicit conversion of Array into Integer
from (pry):5:in `values_at'
[6] pry(main)> a.values_at(*[1,2,3]*100_000)
SystemStackError: stack level too deep
from (pry):6:in `__pry__'
@mrkn I think we just found a bug in Ruby. It's probably a recursive call internally in MRI that is causing this bug.
Something very bad is happening with filters. I recently upgraded a bunch of my code to 0.1.4 and I started getting SystemStackErrors with some of my larger dataframes. Here's how it can be reproduced: