Bug 55135 - REGRESSION (r79466): http/tests/incremental/slow-utf8-html.pl flaky due to incorrect assertions
Summary: REGRESSION (r79466): http/tests/incremental/slow-utf8-html.pl flaky due to in...
Status: RESOLVED FIXED
Alias: None
Product: WebKit
Classification: Unclassified
Component: Platform (show other bugs)
Version: 528+ (Nightly build)
Hardware: All All
: P2 Normal
Assignee: Darin Adler
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2011-02-24 05:10 PST by Philippe Normand
Modified: 2011-02-24 18:21 PST (History)
2 users (show)

See Also:


Attachments
Patch (1.98 KB, patch)
2011-02-24 08:15 PST, Darin Adler
no flags Details | Formatted Diff | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Philippe Normand 2011-02-24 05:10:55 PST
The test crashes sometimes on 64-Bits Debug:

#0  0x00007fdfb526d91f in WebCore::TextCodecUTF8::decode (this=0x7fdfa6e7b5f0, bytes=0x7fdfa6ee4d00 "\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203"..., length=1, flush=false, stopOnError=false, sawError=@0x7fdfa6eea234) at ../../Source/WebCore/platform/text/TextCodecUTF8.cpp:238
238                    ASSERT(stopOnError);

Thread 1 (Thread 19804):
#0  0x00007fdfb526d91f in WebCore::TextCodecUTF8::decode (this=0x7fdfa6e7b5f0, bytes=0x7fdfa6ee4d00 "\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203"..., length=1, flush=false, stopOnError=false, sawError=@0x7fdfa6eea234) at ../../Source/WebCore/platform/text/TextCodecUTF8.cpp:238
#1  0x00007fdfb511f8ef in WebCore::TextResourceDecoder::decode (this=0x7fdfa6eea1e0, data=0x7fdfa6ee4d00 "\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203"..., len=1) at ../../Source/WebCore/loader/TextResourceDecoder.cpp:658
#2  0x00007fdfb4d9a8b8 in WebCore::DecodedDataDocumentParser::appendBytes (this=0x7fdfa6ee7370, writer=0x7fdfa6ec5180, data=0x7fdfa6ee4d00 "\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203"..., length=1, shouldFlush=false) at ../../Source/WebCore/dom/DecodedDataDocumentParser.cpp:46
#3  0x00007fdfb50cb8f3 in WebCore::DocumentWriter::addData (this=0x7fdfa6ec5180, str=0x7fdfa6ee4d00 "\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203"..., len=1, flush=false) at ../../Source/WebCore/loader/DocumentWriter.cpp:201
#4  0x00007fdfb50c0cbf in WebCore::DocumentLoader::commitData (this=0x7fdfa6ec5080, bytes=0x7fdfa6ee4d00 "\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203"..., length=1) at ../../Source/WebCore/loader/DocumentLoader.cpp:316
#5  0x00007fdfb4abfc66 in WebKit::FrameLoaderClient::committedLoad (this=0xdfabf0, loader=0x7fdfa6ec5080, data=0x7fdfa6ee4d00 "\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203"..., length=1) at ../../Source/WebKit/gtk/WebCoreSupport/FrameLoaderClientGtk.cpp:318
#6  0x00007fdfb50c0ba7 in WebCore::DocumentLoader::commitLoad (this=0x7fdfa6ec5080, data=0x7fdfa6ee4d00 "\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203"..., length=1) at ../../Source/WebCore/loader/DocumentLoader.cpp:302
#7  0x00007fdfb50c0d7e in WebCore::DocumentLoader::receivedData (this=0x7fdfa6ec5080, data=0x7fdfa6ee4d00 "\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203"..., length=1) at ../../Source/WebCore/loader/DocumentLoader.cpp:328
#8  0x00007fdfb510715b in WebCore::MainResourceLoader::addData (this=0x7fdfa6ed9320, data=0x7fdfa6ee4d00 "\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203"..., length=1, allAtOnce=false) at ../../Source/WebCore/loader/MainResourceLoader.cpp:158
#9  0x00007fdfb5113d7f in WebCore::ResourceLoader::didReceiveData (this=0x7fdfa6ed9320, data=0x7fdfa6ee4d00 "\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203"..., length=1, lengthReceived=12225, allAtOnce=false) at ../../Source/WebCore/loader/ResourceLoader.cpp:279
#10 0x00007fdfb5108364 in WebCore::MainResourceLoader::didReceiveData (this=0x7fdfa6ed9320, data=0x7fdfa6ee4d00 "\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203"..., length=1, lengthReceived=12225, allAtOnce=false) at ../../Source/WebCore/loader/MainResourceLoader.cpp:443
#11 0x00007fdfb511469a in WebCore::ResourceLoader::didReceiveData (this=0x7fdfa6ed9320, data=0x7fdfa6ee4d00 "\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203\342\200\203"..., length=1, lengthReceived=12225) at ../../Source/WebCore/loader/ResourceLoader.cpp:430
#12 0x00007fdfb4a86765 in WebCore::readCallback (source=0xd746e0, asyncResult=0x16584c0, data=0x0) at ../../Source/WebCore/platform/network/soup/ResourceHandleSoup.cpp:792
#13 0x00007fdfb27e6f65 in async_ready_callback_wrapper (source_object=0xd746e0, res=0x16584c0, user_data=0x0) at /tmp/buildd/glib2.0-2.27.91/./gio/ginputstream.c:470
#14 0x00007fdfb2aed05d in read_async_done (stream=0xd746e0) at soup-http-input-stream.c:723
#15 0x00007fdfb254e33e in g_closure_invoke (closure=0x7fdfa6dcb0e0, return_value=0x0, n_param_values=2, param_values=0x7fdfa64d9cf0, invocation_hint=0x7fff0db71f90) at /tmp/buildd/glib2.0-2.27.91/./gobject/gclosure.c:767
#16 0x00007fdfb25673b9 in signal_emit_unlocked_R (node=0xddd050, 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
#17 0x00007fdfb2568b36 in g_signal_emit_valist (instance=0x7fdfa681f950, signal_id=<value optimized out>, detail=0, var_args=0x7fff0db72180) at /tmp/buildd/glib2.0-2.27.91/./gobject/gsignal.c:2983
#18 0x00007fdfb2569363 in g_signal_emit (instance=0x7fff0db70f30, signal_id=0, detail=2964340224) at /tmp/buildd/glib2.0-2.27.91/./gobject/gsignal.c:3040
#19 0x00007fdfb2af3b63 in read_body_chunk (msg=<value optimized out>) at soup-message-io.c:487
#20 0x00007fdfb2af4268 in io_read (sock=0x7fdfa685b170, msg=0x7fdfa681f950) at soup-message-io.c:1000
#21 0x00007fdfb2af4cb4 in io_unpause_internal (msg=0x7fdfa681f950) at soup-message-io.c:1207
#22 0x00007fdfb1c8d362 in g_main_dispatch (context=0xd731e0) at /tmp/buildd/glib2.0-2.27.91/./glib/gmain.c:2440
#23 g_main_context_dispatch (context=0xd731e0) at /tmp/buildd/glib2.0-2.27.91/./glib/gmain.c:3013
#24 0x00007fdfb1c91a28 in g_main_context_iterate (context=0xd731e0, block=<value optimized out>, dispatch=<value optimized out>, self=<value optimized out>) at /tmp/buildd/glib2.0-2.27.91/./glib/gmain.c:3091
#25 0x00007fdfb1c91f35 in g_main_loop_run (loop=0x7fdfa6e65c00) at /tmp/buildd/glib2.0-2.27.91/./glib/gmain.c:3299
#26 0x00007fdfb3bc6657 in gtk_main () from /usr/lib/libgtk-x11-2.0.so.0
#27 0x000000000041e056 in runTest (testPathOrURL=...) at ../../Tools/DumpRenderTree/gtk/DumpRenderTree.cpp:677
#28 0x000000000041d6e8 in runTestingServerLoop () at ../../Tools/DumpRenderTree/gtk/DumpRenderTree.cpp:487
#29 0x000000000041f7cd in main (argc=2, argv=0x7fff0db74fc8) at ../../Tools/DumpRenderTree/gtk/DumpRenderTree.cpp:1141
Comment 1 Darin Adler 2011-02-24 08:11:13 PST
The fix is to change the assertions from this:

    ASSERT(stopOnError);
    ASSERT(sawError);

To this:

    ASSERT(source == end || stopOnError);
    ASSERT(source == end || sawError);

Anyone is welcome to land this. The hard part, I suppose, is making a good test case.
Comment 2 Darin Adler 2011-02-24 08:13:19 PST
This is not specific to GTK.
Comment 3 Darin Adler 2011-02-24 08:15:44 PST
Created attachment 83658 [details]
Patch
Comment 4 Darin Adler 2011-02-24 08:16:33 PST
Turns out it’s hard to keep the assertions without making otherwise-unneeded code changes, so I decided to just take them out.
Comment 5 Philippe Normand 2011-02-24 08:18:19 PST
Thanks Darin for looking into this!
Comment 6 Darin Adler 2011-02-24 18:21:02 PST
Comment on attachment 83658 [details]
Patch

Clearing flags on attachment: 83658

Committed r79655: <http://trac.webkit.org/changeset/79655>
Comment 7 Darin Adler 2011-02-24 18:21:09 PST
All reviewed patches have been landed.  Closing bug.