Backport #8253

Can't eval very long strings (SystemStackError)

Added by Hossam Hammady about 1 year ago. Updated about 1 year ago.

[ruby-core:54174]
Status:Rejected
Priority:Normal
Assignee:Usaku NAKAMURA

Description

I have a very long string which is the output from a Solr server, RSolr gem fails to eval the response as a Ruby object because it is too long (> 640K). I have filed a detailed bug description here:
https://github.com/mwmitchell/rsolr/issues/61
The problematic response can be found here:
http://da.qcri.org/solr-response-46-70000.txt
It boiled down that Kernel.eval fails because the string is too long for the allocated stack.
File: vm.c
Function: vmsetevalstack
MACRO: CHECK
STACK_OVERFLOW

Is it just a limitation in the VM or the stack can have a dynamically larger size?

History

#1 Updated by Nobuyoshi Nakada about 1 year ago

  • Tracker changed from Bug to Backport
  • Project changed from ruby-trunk to Backport93
  • Category deleted (core)
  • Status changed from Open to Assigned
  • Assignee set to Usaku NAKAMURA

This issue is fixed by r35306, with some fix-ups.

#2 Updated by Usaku NAKAMURA about 1 year ago

  • Status changed from Assigned to Rejected

Hmm, r35306 is a too big change for ruby19_3.
So I don't fix it and declare that this is a limitation of ruby 1.9.3.

#3 Updated by Hossam Hammady about 1 year ago

I confirm that it is fixed in ruby2, just tried it. Thank you guys.

Also available in: Atom PDF