-
Notifications
You must be signed in to change notification settings - Fork 1.6k
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
Segmentation fault if reloading a page with a lot of big css/js files repeatedly #21795
Comments
This comment was originally written by tomy...@potix.com No, I'm using Chrome since it is not about the client-side code. |
Quick update on the issue. Not fixed yet. This is an issue with optimized compilation of try-catch statements, but not related to inlining. A debug build will crash with an assert when compiling function _close in stream/src/server_impl.dart:190: void _close(HttpConnect connect) { Here are more detailed steps to reproduce:
No need to refresh (btw, CTRL+F5 does not work, SHIFT+F5 does). regis@belenos:~/segfault$ gdb --args ~/dart2/dart/out/DebugIA32/dart --optimization_filter=_close@230921706 --print_flow_graph_optimized --no_use_inlining --optimization_counter_threshold=5 --package-root=packages/ test/webapp/main.dart <http://go/gdb-home FAQ: http://go/gdb-faq Email: gdb-team IRC: gdb> Program received signal SIGABRT, Aborted. ---Type <return> to continue, or q <return> to quit---q Added Started label. |
It looks like the order in which code for catch blocks and rethrows is generated is different in unoptimized code and optimized code. Exception handlers are inserted in a list while compiling code for a catch, and compiling a rethrow expects the handler to be present in the list. If I print when a handler is added and expected, I get this (unoptimized followed by optimized): If I replace the failing assert by a call to AddPlaceHolder(), everything seems to work: AddExceptionHandler try_index=0 cl on its way shortly: https://codereview.chromium.org/847613002 |
Here is a short standalone regression test. Attachment: |
Fixed in r42824. Added Fixed label. |
Merge of this fix to trunk has been requested with issue #22056 and should be available in any stable release after 1.8.5. |
This issue was originally filed by tomy...@potix.com
What steps will reproduce the problem?
./vm/zone.h:233: error: Zone::Alloc: 'len' is too large: len=1073741824, element_size=4
Abort trap: 6
Segmentation fault: 11
The more large JS/CSS files in the page, the more likely to crash. The content doesn't matter. It seems related to aborted connections.
Dart version: Dart VM version: 1.8.0 (Thu Nov 27 00:59:46 2014) on "macos_ia32"
The text was updated successfully, but these errors were encountered: