Summary: | [GTK] Insta-crash when closing browser with inspector window opened | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Product: | WebKit | Reporter: | Xan Lopez <xan.lopez> | ||||||||
Component: | WebKitGTK | Assignee: | Gustavo Noronha (kov) <gustavo> | ||||||||
Status: | RESOLVED FIXED | ||||||||||
Severity: | Normal | CC: | alex, gnome, gustavo, mrobinson, pnormand, svillar, yurys | ||||||||
Priority: | P2 | ||||||||||
Version: | 528+ (Nightly build) | ||||||||||
Hardware: | PC | ||||||||||
OS: | OS X 10.5 | ||||||||||
Attachments: |
|
Description
Xan Lopez
2010-12-09 02:56:45 PST
After investigating this a bit and discussing it with Yury as well, it seems that the ASSERT is triggered because we reuse the frontend page. The inspector controller does not intentionally allow to set a client more than once because the code assumes that the inspector window is closed when no longer used. This means that we should recreate the frontend page, the inspector controller and so on, everytime openInspectorFrontend is called. The problem is caused because ephypany does not really destroy the inspector window. Instead it hides it and reuses the created instance. So basically we have 2 options: * ensure that the frontend page is destroyed when the inspector is closed * change epy code to destroy the inspector window IMHO the approach of emitting a "close-window" and let the client decide what to do with the windows is incorrect. We must unconditionally close it in InspectorClientGtk as the inspector code assumes that. http/tests/inspector-enabled/open-close-open.html is a test-case trigerring this crash. I'll skip it for now. (In reply to comment #2) > http/tests/inspector-enabled/open-close-open.html is a test-case trigerring this crash. > > I'll skip it for now. Looks like the stack for this one is very similar. 0 0x00007fd9f00166a5 in WebKit::InspectorFrontendClient::~InspectorFrontendClient (this=0x3db4050, __in_chrg=<value optimized out>) at ../../Source/WebKit/gtk/WebCoreSupport/InspectorClientGtk.cpp:211 #1 0x00007fd9f0016daf in WTF::deleteOwnedPtr<WebCore::InspectorFrontendClient> (ptr=0x3db4050) at ../../Source/JavaScriptCore/wtf/OwnPtrCommon.h:59 #2 0x00007fd9f055c843 in WTF::OwnPtr<WebCore::InspectorFrontendClient>::~OwnPtr (this=0x3a34a20, __in_chrg=<value optimized out>) at ../../Source/JavaScriptCore/wtf/OwnPtr.h:57 #3 0x00007fd9f055bf56 in WebCore::InspectorController::~InspectorController (this=0x3a34a10, __in_chrg=<value optimized out>) at ../../Source/WebCore/inspector/InspectorController.cpp:62 #4 0x00007fd9f06ecb59 in WTF::deleteOwnedPtr<WebCore::InspectorController> (ptr=0x3a34a10) at ../../Source/JavaScriptCore/wtf/OwnPtrCommon.h:59 #5 0x00007fd9f06ebdd1 in WTF::OwnPtr<WebCore::InspectorController>::~OwnPtr (this=0x375b088, __in_chrg=<value optimized out>) at ../../Source/JavaScriptCore/wtf/OwnPtr.h:57 #6 0x00007fd9f06e861a in WebCore::Page::~Page (this=0x375b060, __in_chrg=<value optimized out>) at ../../Source/WebCore/page/Page.cpp:208 #7 0x00007fd9f0033ba7 in webkit_web_view_dispose (object=0xae6490) at ../../Source/WebKit/gtk/webkit/webkitwebview.cpp:1396 #8 0x00007fd9eda9ec90 in g_object_run_dispose (object=0xae6490) at /tmp/buildd/glib2.0-2.27.91/./gobject/gobject.c:941 #9 0x00007fd9ef096639 in ?? () from /usr/lib/libgtk-x11-2.0.so.0 #10 0x00007fd9eda9c33e in g_closure_invoke (closure=0xa87a00, return_value=0x0, n_param_values=1, param_values=0x2cc3b40, invocation_hint=0x7fff17643200) at /tmp/buildd/glib2.0-2.27.91/./gobject/gclosure.c:767 #11 0x00007fd9edab522b in signal_emit_unlocked_R (node=0xa88070, detail=<value optimized out>, instance=<value optimized out>, emission_return=<value optimized out>, instance_and_params=<value optimized out>) at /tmp/buildd/glib2.0-2.27.91/./gobject/gsignal.c:3368 #12 0x00007fd9edab6b36 in g_signal_emit_valist (instance=0x2d11280, signal_id=<value optimized out>, detail=0, var_args=0x7fff176433f0) at /tmp/buildd/glib2.0-2.27.91/./gobject/gsignal.c:2983 #13 0x00007fd9edab7363 in g_signal_emit (instance=0x7fff17642670, signal_id=0, detail=3959758336) at /tmp/buildd/glib2.0-2.27.91/./gobject/gsignal.c:3040 #14 0x00007fd9ef13f540 in ?? () from /usr/lib/libgtk-x11-2.0.so.0 #15 0x00007fd9eda9ec90 in g_object_run_dispose (object=0x2d11280) at /tmp/buildd/glib2.0-2.27.91/./gobject/gobject.c:941 #16 0x000000000041ed0e in webInspectorCloseWindow (data=0x0) at ../../Tools/DumpRenderTree/gtk/DumpRenderTree.cpp:968 #17 0x00007fd9f004687e in webkit_marshal_BOOLEAN__VOID (closure=0xb74630, return_value=0x7fff17643700, n_param_values=1, param_values=0x7fd9902762e0, invocation_hint=0x7fff176436c0, marshal_data=0x0) at DerivedSources/webkit/webkitmarshal.cpp:642 #18 0x00007fd9eda9c33e in g_closure_invoke (closure=0xb74630, return_value=0x7fff17643700, n_param_values=1, param_values=0x7fd9902762e0, invocation_hint=0x7fff176436c0) at /tmp/buildd/glib2.0-2.27.91/./gobject/gclosure.c:767 #19 0x00007fd9edab53b9 in signal_emit_unlocked_R (node=0xae8d20, detail=<value optimized out>, instance=<value optimized out>, emission_return=<value optimized out>, instance_and_params=<value optimized out>) at /tmp/buildd/glib2.0-2.27.91/./gobject/gsignal.c:3252 #20 0x00007fd9edab697c in g_signal_emit_valist (instance=0xad8d40, signal_id=<value optimized out>, detail=0, var_args=0x7fff176438e0) at /tmp/buildd/glib2.0-2.27.91/./gobject/gsignal.c:2993 #21 0x00007fd9edab6e32 in g_signal_emit_by_name (instance=0xad8d40, detailed_signal=<value optimized out>) at /tmp/buildd/glib2.0-2.27.91/./gobject/gsignal.c:3077 #22 0x00007fd9f00167b6 in WebKit::InspectorFrontendClient::destroyInspectorWindow (this=0x30a94d0, notifyInspectorController=false) at ../../Source/WebKit/gtk/WebCoreSupport/InspectorClientGtk.cpp:231 #23 0x00007fd9f00169d1 in WebKit::InspectorFrontendClient::disconnectFromBackend (this=0x30a94d0) at ../../Source/WebKit/gtk/WebCoreSupport/InspectorClientGtk.cpp:272 #24 0x00007fd9f059575c in WebCore::InspectorFrontendHost::disconnectFromBackend (this=0x31b87e0) at ../../Source/WebCore/inspector/InspectorFrontendHost.cpp:173 #25 0x00007fd9f0c7b43c in WebCore::jsInspectorFrontendHostPrototypeFunctionDisconnectFromBackend (exec=0x7fd9e2c63140) at DerivedSources/WebCore/JSInspectorFrontendHost.cpp:224 #26 0x00007fd99c0001b8 in ?? () #27 0x00007fff17643b80 in ?? () #28 0x00007fd99c0f7421 in ?? () #29 0x00007fff17643b00 in ?? () #30 0x00007fd9e44ca2b8 in ?? () #31 0x00000000042b6da8 in ?? () #32 0x00007fd9e44c6db8 in ?? () #33 0x00007fff17643b30 in ?? () #34 0x00007fd9f0141063 in JSC::Register::Register (this=0x7fd9ed47c170) at ../../Source/JavaScriptCore/interpreter/Register.h:106 #35 0x00007fd9f0e86cff in JSC::JITCode::execute (this=0x3026d18, registerFile=0x111a418, callFrame=0x7fd9e2c63038, globalData=0x1115be0) at ../../Source/JavaScriptCore/jit/JITCode.h:77 #36 0x00007fd9f0e83d90 in JSC::Interpreter::executeCall (this=0x111a400, callFrame=0x3d50778, function=0x7fd9e474ce78, callType=JSC::CallTypeJS, callData=..., thisValue=..., args=...) at ../../Source/JavaScriptCore/interpreter/Interpreter.cpp:851 #37 0x00007fd9f0f103ac in JSC::call (exec=0x3d50778, functionObject=..., callType=JSC::CallTypeJS, callData=..., thisValue=..., args=...) at ../../Source/JavaScriptCore/runtime/CallData.cpp:38 #38 0x00007fd9f011f203 in WebCore::JSMainThreadExecState::call (exec=0x3d50778, functionObject=..., callType=JSC::CallTypeJS, callData=..., thisValue=..., args=...) at ../../Source/WebCore/bindings/js/JSMainThreadExecState.h:48 #39 0x00007fd9f0183d2a in WebCore::ScheduledAction::executeFunctionInContext (this=0x32f3e30, globalObject=0x7fd9e44c6db8, thisValue=..., context=0x3e3d178) at ../../Source/WebCore/bindings/js/ScheduledAction.cpp:106 #40 0x00007fd9f0183f1c in WebCore::ScheduledAction::execute (this=0x32f3e30, document=0x3e3d110) at ../../Source/WebCore/bindings/js/ScheduledAction.cpp:128 #41 0x00007fd9f0183ae6 in WebCore::ScheduledAction::execute (this=0x32f3e30, context=0x3e3d178) at ../../Source/WebCore/bindings/js/ScheduledAction.cpp:76 #42 0x00007fd9f069ba99 in WebCore::DOMTimer::fired (this=0x3db4160) at ../../Source/WebCore/page/DOMTimer.cpp:130 #43 0x00007fd9f07c3580 in WebCore::ThreadTimers::sharedTimerFiredInternal (this=0xb201b0) at ../../Source/WebCore/platform/ThreadTimers.cpp:112 #44 0x00007fd9f07c34b7 in WebCore::ThreadTimers::sharedTimerFired () at ../../Source/WebCore/platform/ThreadTimers.cpp:90 #45 0x00007fd9effbac1e in WebCore::timeout_cb () at ../../Source/WebCore/platform/gtk/SharedTimerGtk.cpp:49 #46 0x00007fd9ed1dbdbb in g_timeout_dispatch (source=0x3b34090, callback=0, user_data=0x7fd9ec051e00) at /tmp/buildd/glib2.0-2.27.91/./glib/gmain.c:3877 #47 0x00007fd9ed1db362 in g_main_dispatch (context=0xffff000000000002) at /tmp/buildd/glib2.0-2.27.91/./glib/gmain.c:2440 #48 g_main_context_dispatch (context=0xffff000000000002) at /tmp/buildd/glib2.0-2.27.91/./glib/gmain.c:3013 #49 0x00007fd9ed1dfa28 in g_main_context_iterate (context=0xa7b1e0, block=<value optimized out>, dispatch=<value optimized out>, self=<value optimized out>) at /tmp/buildd/glib2.0-2.27.91/./glib/gmain.c:3091 #50 0x00007fd9ed1dff35 in g_main_loop_run (loop=0x7fd99016acd0) at /tmp/buildd/glib2.0-2.27.91/./glib/gmain.c:3299 #51 0x00007fd9ef114657 in gtk_main () from /usr/lib/libgtk-x11-2.0.so.0 #52 0x000000000041df63 in runTest (testPathOrURL=...) at ../../Tools/DumpRenderTree/gtk/DumpRenderTree.cpp:667 #53 0x000000000041d633 in runTestingServerLoop () at ../../Tools/DumpRenderTree/gtk/DumpRenderTree.cpp:481 #54 0x000000000041f6da in main (argc=2, argv=0x7fff17644cf8) at ../../Tools/DumpRenderTree/gtk/DumpRenderTree.cpp:1131 Created attachment 125598 [details]
Patch
This fixes the issue of destroying a webview while requiring no changes to Epiphany =) (In reply to comment #1) > IMHO the approach of emitting a "close-window" and let the client decide what to do with the windows is incorrect. We must unconditionally close it in InspectorClientGtk as the inspector code assumes that. You're right about this, I believe, FWIW - let's keep it in mind for our WebKit2 API. That said, we do have to notify the client, because we can't be sure destroying the toplevel the inspector webview has been added to is right. Not destroying and recreating the webview does cause problems, but it's not the particular problem this bug is about. I have an ephy patch that I'll submit later today, but it's not necessary to fix the insta crash when closing a tab that is being inspected; for that (and for the ASSERT) the patch I just submitted is enough. Comment on attachment 125598 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=125598&action=review Great stuff! Just have a few minor nits below. > Source/WebKit/gtk/WebCoreSupport/InspectorClientGtk.cpp:236 > + GRefPtr<WebKitWebInspector> webInspector = adoptGRef(m_webInspector.leakRef()); I think eventually we should do away with GRefPtr. RefPtr/PassRefPtr have so many good features. For instance this would just be: RefPtr<WebKitWebInspector> webInspector = m_webInspector.release(); > Source/WebKit/gtk/WebCoreSupport/InspectorClientGtk.cpp:239 > + g_signal_handlers_disconnect_by_func(m_inspectorWebView, (gpointer)notifyWebViewDestroyed, (gpointer)this); You shouldn't have to cast to gpointer here, I don't think. If it complains about notifyWebViewDestroyed, you should use reinterpret_cast. > Source/WebKit/gtk/tests/testwebinspector.c:27 > +#include "test_utils.h" > + > +#include <errno.h> > +#include <unistd.h> > +#include <string.h> > + You have a few extra newlines here. > Source/WebKit/gtk/tests/testwebinspector.c:68 > + gpointer data) > +{ > + int *beenThere = (int*)data; Since you are already casting these functions, I think you can just use an int* in the signature. For instance: static WebKitWebView* inspectElementCallback(WebKitWebInspector *inspector, WebKitWebView *inspectedWebView, int *timesElementInspected) The signature should all be one line too. > Source/WebKit/gtk/tests/testwebinspector.c:87 > +static gboolean closeInspector (WebKitWebInspector *inspector, > + gpointer data) Ditto. > Source/WebKit/gtk/tests/testwebinspector.c:110 > + int beenThere = 0; > + int closed = 0; I'd suggest timesClosed and timesElementInspected or something like that. > Source/WebKit/gtk/tests/testwebinspector.c:174 > + g_test_add_func("/webkit/webinspector/destroy-inspected-web-view", test_webkit_web_inspector_destroy_inspected_web_view); > + g_test_add_func("/webkit/webinspector/close_and_inspect", test_webkit_web_inspector_close_and_inspect); Perhaps the second test should be called close-and-inspect to match the naming style of the other tests? (In reply to comment #7) > Great stuff! Just have a few minor nits below. \o/ > > Source/WebKit/gtk/WebCoreSupport/InspectorClientGtk.cpp:236 > > + GRefPtr<WebKitWebInspector> webInspector = adoptGRef(m_webInspector.leakRef()); > > I think eventually we should do away with GRefPtr. RefPtr/PassRefPtr have so many good features. For instance this would just be: Agree, I thought this was impossible, though? I don't remember any details, though, so maybe it was just a nightmare. > > Source/WebKit/gtk/WebCoreSupport/InspectorClientGtk.cpp:239 > > + g_signal_handlers_disconnect_by_func(m_inspectorWebView, (gpointer)notifyWebViewDestroyed, (gpointer)this); > > You shouldn't have to cast to gpointer here, I don't think. If it complains about notifyWebViewDestroyed, you should use reinterpret_cast. Oops, yeah, I just moved this, should have fixed it. I'll land in a few, after incorporating your suggestions, thanks for the review! =) Committed r106831: <http://trac.webkit.org/changeset/106831> (In reply to comment #9) > Committed r106831: <http://trac.webkit.org/changeset/106831> This patch broke the API tests it seems: TEST: ./WebKitBuild/Release/Programs/unittests/testwebinspector... (pid=25250) ** WARNING **: Console: undefined @0: ReferenceError: Can't find variable: WebInspector (In reply to comment #10) > (In reply to comment #9) > > Committed r106831: <http://trac.webkit.org/changeset/106831> > > This patch broke the API tests it seems: > > TEST: ./WebKitBuild/Release/Programs/unittests/testwebinspector... (pid=25250) > > ** WARNING **: Console: undefined @0: ReferenceError: Can't find variable: WebInspector http://webkit-bots.igalia.com/amd64debug/svn_106832.core-when_1328562083-_-who_testwebinspecto-_-why_5.trace.html (In reply to comment #10) > This patch broke the API tests it seems: > > TEST: ./WebKitBuild/Release/Programs/unittests/testwebinspector... (pid=25250) > > ** WARNING **: Console: undefined @0: ReferenceError: Can't find variable: WebInspector That's because it needs the inspector files and we do not install them, which should have been obvious from the onset, but the fact that I do install my webkit builds made me miss it =(. I landed a fix http://trac.webkit.org/changeset/106851 but it looks like that didn't work in the 64 bits release bot, I'm waiting for any of the other two bots to cycle or for someone who can log in to the 64 bits release bot to help me debug, if I can't make it work I'll skip. (In reply to comment #11) > http://webkit-bots.igalia.com/amd64debug/svn_106832.core-when_1328562083-_-who_testwebinspecto-_-why_5.trace.html an strace would rock =) Created attachment 128906 [details] testwebinspector backtrace (In reply to comment #10) > (In reply to comment #9) > > Committed r106831: <http://trac.webkit.org/changeset/106831> > > This patch broke the API tests it seems: > > TEST: ./WebKitBuild/Release/Programs/unittests/testwebinspector... (pid=25250) > > ** WARNING **: Console: undefined @0: ReferenceError: Can't find variable: WebInspector I am seeing this failure when building webkit-gtk-1.7.90 for gtk2 from the tarball release. Gdb backtrace is attached (webkit-gtk was built without debug symbols since linking a debug version is beyond my machine's capabilities). (In reply to comment #14) > I am seeing this failure when building webkit-gtk-1.7.90 for gtk2 from the tarball release. Gdb backtrace is attached (webkit-gtk was built without debug symbols since linking a debug version is beyond my machine's capabilities). Do you mind attaching the output from strace? Created attachment 128925 [details] strace output (In reply to comment #15) > (In reply to comment #14) > > I am seeing this failure when building webkit-gtk-1.7.90 for gtk2 from the tarball release. Gdb backtrace is attached (webkit-gtk was built without debug symbols since linking a debug version is beyond my machine's capabilities). > > Do you mind attaching the output from strace? The crash apparently does not occur when Programs/unittests/testwebinspector is run under strace (note that the crash occurs 100% of the time when not running under strace). I have attached the strace output anyway in case it will be useful. The crash often happens on the 64-bit debug bot and 32-bit Release too. Here's a trace: http://webkit-bots.igalia.com/amd64debug/svn_109083.core-when_1330416644-_-who_testwebinspecto-_-why_5.trace.html Thread 1 (Thread 0x7f5d42c15900 (LWP 1695)): #0 0x00007f5d4a5f998d in g_logv () from /home/slave/webkitgtk/gtk-linux-64-debug/build/WebKitBuild/Dependencies/Root/lib64/libglib-2.0.so.0 #1 0x00007f5d4a5f9aaa in g_log () from /home/slave/webkitgtk/gtk-linux-64-debug/build/WebKitBuild/Dependencies/Root/lib64/libglib-2.0.so.0 #2 0x000000000040174d in consoleMessageCallback (webView=0x13383a0, message=0x1539b90 "ReferenceError: Can't find variable: WebInspector", line=0, sourceId=0x1448ba0 "undefined") at ../../Source/WebKit/gtk/tests/testwebinspector.c:46 #3 0x00007f5d4cc9c08e in webkit_marshal_BOOLEAN__STRING_INT_STRING (closure=0x13e5cc0, return_value=0x7fff42e86a50, n_param_values=4, param_values=0x7f5cfc06b9e0, invocation_hint=0x7fff42e86a80, marshal_data=0x0) at DerivedSources/webkit/webkitmarshal.cpp:562 #4 0x00007f5d4a8fbfff in g_closure_invoke () from /home/slave/webkitgtk/gtk-linux-64-debug/build/WebKitBuild/Dependencies/Root/lib64/libgobject-2.0.so.0 #5 0x00007f5d4a91595d in signal_emit_unlocked_R () from /home/slave/webkitgtk/gtk-linux-64-debug/build/WebKitBuild/Dependencies/Root/lib64/libgobject-2.0.so.0 #6 0x00007f5d4a914b6a in g_signal_emit_valist () from /home/slave/webkitgtk/gtk-linux-64-debug/build/WebKitBuild/Dependencies/Root/lib64/libgobject-2.0.so.0 #7 0x00007f5d4a9151e8 in g_signal_emit_by_name () from /home/slave/webkitgtk/gtk-linux-64-debug/build/WebKitBuild/Dependencies/Root/lib64/libgobject-2.0.so.0 #8 0x00007f5d4cc3f7bc in WebKit::ChromeClient::addMessageToConsole (this=0x13d6b20, source=WebCore::JSMessageSource, type=WebCore::LogMessageType, level=WebCore::ErrorMessageLevel, message="ReferenceError: Can't find variable: WebInspector", lineNumber=0, sourceId="undefined") at ../../Source/WebKit/gtk/WebCoreSupport/ChromeClientGtk.cpp:329 #9 0x00007f5d4d4c3be2 in WebCore::Console::addMessage (this=0x1526000, source=WebCore::JSMessageSource, type=WebCore::LogMessageType, level=WebCore::ErrorMessageLevel, message="ReferenceError: Can't find variable: WebInspector", sourceURL="undefined", lineNumber=0, callStack=...) at ../../Source/WebCore/page/Console.cpp:144 #10 0x00007f5d4d049120 in WebCore::Document::addMessage (this=0x1430b90, source=WebCore::JSMessageSource, type=WebCore::LogMessageType, level=WebCore::ErrorMessageLevel, message="ReferenceError: Can't find variable: WebInspector", sourceURL="undefined", lineNumber=0, callStack=...) at ../../Source/WebCore/dom/Document.cpp:4898 #11 0x00007f5d4d0f83a5 in WebCore::ScriptExecutionContext::addConsoleMessage (this=0x1430d38, source=WebCore::JSMessageSource, type=WebCore::LogMessageType, level=WebCore::ErrorMessageLevel, message="ReferenceError: Can't find variable: WebInspector", sourceURL="undefined", lineNumber=0, callStack=...) at ../../Source/WebCore/dom/ScriptExecutionContext.cpp:352 #12 0x00007f5d4d03f708 in WebCore::Document::logExceptionToConsole (this=0x1430b90, errorMessage="ReferenceError: Can't find variable: WebInspector", sourceURL="undefined", lineNumber=0, callStack=...) at ../../Source/WebCore/dom/Document.cpp:2476 #13 0x00007f5d4d0f8221 in WebCore::ScriptExecutionContext::reportException (this=0x1430d38, errorMessage="ReferenceError: Can't find variable: WebInspector", lineNumber=0, sourceURL="undefined", callStack=...) at ../../Source/WebCore/dom/ScriptExecutionContext.cpp:338 #14 0x00007f5d4cddd931 in WebCore::reportException (exec=0x7f5d00f5f7e8, exception=...) at ../../Source/WebCore/bindings/js/JSDOMBinding.cpp:171 #15 0x00007f5d4ce57b13 in WebCore::ScriptController::evaluateInWorld (this=0x13dd0a0, sourceCode=..., world=0x7f5cfc01c670) at ../../Source/WebCore/bindings/js/ScriptController.cpp:151 #16 0x00007f5d4ce57bca in WebCore::ScriptController::evaluate (this=0x13dd0a0, sourceCode=...) at ../../Source/WebCore/bindings/js/ScriptController.cpp:162 #17 0x00007f5d4d33120a in WebCore::InspectorClient::doDispatchMessageOnFrontendPage (this=0x13400b0, frontendPage=0x13d82c0, message="{\"method\":\"Profiler.resetProfiles\"}") at ../../Source/WebCore/inspector/InspectorClient.cpp:62 #18 0x00007f5d4cc675a3 in WebKit::InspectorClient::sendMessageToFrontend (this=0x13400b0, message="{\"method\":\"Profiler.resetProfiles\"}") at ../../Source/WebKit/gtk/WebCoreSupport/InspectorClientGtk.cpp:155 #19 0x00007f5d4db4da17 in WebCore::InspectorFrontend::Profiler::resetProfiles (this=0x13e5af8) at DerivedSources/WebCore/InspectorFrontend.cpp:776 #20 0x00007f5d4d39ea9c in WebCore::InspectorProfilerAgent::resetFrontendProfiles (this=0x1376090) at ../../Source/WebCore/inspector/InspectorProfilerAgent.cpp:276 #21 0x00007f5d4d39e903 in WebCore::InspectorProfilerAgent::resetState (this=0x1376090) at ../../Source/WebCore/inspector/InspectorProfilerAgent.cpp:267 #22 0x00007f5d4d386377 in WebCore::InspectorInstrumentation::didCommitLoadImpl (instrumentingAgents=0x1373990, page=0x1373600, loader=0x13ccf00) at ../../Source/WebCore/inspector/InspectorInstrumentation.cpp:741 #23 0x00007f5d4d32c6ae in WebCore::InspectorInstrumentation::didCommitLoad (frame=0x1329c00, loader=0x13ccf00) at ../../Source/WebCore/inspector/InspectorInstrumentation.h:1060 #24 0x00007f5d4d4475b8 in WebCore::FrameLoader::dispatchDidCommitLoad (this=0x1329cb8) at ../../Source/WebCore/loader/FrameLoader.cpp:3277 #25 0x00007f5d4d43b212 in WebCore::FrameLoader::receivedFirstData (this=0x1329cb8) at ../../Source/WebCore/loader/FrameLoader.cpp:585 #26 0x00007f5d4d43cb4a in WebCore::FrameLoader::willSetEncoding (this=0x1329cb8) at ../../Source/WebCore/loader/FrameLoader.cpp:986 #27 0x00007f5d4d436874 in WebCore::DocumentWriter::setEncoding (this=0x13cd020, name="UTF-8", userChosen=false) at ../../Source/WebCore/loader/DocumentWriter.cpp:239 #28 0x00007f5d4d42a3ca in WebCore::DocumentLoader::commitData (this=0x13ccf00, bytes=0x13b6e90 "<html><body><p>woohoo</p></body></html>", length=39) at ../../Source/WebCore/loader/DocumentLoader.cpp:325 #29 0x00007f5d4cc57f4a in WebKit::FrameLoaderClient::committedLoad (this=0x137c740, loader=0x13ccf00, data=0x13b6e90 "<html><body><p>woohoo</p></body></html>", length=39) at ../../Source/WebKit/gtk/WebCoreSupport/FrameLoaderClientGtk.cpp:168 #30 0x00007f5d4d42a315 in WebCore::DocumentLoader::commitLoad (this=0x13ccf00, data=0x13b6e90 "<html><body><p>woohoo</p></body></html>", length=39) at ../../Source/WebCore/loader/DocumentLoader.cpp:313 #31 0x00007f5d4d42a4fc in WebCore::DocumentLoader::receivedData (this=0x13ccf00, data=0x13b6e90 "<html><body><p>woohoo</p></body></html>", length=39) at ../../Source/WebCore/loader/DocumentLoader.cpp:339 #32 0x00007f5d4d4770b3 in WebCore::MainResourceLoader::addData (this=0x13d0f00, data=0x13b6e90 "<html><body><p>woohoo</p></body></html>", length=39, allAtOnce=true) at ../../Source/WebCore/loader/MainResourceLoader.cpp:170 #33 0x00007f5d4d484903 in WebCore::ResourceLoader::didReceiveData (this=0x13d0f00, data=0x13b6e90 "<html><body><p>woohoo</p></body></html>", length=39, encodedDataLength=39, allAtOnce=true) at ../../Source/WebCore/loader/ResourceLoader.cpp:287 #34 0x00007f5d4d47857c in WebCore::MainResourceLoader::didReceiveData (this=0x13d0f00, data=0x13b6e90 "<html><body><p>woohoo</p></body></html>", length=39, encodedDataLength=39, allAtOnce=true) at ../../Source/WebCore/loader/MainResourceLoader.cpp:464 #35 0x00007f5d4d477b5a in WebCore::MainResourceLoader::continueAfterContentPolicy (this=0x13d0f00, contentPolicy=WebCore::PolicyUse, r=...) at ../../Source/WebCore/loader/MainResourceLoader.cpp:320 #36 0x00007f5d4d477d96 in WebCore::MainResourceLoader::continueAfterContentPolicy (this=0x13d0f00, policy=WebCore::PolicyUse) at ../../Source/WebCore/loader/MainResourceLoader.cpp:338 #37 0x00007f5d4d477cd0 in WebCore::MainResourceLoader::callContinueAfterContentPolicy (argument=0x13d0f00, policy=WebCore::PolicyUse) at ../../Source/WebCore/loader/MainResourceLoader.cpp:330 #38 0x00007f5d4d4782c7 in WebCore::MainResourceLoader::didReceiveResponse (this=0x13d0f00, r=...) at ../../Source/WebCore/loader/MainResourceLoader.cpp:418 #39 0x00007f5d4d478b48 in WebCore::MainResourceLoader::handleDataLoadNow (this=0x13d0f00) at ../../Source/WebCore/loader/MainResourceLoader.cpp:529 #40 0x00007f5d4d479b76 in WebCore::Timer<WebCore::MainResourceLoader>::fired (this=0x13d1510) at ../../Source/WebCore/platform/Timer.h:100 #41 0x00007f5d4d6549a8 in WebCore::ThreadTimers::sharedTimerFiredInternal (this=0x13b5870) at ../../Source/WebCore/platform/ThreadTimers.cpp:115 #42 0x00007f5d4d6548df in WebCore::ThreadTimers::sharedTimerFired () at ../../Source/WebCore/platform/ThreadTimers.cpp:93 #43 0x00007f5d4dfc0e2e in WebCore::timeout_cb () at ../../Source/WebCore/platform/gtk/SharedTimerGtk.cpp:49 #44 0x00007f5d4a5f1bbb in g_timeout_dispatch () from /home/slave/webkitgtk/gtk-linux-64-debug/build/WebKitBuild/Dependencies/Root/lib64/libglib-2.0.so.0 #45 0x00007f5d4a5efdf3 in g_main_dispatch () from /home/slave/webkitgtk/gtk-linux-64-debug/build/WebKitBuild/Dependencies/Root/lib64/libglib-2.0.so.0 #46 0x00007f5d4a5f0ab9 in g_main_context_dispatch () from /home/slave/webkitgtk/gtk-linux-64-debug/build/WebKitBuild/Dependencies/Root/lib64/libglib-2.0.so.0 #47 0x00007f5d4a5f0ca3 in g_main_context_iterate () from /home/slave/webkitgtk/gtk-linux-64-debug/build/WebKitBuild/Dependencies/Root/lib64/libglib-2.0.so.0 #48 0x00007f5d4a5f10d9 in g_main_loop_run () from /home/slave/webkitgtk/gtk-linux-64-debug/build/WebKitBuild/Dependencies/Root/lib64/libglib-2.0.so.0 #49 0x0000000000401cc0 in test_webkit_web_inspector_destroy_inspected_web_view () at ../../Source/WebKit/gtk/tests/testwebinspector.c:145 #50 0x00007f5d4a619234 in test_case_run () from /home/slave/webkitgtk/gtk-linux-64-debug/build/WebKitBuild/Dependencies/Root/lib64/libglib-2.0.so.0 #51 0x00007f5d4a619513 in g_test_run_suite_internal () from /home/slave/webkitgtk/gtk-linux-64-debug/build/WebKitBuild/Dependencies/Root/lib64/libglib-2.0.so.0 #52 0x00007f5d4a6195d5 in g_test_run_suite_internal () from /home/slave/webkitgtk/gtk-linux-64-debug/build/WebKitBuild/Dependencies/Root/lib64/libglib-2.0.so.0 #53 0x00007f5d4a6195d5 in g_test_run_suite_internal () from /home/slave/webkitgtk/gtk-linux-64-debug/build/WebKitBuild/Dependencies/Root/lib64/libglib-2.0.so.0 #54 0x00007f5d4a619737 in g_test_run_suite () from /home/slave/webkitgtk/gtk-linux-64-debug/build/WebKitBuild/Dependencies/Root/lib64/libglib-2.0.so.0 #55 0x00007f5d4a618992 in g_test_run () from /home/slave/webkitgtk/gtk-linux-64-debug/build/WebKitBuild/Dependencies/Root/lib64/libglib-2.0.so.0 #56 0x0000000000401dea in main (argc=1, argv=0x7fff42e886b8) at ../../Source/WebKit/gtk/tests/testwebinspector.c:167 Just to be clear, this is not a crash, right? From what I see it's test failure due to a problem loading inspector resources, that results in a JavaScript error on the console. (In reply to comment #18) > Just to be clear, this is not a crash, right? From what I see it's test failure due to a problem loading inspector resources, that results in a JavaScript error on the console. Yes. (In reply to comment #18) > Just to be clear, this is not a crash, right? From what I see it's test failure due to a problem loading inspector resources, that results in a JavaScript error on the console. I'm still getting a crash when closing epy with the inspector window opened I created a bug for this issue: https://bugs.webkit.org/show_bug.cgi?id=80235 (In reply to comment #20) > I'm still getting a crash when closing epy with the inspector window opened That's sad. Can you get a trace and open a new bug? |