Bug 137958

Summary: [EFL] ASSERTION FAILED: !object || !isRuby(object->parent()) || is<RenderRubyRun>(*object) || (object->isInline() && (object->isBeforeContent() || object->isAfterContent())) || (object->isAnonymous() ... in WebCore::isAnonymousRubyInlineBlock
Product: WebKit Reporter: Renata Hodovan <rhodovan.u-szeged>
Component: Layout and RenderingAssignee: Mihnea Ovidenie <mihnea>
Status: RESOLVED WONTFIX    
Severity: Normal CC: cdumez, commit-queue, esprehn+autocc, glenn, hyatt, kling, kondapallykalyan, mcatanzaro, mihnea
Priority: P2    
Version: 528+ (Nightly build)   
Hardware: Unspecified   
OS: Unspecified   
Bug Depends on:    
Bug Blocks: 116980    
Attachments:
Description Flags
Test case
none
Patch
none
Patch for landing
none
Repo for Mac none

Description Renata Hodovan 2014-10-22 07:22:50 PDT
Created attachment 240272 [details]
Test case

The failing test:

<!DOCTYPE html>
<style>
*   {
    display:table-cell;
    float:right;
    -webkit-columns:2;
}
</style>
<ruby>
    <script>a</script>a
</ruby>


Backtrace:

ASSERTION FAILED: !object || !object->parent()->isRuby() || is<RenderRubyRun>(*object) || (object->isInline() && (object->isBeforeContent() || object->isAfterContent())) || (object->isAnonymous() && is<RenderBlock>(*object) && object->style().display() == INLINE_BLOCK)
../../Source/WebCore/rendering/RenderRuby.cpp(51) : bool WebCore::isAnonymousRubyInlineBlock(const WebCore::RenderObject*)

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x7fff98c1f700 (LWP 18272)]
0x00007fffedae91b5 in WTFCrash () at ../../Source/WTF/wtf/Assertions.cpp:321
321     *(int *)(uintptr_t)0xbbadbeef = 0;
#0  0x00007fffedae91b5 in WTFCrash () at ../../Source/WTF/wtf/Assertions.cpp:321
#1  0x00007ffff3a9f7f8 in WebCore::isAnonymousRubyInlineBlock (object=0x826910) at ../../Source/WebCore/rendering/RenderRuby.cpp:47
#2  0x00007ffff3a9f86a in WebCore::isRubyBeforeBlock (object=0x826910) at ../../Source/WebCore/rendering/RenderRuby.cpp:61
#3  0x00007ffff3a9f972 in WebCore::rubyBeforeBlock (ruby=0x8e4b30) at ../../Source/WebCore/rendering/RenderRuby.cpp:78
#4  0x00007ffff3a9fb14 in WebCore::lastRubyRun (ruby=0x8e4b30) at ../../Source/WebCore/rendering/RenderRuby.cpp:99
#5  0x00007ffff3aa058c in WebCore::RenderRubyAsBlock::addChild (this=0x8e4b30, child=0x9eca70, beforeChild=0x0) at ../../Source/WebCore/rendering/RenderRuby.cpp:286
#6  0x00007ffff3bfcec4 in WebCore::Style::RenderTreePosition::insert (this=0x7fffffffce70, renderer=...) at ../../Source/WebCore/style/StyleResolveTree.cpp:224
#7  0x00007ffff3bfddaf in WebCore::Style::createTextRendererIfNeeded (textNode=..., renderTreePosition=...) at ../../Source/WebCore/style/StyleResolveTree.cpp:441
#8  0x00007ffff3bfde0e in WebCore::Style::attachTextRenderer (textNode=..., renderTreePosition=...) at ../../Source/WebCore/style/StyleResolveTree.cpp:446
#9  0x00007ffff3bff6c9 in WebCore::Style::resolveTextNode (text=..., renderTreePosition=...) at ../../Source/WebCore/style/StyleResolveTree.cpp:806
#10 0x00007ffff3bffc6f in WebCore::Style::resolveTree (current=..., inheritedStyle=..., renderTreePosition=..., change=WebCore::Style::NoChange) at ../../Source/WebCore/style/StyleResolveTree.cpp:943
#11 0x00007ffff3bffd67 in WebCore::Style::resolveTree (current=..., inheritedStyle=..., renderTreePosition=..., change=WebCore::Style::NoChange) at ../../Source/WebCore/style/StyleResolveTree.cpp:958
#12 0x00007ffff3bffd67 in WebCore::Style::resolveTree (current=..., inheritedStyle=..., renderTreePosition=..., change=WebCore::Style::NoChange) at ../../Source/WebCore/style/StyleResolveTree.cpp:958
#13 0x00007ffff3c00062 in WebCore::Style::resolveTree (document=..., change=WebCore::Style::NoChange) at ../../Source/WebCore/style/StyleResolveTree.cpp:1000
#14 0x00007ffff302a08d in WebCore::Document::recalcStyle (this=0x9499b0, change=WebCore::Style::NoChange) at ../../Source/WebCore/dom/Document.cpp:1798
#15 0x00007ffff302a398 in WebCore::Document::updateStyleIfNeeded (this=0x9499b0) at ../../Source/WebCore/dom/Document.cpp:1843
#16 0x00007ffff30354b9 in WebCore::Document::finishedParsing (this=0x9499b0) at ../../Source/WebCore/dom/Document.cpp:4611
#17 0x00007ffff338d2af in WebCore::HTMLConstructionSite::finishedParsing (this=0x88b628) at ../../Source/WebCore/html/parser/HTMLConstructionSite.cpp:395
#18 0x00007ffff33cb333 in WebCore::HTMLTreeBuilder::finished (this=0x88b610) at ../../Source/WebCore/html/parser/HTMLTreeBuilder.cpp:2998
#19 0x00007ffff3395f12 in WebCore::HTMLDocumentParser::end (this=0x88b220) at ../../Source/WebCore/html/parser/HTMLDocumentParser.cpp:439
#20 0x00007ffff3395ffd in WebCore::HTMLDocumentParser::attemptToRunDeferredScriptsAndEnd (this=0x88b220) at ../../Source/WebCore/html/parser/HTMLDocumentParser.cpp:450
#21 0x00007ffff3394aab in WebCore::HTMLDocumentParser::prepareToStopParsing (this=0x88b220) at ../../Source/WebCore/html/parser/HTMLDocumentParser.cpp:165
#22 0x00007ffff3396040 in WebCore::HTMLDocumentParser::attemptToEnd (this=0x88b220) at ../../Source/WebCore/html/parser/HTMLDocumentParser.cpp:462
#23 0x00007ffff33960f7 in WebCore::HTMLDocumentParser::finish (this=0x88b220) at ../../Source/WebCore/html/parser/HTMLDocumentParser.cpp:490
#24 0x00007ffff3503211 in WebCore::DocumentWriter::end (this=0x8508d0) at ../../Source/WebCore/loader/DocumentWriter.cpp:246
#25 0x00007ffff34ee75b in WebCore::DocumentLoader::finishedLoading (this=0x850830, finishTime=0) at ../../Source/WebCore/loader/DocumentLoader.cpp:441
#26 0x00007ffff34ee4c4 in WebCore::DocumentLoader::notifyFinished (this=0x850830, resource=0x84c4d0) at ../../Source/WebCore/loader/DocumentLoader.cpp:375
#27 0x00007ffff35a0a5a in WebCore::CachedResource::checkNotify (this=0x84c4d0) at ../../Source/WebCore/loader/cache/CachedResource.cpp:347
#28 0x00007ffff35a0b64 in WebCore::CachedResource::finishLoading (this=0x84c4d0) at ../../Source/WebCore/loader/cache/CachedResource.cpp:363
#29 0x00007ffff359d466 in WebCore::CachedRawResource::finishLoading (this=0x84c4d0, data=0x7915b0) at ../../Source/WebCore/loader/cache/CachedRawResource.cpp:101
#30 0x00007ffff35518fa in WebCore::SubresourceLoader::didFinishLoading (this=0x84ca40, finishTime=0) at ../../Source/WebCore/loader/SubresourceLoader.cpp:309
#31 0x00007ffff354d57d in WebCore::ResourceLoader::didFinishLoading (this=0x84ca40, finishTime=0) at ../../Source/WebCore/loader/ResourceLoader.cpp:512
#32 0x00007ffff3ef1333 in WebCore::readCallback (asyncResult=0x88a9c0, data=0x888a10) at ../../Source/WebCore/platform/network/soup/ResourceHandleSoup.cpp:1306
#33 0x00007fffeb86c7d6 in async_ready_callback_wrapper (source_object=0x9c5ed0, res=0x88a9c0, user_data=user_data@entry=0x888a10) at ginputstream.c:523
#34 0x00007fffeb8920d5 in g_task_return_now (task=0x88a9c0) at gtask.c:1077
#35 0x00007fffeb8920f9 in complete_in_idle_cb (task=0x88a9c0) at gtask.c:1086
#36 0x00007fffeaad1a2d in g_main_dispatch (context=0x6777f0) at gmain.c:3064
#37 g_main_context_dispatch (context=context@entry=0x6777f0) at gmain.c:3663
#38 0x00007fffeaad1d98 in g_main_context_iterate (context=0x6777f0, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at gmain.c:3734
#39 0x00007fffeaad205a in g_main_loop_run (loop=0xb00d40) at gmain.c:3928
#40 0x00007ffff457c386 in WTF::RunLoop::run () at ../../Source/WTF/wtf/gtk/RunLoopGtk.cpp:59
#41 0x00007ffff2ad6a46 in WebKit::ChildProcessMain<WebKit::WebProcess, WebKit::WebProcessMain> (argc=2, argv=0x7fffffffd8b8) at ../../Source/WebKit2/Shared/unix/ChildProcessMain.h:61
#42 0x00007ffff2ad68ab in WebKit::WebProcessMainUnix (argc=2, argv=0x7fffffffd8b8) at ../../Source/WebKit2/WebProcess/gtk/WebProcessMainGtk.cpp:73
#43 0x0000000000400871 in main (argc=2, argv=0x7fffffffd8b8) at ../../Source/WebKit2/WebProcess/EntryPoint/unix/WebProcessMain.cpp:44
Comment 1 Mihnea Ovidenie 2014-10-31 18:48:27 PDT
Created attachment 240777 [details]
Patch
Comment 2 Chris Dumez 2014-11-04 09:44:25 PST
Comment on attachment 240777 [details]
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=240777&action=review

> LayoutTests/fast/multicol/newmulticol/ruby-from-multicol-to-auto.html:16
> +		<p>Test that a ruby element with multicol style is correctly laid out when it looses the multicol style.</p>

"loses"

> Source/WebCore/rendering/RenderRuby.cpp:74
>  

#ifndef ASSERT_DISABLED ?

> Source/WebCore/rendering/RenderRuby.cpp:75
> +static inline bool isRubyChildForNormalRemove(const RenderObject& object)

*ForNormalRemoval ?
Comment 3 Mihnea Ovidenie 2014-11-10 04:14:38 PST
Created attachment 241284 [details]
Patch for landing
Comment 4 WebKit Commit Bot 2014-11-10 06:59:00 PST
Comment on attachment 241284 [details]
Patch for landing

Clearing flags on attachment: 241284

Committed r175807: <http://trac.webkit.org/changeset/175807>
Comment 5 WebKit Commit Bot 2014-11-10 06:59:05 PST
All reviewed patches have been landed.  Closing bug.
Comment 6 Renata Hodovan 2014-12-08 06:48:46 PST
@Mihnea: could you take a look at this bug please, since I can still/again reproduce the assertion failure with the original test case on r176943.
Comment 7 Mihnea Ovidenie 2014-12-09 01:54:28 PST
(In reply to comment #6)
> @Mihnea: could you take a look at this bug please, since I can still/again
> reproduce the assertion failure with the original test case on r176943.

Are you sure you are still repro with the http://trac.webkit.org/changeset/176943? I am confused.
Comment 8 Renata Hodovan 2014-12-09 04:50:30 PST
(In reply to comment #7)
> (In reply to comment #6)
> > @Mihnea: could you take a look at this bug please, since I can still/again
> > reproduce the assertion failure with the original test case on r176943.
> 
> Are you sure you are still repro with the
> http://trac.webkit.org/changeset/176943? I am confused.

Yes. Today I updated my repo to r177016 and made a debug GTK build to verify it again and the assertion failure seems still valid to me.
Comment 9 Renata Hodovan 2016-03-11 08:37:29 PST
This is not valid on MAC but it's on EFL.
Comment 10 Renata Hodovan 2016-10-27 14:49:14 PDT
Created attachment 293063 [details]
Repo for Mac
Comment 11 Michael Catanzaro 2017-03-11 10:35:17 PST
Closing this bug because the EFL port has been removed from trunk.

If you feel this bug applies to a different upstream WebKit port and was closed in error, please either update the title and reopen the bug, or leave a comment to request this.