Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

StackOverflowException with large input file. #73

Closed
hglee opened this issue May 3, 2018 · 4 comments
Closed

StackOverflowException with large input file. #73

hglee opened this issue May 3, 2018 · 4 comments

Comments

@hglee
Copy link

hglee commented May 3, 2018

NeoLua Version: NeoLua Interactive Command NeoLua 5.3 (1.2.24.0) by neolithos

Example to reproduce:

:load load_fail.lua

Samples.zip

When I try to load large input file that autogenerated (about 730kib), I got StackOverflowException.

Is there some limit for file size?

@neolithos
Copy link
Owner

neolithos commented May 4, 2018

In the debug version all is working find.

It looks that the System.Reflection.Emit.DynamicMethod has a problem in the release version, it could be a problem in the DLR.

The expression tree is generated successful, the dynamic byte stream is also generated. But when the DLR executes the stream, it stops with a StackOverFlowException immediately.

I have no idea why?

@hglee
Copy link
Author

hglee commented May 15, 2018

I have another clue for that.

  • Release 32-bit Process(Any CPU with 'Prefer 32-bit'): Load success in 3339 ms
  • Release 32-bit Process(x86): Load success in 3253 ms
  • Release 64-bit Process(Any CPU): StackOverflow Exception
  • Release 64-bit Process(x64): Load success in 2557 ms

@neolithos
Copy link
Owner

Confirmed.

The problem might be in DynamicMethod implemention. But the development environment also crashes, so I have no glue what is going wrong :-(

@neolithos
Copy link
Owner

As a work around you should have a look at ToLson.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants