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

Jsaddle+Reflex breaking when calling networkHold for a large data set (~80kb) #78

Open
marcotoniut opened this issue Sep 14, 2018 · 0 comments

Comments

@marcotoniut
Copy link

I've been trying to isolate this issue as much as I could, doing varying tests due to my unfamiliarity with the system, just a heads up that my conclusions could be way off.

The issue is seemingly caused by a jsaddle wrapped reflex application calling widgetHold/networkHold (or it's networkView variant) on an Event that holds a somewhat large data type, in this case it's a record of the Extensible library that is about 87kb as a json. This leads to an infinite loop of synchronization attempts with a growing footprint in the XHR responses. The issue could be related to the blocking nature of the synchronicity mechanism discussed in here #51

If I were to pause the program in the browser and unpause it, then the view is resolved, jsaddle's synch loop stops and it is as if nothing happened.

Building the same application to a full stack web app with ghcjs yields no problem whatsoever as well as no apparent performance/side effects.

And the funny thing is that if I were to just embedded my json in the code as a large string, then the failure escape sequence becomes a completely different. The app breaks with the following message:

<interactive>: Network.Socket.sendBuf: resource vanished (Broken pipe)
<interactive>: kevent: does not exist (No such file or directory)
<interactive>: ConnectionClosed

I must conclude that these two issues share the underlying cause. Perhaps a segmentation fault bug with the c code? And again, this works just fine if I deploy locally as a web app.

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

No branches or pull requests

1 participant