Summary: | [Qt] webkit crashes with sigsegv at JSC::CopyWorkList at ARM with qt5-final | ||
---|---|---|---|
Product: | WebKit | Reporter: | Ricardo <rsalveti> |
Component: | New Bugs | Assignee: | Nobody <webkit-unassigned> |
Status: | RESOLVED FIXED | ||
Severity: | Normal | CC: | abecsi, allan.jensen, hausmann, jturcotte, kenneth, loki, ossy, rgabor, zherczeg |
Priority: | P1 | ||
Version: | 528+ (Nightly build) | ||
Hardware: | Other | ||
OS: | Linux | ||
Bug Depends on: | |||
Bug Blocks: | 108645, 79668 |
Description
Ricardo
2013-01-30 16:09:42 PST
I did test with an older qtwebkit revision, and got a similar issue (before the js heap work): #0 0x40e7d862 in testAndSet (n=0, this=0x14) at ../WTF/wtf/Bitmap.h:98 mask = 1 index = 0 result = <optimized out> #1 concurrentTestAndSet (n=0, this=0x14) at ../WTF/wtf/Bitmap.h:117 No locals. #2 testAndSetMarked (this=0x0, p=0x1) at heap/MarkedBlock.h:371 No locals. #3 testAndSetMarked (cell=0x1) at heap/Heap.h:324 No locals. #4 internalAppend (this=<optimized out>, cell=0x1) at runtime/Structure.h:559 No locals. #5 internalAppend (value=..., this=<optimized out>) at heap/SlotVisitorInlines.h:82 No locals. #6 append (count=<optimized out>, this=0x48ee08d0, slot=<optimized out>) at heap/SlotVisitorInlines.h:40 value = @0x55f6b010: {u = {asInt64 = -21474836479, asDouble = -nan(0xffffb00000001), asBits = {payload = 1, tag = -5}}} i = <optimized out> #7 appendValues (count=<optimized out>, barriers=<optimized out>, this=0x48ee08d0) at runtime/WriteBarrier.h:237 No locals. So for some reason the value is corrupted, as cell is pointing to 0x1, which then makes the segfault to happen. Guess it'd be ideal to trace and debug when the broken value indeed got inserted at the heap, as all the code seems to be doing here is cleaning the heap up. Just pasting the snippet that was described at the pastebin (since it's now gone) import QtQuick 2.0 import QtWebKit 3.0 import QtWebKit.experimental 1.0 Item { id: webViewItem width: 1024; height: 720 WebView { id: webView experimental.userAgent: "Mozilla/5.0 (iPhone; CPU iPhone OS 5_0 like Mac OS X) AppleWebKit/534.46 (KHTML, like Gecko) Version/5.1 Mobile/9A334 Safari/7534.48.3" url: "http://www.cnn.com" anchors.fill: parent onLoadingChanged: { if (webView.url == "about:blank") return; if (loadRequest.status === WebView.LoadFailedStatus) webView.loadHtml("<html><body><h1>=(</h1><h2>Error: 404! File not found.</h2><h1>=~</h1></body></html>") } } } Tested with QtWebkit 5.0.1 + Ubuntu Raring 13.04 and was also able to reproduce the issue. The crash is only gone when JIT is disabled, which is the current workaround we got for the Ubuntu Touch Developer Preview based images. This may be solved in the upcoming Qt 5.0.2 after merging the fixes from bug #105221 and bug #105339. I am going to assume this has been fixed by the patches to ARM in 5.0.2 and 5.1 alpha. If the crash appears again, feel free to reopen. |