-
Notifications
You must be signed in to change notification settings - Fork 574
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
fiber Stack popMethod -> ArrayIndexOutOfBoundsException #309
Comments
Increase the stack size in the fiber constructor. |
@pron would it be a disaster if |
@doctorpangloss , could you please elaborate? why would increasing the stack size help in this case? I thought the stack was supposed to grow during pushMethod if necessary, maybe we should call growStack in nextMethodEntry too when it bumps ps? |
@rustam9, that's a @pron question why the stack isn't growing in some situations. I've encountered this too, which is why I had the workaround. I believe that it's possible to push twice but pop once or push once and miss a pop, which would explain why the stack pointer would be too large. I've seen this when examining the stack in a fiber (identical arguments on the stack appearing twice). My bet is that there's something with (1) default methods, (2) overridden methods calling |
Thanks @doctorpangloss for the explanation! The workaround works for me as well.
The ArrayIndexOutOfBoundsException disappeared without increasing the stack size for Fiber. |
I think you hit the nail on the head there |
@doctorpangloss @pron @circlespainter Hi, my team is currently on heavy dev job based on Quasar and met the exactly same issue like this one. @rustam9 seems to find a workaround, right? However could you make a patch or new release with this fix? Actually I know you are focusing project Loom but we don't have enough time for the release of it. |
I found a problem:it happens when i call the exchange method of RestTemplate,co.paralleluniverse.fibers.Stack.popMethod throws an ArrayIndexOutOfBoundsException at Stack.java:151, idx equals the length of dataLong.Could you tell me the reason?
The text was updated successfully, but these errors were encountered: