Summary: | Web Inspector: Tests crash on Qt bots revealed by r66720 | ||||||
---|---|---|---|---|---|---|---|
Product: | WebKit | Reporter: | Csaba Osztrogonác <ossy> | ||||
Component: | Web Inspector (Deprecated) | Assignee: | Nobody <webkit-unassigned> | ||||
Status: | RESOLVED FIXED | ||||||
Severity: | Normal | CC: | bweinstein, joepeck, keishi, loislo, pfeldman, pmuellr, rik, timothy, tonikitoo, yurys | ||||
Priority: | P2 | ||||||
Version: | 528+ (Nightly build) | ||||||
Hardware: | All | ||||||
OS: | All | ||||||
Bug Depends on: | |||||||
Bug Blocks: | 44230 | ||||||
Attachments: |
|
Description
Csaba Osztrogonác
2010-09-06 04:13:50 PDT
Additionally I tried to rollout http://trac.webkit.org/changeset/66720 locally, and after that I didn't get any crashes. Guys, could we fix it quickly? Or should we rollout until fix make sheriffbot not to SPAM innocent peoples. (In reply to comment #1) > Additionally I tried to rollout http://trac.webkit.org/changeset/66720 locally, and after that I didn't get any crashes. > > Guys, could we fix it quickly? Or should we rollout > until fix make sheriffbot not to SPAM innocent peoples. Let me look into it. It didn't crash locally. It was 32 bit virtual machine though. (In reply to comment #2) > Let me look into it. It didn't crash locally. It was 32 bit virtual machine though. Qt Linux Release bot is a 32 bit machine too. Unfortunately it isn't trivial to reproduce on it, because sometimes works, sometimes not. See http://build.webkit.org/waterfall?show=Qt%20Linux%20Release That's why sheriffbot make some SPAM. (In reply to comment #3) > (In reply to comment #2) > > Let me look into it. It didn't crash locally. It was 32 bit virtual machine though. > > Qt Linux Release bot is a 32 bit machine too. Unfortunately > it isn't trivial to reproduce on it, because sometimes works, > sometimes not. See http://build.webkit.org/waterfall?show=Qt%20Linux%20Release > > That's why sheriffbot make some SPAM. Ok, it seems that destructor ~InspectorFrontendClientQt is called without preceding call to InspectorFrontendClientQt::destroyInspectorView. I'm going to commit a patch that should prove it. It also affects the QtTestBrowser (QtWebkit's launcher) (In reply to comment #4) > Ok, it seems that destructor ~InspectorFrontendClientQt is called without preceding call to InspectorFrontendClientQt::destroyInspectorView. I'm going to commit a patch that should prove it. Landed in http://trac.webkit.org/changeset/66824 , but unfortunately still crash. I can reproduced it on 32 bit too: #0 0xf676a9c8 in WebCore::InspectorFrontendClientQt::inspectorClientDestroyed (this=0xffffffff) at ../../../WebKit/qt/WebCoreSupport/InspectorClientQt.cpp:351 351 m_inspectorClient = 0; (gdb) bt #0 0xf676a9c8 in WebCore::InspectorFrontendClientQt::inspectorClientDestroyed (this=0xffffffff) at ../../../WebKit/qt/WebCoreSupport/InspectorClientQt.cpp:351 #1 0xf676aa06 in WebCore::InspectorClientQt::inspectorDestroyed (this=0x815f018) at ../../../WebKit/qt/WebCoreSupport/InspectorClientQt.cpp:104 #2 0xf631b5a7 in WebCore::InspectorController::inspectedPageDestroyed (this=0x81691c8) at ../../../WebCore/inspector/InspectorController.cpp:212 #3 0xf648afd5 in ~Page (this=0x8168ad0) at ../../../WebCore/page/Page.cpp:211 #4 0xf6794c3a in ~QWebPagePrivate (this=0x8168df0) at ../../../WebKit/qt/Api/qwebpage.cpp:319 #5 0xf6795152 in ~QWebPage (this=0xf27017e0) at ../../../WebKit/qt/Api/qwebpage.cpp:1891 #6 0x0806948c in ~WebPage (this=0xf27017e0) at /home/oszi/WebKit/WebKitTools/DumpRenderTree/qt/DumpRenderTreeQt.cpp:168 #7 0xf679759e in QWebViewPrivate::detachCurrentPage (this=0xf2700538) at ../../../WebKit/qt/Api/qwebview.cpp:372 #8 0xf67982d7 in ~QWebViewPrivate (this=0xf2700538) at ../../../WebKit/qt/Api/qwebview.cpp:60 #9 0xf67983de in ~QWebView (this=0xf27005c0) at ../../../WebKit/qt/Api/qwebview.cpp:329 #10 0x080664b3 in ~DumpRenderTree (this=0xffffc614) at /home/oszi/WebKit/WebKitTools/DumpRenderTree/qt/DumpRenderTreeQt.cpp:505 #11 0x0807a8b8 in main (argc=2, argv=0xffffc744) at /home/oszi/WebKit/WebKitTools/DumpRenderTree/qt/main.cpp:171 It seems m_frontendClient is invalid for some reason. (this=0xffffffff) void InspectorClientQt::inspectorDestroyed() { if (m_frontendClient) m_frontendClient->inspectorClientDestroyed(); ---> crash!!! (InspectorClientQt.cpp:104) delete this; } Created attachment 66652 [details]
proposed fix
I tested locally, it fixed all crashes
Comment on attachment 66652 [details]
proposed fix
r=me
Comment on attachment 66652 [details] proposed fix Clearing flags on attachment: 66652 Committed r66835: <http://trac.webkit.org/changeset/66835> All reviewed patches have been landed. Closing bug. (In reply to comment #11) > All reviewed patches have been landed. Closing bug. Thanks for fixing this! The idea of missing initializer just came to my mind when I was driving home. I wonder why there is no such warning in g++. |