WebKit Bugzilla
New
Browse
Log In
×
Sign in with GitHub
or
Remember my login
Create Account
·
Forgot Password
Forgotten password account recovery
RESOLVED WONTFIX
Bug 154905
WebKit assert in WebCore::VisiblePosition::previous() displaying youtube video
https://bugs.webkit.org/show_bug.cgi?id=154905
Summary
WebKit assert in WebCore::VisiblePosition::previous() displaying youtube video
Rich Coe
Reported
2016-03-01 21:21:07 PST
I've been facing core dumps in the application liferea for a long time (months) that was always in WebKit javascript library, but because debug was not available I did not have more information. WebKit version 2.4.9 Linux x86_64 It reproduces fairly often, so I finally got around to compiling a debug version to get a proper traceback to the issue. This is my first results with debug. When I view video's from youtube embedded in a displayed web page, I get a crash. Sometimes it happens after viewing 3 or 4 videos, sometimes after viewing only one. In this instance, I had just started the application and had finished watching a short video. I restarted the video from the beginning and then clicked on video itself. ASSERTION FAILED: prev != *this ../../Source/WebCore/editing/VisiblePosition.cpp(89) : WebCore::VisiblePosition WebCore::VisiblePosition::previous(WebCore::EditingBoundaryCrossingRule) const #0 0x00007fae13530f47 in WTFCrash() () at ../../Source/WTF/wtf/Assertions.cpp:333 #1 0x00007fae15ece33b in WebCore::VisiblePosition::previous(WebCore::EditingBoundaryCrossingRule) const (this=0x7fff3dd371b0, rule=WebCore::CanCrossEditingBoundary) at ../../Source/WebCore/editing/VisiblePosition.cpp:89 #2 0x00007fae15edb0d4 in WebCore::isStartOfDocument(WebCore::VisiblePosition const&) (p=...) at ../../Source/WebCore/editing/VisibleUnits.cpp:1411 #3 0x00007fae15e846ef in WebCore::FrameSelection::selectFrameElementInParentIfFullySelected() (this=0x336b580) at ../../Source/WebCore/editing/FrameSelection.cpp:1638 #4 0x00007fae15e7dbad in WebCore::FrameSelection::setSelection(WebCore::VisibleSelection const&, unsigned int, WebCore::FrameSelection::CursorAlignOnScroll, WebCore::TextGranularity) (this=0x336b580, newSelection=..., options=6, align=WebCore::FrameSelection::AlignCursorOnScrollIfNeeded, granularity=WebCore::CharacterGranularity) at ../../Source/WebCore/editing/FrameSelection.cpp:322 #5 0x00007fae162d0c46 in WebCore::DOMSelection::addRange(WebCore::Range*) (this=0x49ddfb0, r=0x3d6d170) at ../../Source/WebCore/page/DOMSelection.cpp:395 #6 0x00007fae167c7e68 in WebCore::jsDOMSelectionPrototypeFunctionAddRange(JSC::ExecState*) (exec=0x7fad9c5d6e10) at DerivedSources/WebCore/JSDOMSelection.cpp:476 #7 0x00007fadabfff0e5 in () #8 0x00007fad9c5d6e60 in () #9 0x00007fae13327981 in llint_op_call () at /usr/local/lib64/libjavascriptcoregtk-3.0.so.0 #10 0x00007fadabfff920 in () #11 0x000000000261b4f0 in () Python Exception <type 'exceptions.OverflowError'> long too big to convert: Python Exception <type 'exceptions.OverflowError'> long too big to convert: #12 0xffffffffffffffff in () #13 0xffffffffffffffff in () #14 0x0000000001a19e10 in () #15 0x0000000000000000 in () (gdb) up #1 0x00007fae15ece33b in WebCore::VisiblePosition::previous (this=0x7fff3dd371b0, rule=WebCore::CanCrossEditingBoundary) at ../../Source/WebCore/editing/VisiblePosition.cpp:89 89 ASSERT(prev != *this); (gdb) p prev $1 = {m_deepPosition = {m_anchorNode = {m_ptr = 0x3fb7220}, m_offset = 0, m_anchorType = 0, m_isLegacyEditingPosition = true}, m_affinity = WebCore::DOWNSTREAM} (gdb) print this $2 = (const WebCore::VisiblePosition * const) 0x7fff3dd371b0 (gdb) p &prev $3 = (WebCore::VisiblePosition *) 0x7fff3dd37080 (gdb) p *this $4 = {m_deepPosition = {m_anchorNode = {m_ptr = 0x3fb7220}, m_offset = 0, m_anchorType = 0, m_isLegacyEditingPosition = true}, m_affinity = WebCore::DOWNSTREAM} (gdb) p pos $5 = {m_anchorNode = {m_ptr = 0x2114740}, m_offset = 0, m_anchorType = 0, m_isLegacyEditingPosition = true}
Attachments
Add attachment
proposed patch, testcase, etc.
Rich Coe
Comment 1
2016-03-01 21:22:13 PST
Bug 131018
trips a similar issue, but has a different traceback.
Rich Coe
Comment 2
2016-03-01 21:42:53 PST
I reproduced it again by pressing the right mouse button within the video to bring up the menu.
Rich Coe
Comment 3
2016-03-02 06:38:31 PST
The assert does not seem correct. I've bypassed it and on to trying to reproduce my crash.
Rich Coe
Comment 4
2016-03-04 20:08:30 PST
(gdb) where #0 0x00007fa70a4bec76 in JSC::WriteBarrierBase<JSC::Structure>::operator->() const (this=0x0) at ../../Source/JavaScriptCore/runtime/WriteBarrier.h:123 #1 0x00007fa70a4d7dbe in JSC::JSCell::isString() const (this=0x0) at ../../Source/JavaScriptCore/runtime/JSCellInlines.h:124 #2 0x00007fa70a90da16 in JSC::JSCell::getPrimitiveNumber(JSC::ExecState*, double&, JSC::JSValue&) const (this=0x0, exec=0x7fa688ff8ae8, number=@0x7ffc6b7b1710: 6.9343542557821197e-310, value=...) at ../../Source/JavaScriptCore/runtime/JSCell.cpp:135 #3 0x00007fa70a7a02dd in JSC::JSValue::getPrimitiveNumber(JSC::ExecState*, double&, JSC::JSValue&) (this=0x7ffc6b7b1730, exec=0x7fa688ff8ae8, number=@0x7ffc6b7b1710: 6.9343542557821197e-310, value=...) at ../../Source/JavaScriptCore/runtime/JSCJSValueInlines.h:600 #4 0x00007fa70a79abf9 in JSC::operationCompareLess(JSC::ExecState*, JSC::EncodedJSValue, JSC::EncodedJSValue) (v2=..., v1=..., callFrame=0x7fa688ff8ae8) at ../../Source/JavaScriptCore/runtime/Operations.h:136 #5 0x00007fa70a79abf9 in JSC::operationCompareLess(JSC::ExecState*, JSC::EncodedJSValue, JSC::EncodedJSValue) (exec=0x7fa688ff8ae8, encodedOp1=-281474976710655, encodedOp2=0) at ../../Source/JavaScriptCore/jit/JITOperations.cpp:829 #6 0x00007fa6a42fcb37 in () #7 0x00007fa6a43f1240 in () #8 0x00007fa6f82ca2d0 in () #9 0x00007ffc6b7b2350 in () #10 0x00007ffc6b7b23b0 in () #11 0x0000000000000000 in ()
Rich Coe
Comment 5
2016-03-04 20:10:13 PST
I think this is an issue in the 2.4.9 javascript implementation. It seems to be fixed in a later webkit release, but later releases only support webkit2 api.
Note
You need to
log in
before you can comment on or make changes to this bug.
Top of Page
Format For Printing
XML
Clone This Bug