<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>169132</bug_id>
          
          <creation_ts>2017-03-03 07:15:02 -0800</creation_ts>
          <short_desc>[GTK] WebProcess from 2.15.91 crash in WebCore::GIFImageDecoder::haveDecodedRow()</short_desc>
          <delta_ts>2017-03-06 10:30:10 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKitGTK</component>
          <version>Other</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>DUPLICATE</resolution>
          <dup_id>169199</dup_id>
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=167304</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Adrian Perez">aperez</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>agomez</cc>
    
    <cc>bugs-noreply</cc>
    
    <cc>mcatanzaro</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1283148</commentid>
    <comment_count>0</comment_count>
    <who name="Adrian Perez">aperez</who>
    <bug_when>2017-03-03 07:15:02 -0800</bug_when>
    <thetext>This could be related to bug #167304 and/or bug #166838, but the
backtrace is a bit different.

The URL which triggered the crash was:
 
  http://www.anishathalye.com/2015/02/07/an-asynchronous-shell-prompt/

It does not happen all the time, only occasionally. Trying to load the
following animated GIF image directly in a new tab sometimes does not
complete loading (the missing image icon appears instead; dunno id this
is related, but mentioning it in case it helps):

  http://www.anishathalye.com/media/2015/02/07/demo.gif

Probably not relevant: this is using 2x as scale-factor (HiDPI),
running with Epiphany from “master”.

Complete backtrace follows.

---

ImageDecoder[14220]: segfault at 54 ip 00007f607fcfdb51 sp 00007f5fceffe720 error 4 in libwebkit2gtk-4.0.so.37.19.1[7f607e52f000+2718000]

Process 14172 (WebKitWebProces) of user 1000 dumped core.

Stack trace of thread 14220:
#0  0x00007f607fcfdb51 WebCore::GIFImageDecoder::haveDecodedRow(unsigned int, WTF::Vector&lt;unsigned char, 0ul, WTF::CrashOnOverflow, 16ul&gt; const&amp;, unsigned long, unsigned long, unsigned int, bool) (libwebkit2gtk-4.0.so.37)
#1  0x00007f607fcfe2c3 GIFLZWContext::outputRow() (libwebkit2gtk-4.0.so.37)
#2  0x00007f607fcfe80a GIFLZWContext::doLZW(unsigned char const*, unsigned long) (libwebkit2gtk-4.0.so.37)
#3  0x00007f607fcff1bf GIFFrameContext::decode(unsigned char const*, unsigned long, WebCore::GIFImageDecoder*, bool*) (libwebkit2gtk-4.0.so.37)
#4  0x00007f607fd00036 GIFImageReader::decode(WebCore::GIFImageDecoder::GIFQuery, unsigned int) (libwebkit2gtk-4.0.so.37)
#5  0x00007f607fcfd1be WebCore::GIFImageDecoder::decode(unsigned int, WebCore::GIFImageDecoder::GIFQuery) (libwebkit2gtk-4.0.so.37)
#6  0x00007f607fcfe1f3 WebCore::GIFImageDecoder::frameBufferAtIndex(unsigned long) (libwebkit2gtk-4.0.so.37)
#7  0x00007f607fcf95ae WebCore::ImageDecoder::createFrameImageAtIndex(unsigned long, WebCore::SubsamplingLevel, WebCore::DecodingMode) (libwebkit2gtk-4.0.so.37)
#8  0x00007f607f7bae0f WTF::Function&lt;void ()&gt;::CallableWrapper&lt;WebCore::ImageFrameCache::startAsyncDecodingQueue()::{lambda()#1}&gt;::call() (libwebkit2gtk-4.0.so.37)
#9  0x00007f607c525505 WTF::RunLoop::performWork() (libjavascriptcoregtk-4.0.so.18)
#10 0x00007f607c5243b9 WTF::RunLoop::RunLoop()::{lambda(void*)#1}::_FUN(void*) (libjavascriptcoregtk-4.0.so.18)
#11 0x00007f607601a45a g_main_context_dispatch (libglib-2.0.so.0)
#12 0x00007f607601a810 n/a (libglib-2.0.so.0)
#13 0x00007f607601ab32 g_main_loop_run (libglib-2.0.so.0)
#14 0x00007f607c524c50 WTF::RunLoop::run() (libjavascriptcoregtk-4.0.so.18)
#15 0x00007f607c523cb3 std::_Function_handler&lt;void (), WTF::WorkQueue::platformInitialize(char const*, WTF::WorkQueue::Type, WTF::WorkQueue::QOS)::{lambda()#1}&gt;::_M_invoke(std::_Any_data const&amp;) (libjavascriptcoregtk-4

#16 0x00007f607c4f0075 WTF::threadEntryPoint(void*) (libjavascriptcoregtk-4.0.so.18)
#17 0x00007f607c52212a WTF::wtfThreadEntryPoint(void*) (libjavascriptcoregtk-4.0.so.18)
#18 0x00007f607901b454 start_thread (libpthread.so.0)
#19 0x00007f60728dc7df __clone (libc.so.6)

Stack trace of thread 14175:
#0  0x00007f607902479d __nanosleep (libpthread.so.0)
#1  0x00007f607c52a254 bmalloc::Heap::scavenge(std::unique_lock&lt;bmalloc::StaticMutex&gt;&amp;, std::chrono::duration&lt;long, std::ratio&lt;1l, 1000l&gt; &gt;) (libjavascriptcoregtk-4.0.so.18)
#2  0x00007f607c52a39f bmalloc::Heap::concurrentScavenge() (libjavascriptcoregtk-4.0.so.18)
#3  0x00007f607c52b61e bmalloc::AsyncTask&lt;bmalloc::Heap, void (bmalloc::Heap::*)()&gt;::threadRunLoop() (libjavascriptcoregtk-4.0.so.18)
#4  0x00007f607c52b7f9 bmalloc::AsyncTask&lt;bmalloc::Heap, void (bmalloc::Heap::*)()&gt;::threadEntryPoint(bmalloc::AsyncTask&lt;bmalloc::Heap, void (bmalloc::Heap::*)()&gt;*) (libjavascriptcoregtk-4.0.so.18)
#5  0x00007f607316858f execute_native_thread_routine (libstdc++.so.6)
#6  0x00007f607901b454 start_thread (libpthread.so.0)
#7  0x00007f60728dc7df __clone (libc.so.6)

Stack trace of thread 14178:
#0  0x00007f60728d348d poll (libc.so.6)
#1  0x00007f607601a7a6 n/a (libglib-2.0.so.0)
#2  0x00007f607601ab32 g_main_loop_run (libglib-2.0.so.0)
#3  0x00007f607c524c50 WTF::RunLoop::run() (libjavascriptcoregtk-4.0.so.18)
#4  0x00007f607c523cb3 std::_Function_handler&lt;void (), WTF::WorkQueue::platformInitialize(char const*, WTF::WorkQueue::Type, WTF::WorkQueue::QOS)::{lambda()#1}&gt;::_M_invoke(std::_Any_data const&amp;) (libjavascriptcoregtk-4

#5  0x00007f607c4f0075 WTF::threadEntryPoint(void*) (libjavascriptcoregtk-4.0.so.18)
#6  0x00007f607c52212a WTF::wtfThreadEntryPoint(void*) (libjavascriptcoregtk-4.0.so.18)
#7  0x00007f607901b454 start_thread (libpthread.so.0)
#8  0x00007f60728dc7df __clone (libc.so.6)


Stack trace of thread 14186:
#0  0x00007f60728d348d poll (libc.so.6)
#1  0x00007f607601a7a6 n/a (libglib-2.0.so.0)
#2  0x00007f607601a8bc g_main_context_iteration (libglib-2.0.so.0)
#3  0x00007f600a9fa4bd n/a (libdconfsettings.so)
#4  0x00007f6076042175 n/a (libglib-2.0.so.0)
#5  0x00007f607901b454 start_thread (libpthread.so.0)
#6  0x00007f60728dc7df __clone (libc.so.6)

Stack trace of thread 14189:
#0  0x00007f60728d7f19 syscall (libc.so.6)
#1  0x00007f60760600ca g_cond_wait_until (libglib-2.0.so.0)
#2  0x00007f6075feee89 n/a (libglib-2.0.so.0)
#3  0x00007f6075fef4ac g_async_queue_timeout_pop (libglib-2.0.so.0)
#4  0x00007f6076042c3d n/a (libglib-2.0.so.0)
#5  0x00007f6076042175 n/a (libglib-2.0.so.0)
#6  0x00007f607901b454 start_thread (libpthread.so.0)
#7  0x00007f60728dc7df __clone (libc.so.6)

Stack trace of thread 14176:
#0  0x00007f60728d348d poll (libc.so.6)
#1  0x00007f607601a7a6 n/a (libglib-2.0.so.0)
#2  0x00007f607601a8bc g_main_context_iteration (libglib-2.0.so.0)
#3  0x00007f607601a901 n/a (libglib-2.0.so.0)
#4  0x00007f6076042175 n/a (libglib-2.0.so.0)
#5  0x00007f607901b454 start_thread (libpthread.so.0)
#6  0x00007f60728dc7df __clone (libc.so.6)

Stack trace of thread 14177:
#0  0x00007f60728d348d poll (libc.so.6)
#1  0x00007f607601a7a6 n/a (libglib-2.0.so.0)
#2  0x00007f607601ab32 g_main_loop_run (libglib-2.0.so.0)
#3  0x00007f6076804446 n/a (libgio-2.0.so.0)
#4  0x00007f6076042175 n/a (libglib-2.0.so.0)
#5  0x00007f607901b454 start_thread (libpthread.so.0)
#6  0x00007f60728dc7df __clone (libc.so.6)

Stack trace of thread 14185:
#0  0x00007f60728d348d poll (libc.so.6)
#1  0x00007f607601a7a6 n/a (libglib-2.0.so.0)
#2  0x00007f607601ab32 g_main_loop_run (libglib-2.0.so.0)
#3  0x00007f607c524c50 WTF::RunLoop::run() (libjavascriptcoregtk-4.0.so.18)
#4  0x00007f607c523cb3 std::_Function_handler&lt;void (), WTF::WorkQueue::platformInitialize(char const*, WTF::WorkQueue::Type, WTF::WorkQueue::QOS)::{lambda()#1}&gt;::_M_invoke(std::_Any_data const&amp;) (libjavascriptcoregtk-4.0.so.18)
#5  0x00007f607c4f0075 WTF::threadEntryPoint(void*) (libjavascriptcoregtk-4.0.so.18)
#6  0x00007f607c52212a WTF::wtfThreadEntryPoint(void*) (libjavascriptcoregtk-4.0.so.18)
#7  0x00007f607901b454 start_thread (libpthread.so.0)
#8  0x00007f60728dc7df __clone (libc.so.6)

Stack trace of thread 14215:
#0  0x00007f60728d348d poll (libc.so.6)
#1  0x00007f607601a7a6 n/a (libglib-2.0.so.0)
#2  0x00007f607601ab32 g_main_loop_run (libglib-2.0.so.0)
#3  0x00007f607c524c50 WTF::RunLoop::run() (libjavascriptcoregtk-4.0.so.18)
#4  0x00007f607c523cb3 std::_Function_handler&lt;void (), WTF::WorkQueue::platformInitialize(char const*, WTF::WorkQueue::Type, WTF::WorkQueue::QOS)::{lambda()#1}&gt;::_M_invoke(std::_Any_data const&amp;) (libjavascriptcoregtk-4.0.so.18)
#5  0x00007f607c4f0075 WTF::threadEntryPoint(void*) (libjavascriptcoregtk-4.0.so.18)
#6  0x00007f607c52212a WTF::wtfThreadEntryPoint(void*) (libjavascriptcoregtk-4.0.so.18)
#7  0x00007f607901b454 start_thread (libpthread.so.0)
#8  0x00007f60728dc7df __clone (libc.so.6)

Stack trace of thread 14179:
#0  0x00007f60728d348d poll (libc.so.6)
#1  0x00007f607601a7a6 n/a (libglib-2.0.so.0)
#2  0x00007f607601ab32 g_main_loop_run (libglib-2.0.so.0)
#3  0x00007f607c524c50 WTF::RunLoop::run() (libjavascriptcoregtk-4.0.so.18)
#4  0x00007f607c523cb3 std::_Function_handler&lt;void (), WTF::WorkQueue::platformInitialize(char const*, WTF::WorkQueue::Type, WTF::WorkQueue::QOS)::{lambda()#1}&gt;::_M_invoke(std::_Any_data const&amp;) (libjavascriptcoregtk-4.0.so.18)
#5  0x00007f607c4f0075 WTF::threadEntryPoint(void*) (libjavascriptcoregtk-4.0.so.18)
#6  0x00007f607c52212a WTF::wtfThreadEntryPoint(void*) (libjavascriptcoregtk-4.0.so.18)
#7  0x00007f607901b454 start_thread (libpthread.so.0)
#8  0x00007f60728dc7df __clone (libc.so.6)

Stack trace of thread 14218:
#0  0x00007f60790214b8 pthread_cond_timedwait@@GLIBC_2.3.2 (libpthread.so.0)
#1  0x00007f607c52279a WTF::ThreadCondition::timedWait(WTF::Mutex&amp;, double) (libjavascriptcoregtk-4.0.so.18)
#2  0x00007f607c4ed0c3 WTF::ParkingLot::parkConditionallyImpl(void const*, WTF::ScopedLambda&lt;bool ()&gt; const&amp;, WTF::ScopedLambda&lt;void ()&gt; const&amp;, WTF::TimeWithDynamicClockType const&amp;) (libjavascriptcoregtk-4.0.so.18)
#3  0x00007f607c4dcf2e std::_Function_handler&lt;void (), WTF::AutomaticThread::start(WTF::AbstractLocker const&amp;)::{lambda()#1}&gt;::_M_invoke(std::_Any_data const&amp;) (libjavascriptcoregtk-4.0.so.18)
#4  0x00007f607c4f0075 WTF::threadEntryPoint(void*) (libjavascriptcoregtk-4.0.so.18)
#5  0x00007f607c52212a WTF::wtfThreadEntryPoint(void*) (libjavascriptcoregtk-4.0.so.18)
#6  0x00007f607901b454 start_thread (libpthread.so.0)
#7  0x00007f60728dc7df __clone (libc.so.6)

Stack trace of thread 14180:
#0  0x00007f60728d348d poll (libc.so.6)
#1  0x00007f607601a7a6 n/a (libglib-2.0.so.0)
#2  0x00007f607601ab32 g_main_loop_run (libglib-2.0.so.0)
#3  0x00007f607c524c50 WTF::RunLoop::run() (libjavascriptcoregtk-4.0.so.18)
#4  0x00007f607c523cb3 std::_Function_handler&lt;void (), WTF::WorkQueue::platformInitialize(char const*, WTF::WorkQueue::Type, WTF::WorkQueue::QOS)::{lambda()#1}&gt;::_M_invoke(std::_Any_data const&amp;) (libjavascriptcoregtk-4.0.so.18)
#5  0x00007f607c4f0075 WTF::threadEntryPoint(void*) (libjavascriptcoregtk-4.0.so.18)
#6  0x00007f607c52212a WTF::wtfThreadEntryPoint(void*) (libjavascriptcoregtk-4.0.so.18)
#7  0x00007f607901b454 start_thread (libpthread.so.0)
#8  0x00007f60728dc7df __clone (libc.so.6)

Stack trace of thread 14217:
#0  0x00007f60790214b8 pthread_cond_timedwait@@GLIBC_2.3.2 (libpthread.so.0)
#1  0x00007f607c52279a WTF::ThreadCondition::timedWait(WTF::Mutex&amp;, double) (libjavascriptcoregtk-4.0.so.18)
#2  0x00007f607c4ed0c3 WTF::ParkingLot::parkConditionallyImpl(void const*, WTF::ScopedLambda&lt;bool ()&gt; const&amp;, WTF::ScopedLambda&lt;void ()&gt; const&amp;, WTF::TimeWithDynamicClockType const&amp;) (libjavascriptcoregtk-4.0.so.18)
#3  0x00007f607c4dcf2e std::_Function_handler&lt;void (), WTF::AutomaticThread::start(WTF::AbstractLocker const&amp;)::{lambda()#1}&gt;::_M_invoke(std::_Any_data const&amp;) (libjavascriptcoregtk-4.0.so.18)
#4  0x00007f607c4f0075 WTF::threadEntryPoint(void*) (libjavascriptcoregtk-4.0.so.18)
#5  0x00007f607c52212a WTF::wtfThreadEntryPoint(void*) (libjavascriptcoregtk-4.0.so.18)
#6  0x00007f607901b454 start_thread (libpthread.so.0)
#7  0x00007f60728dc7df __clone (libc.so.6)

Stack trace of thread 14219:
#0  0x00007f60790214b8 pthread_cond_timedwait@@GLIBC_2.3.2 (libpthread.so.0)
#1  0x00007f607c52279a WTF::ThreadCondition::timedWait(WTF::Mutex&amp;, double) (libjavascriptcoregtk-4.0.so.18)
#2  0x00007f607c4ed0c3 WTF::ParkingLot::parkConditionallyImpl(void const*, WTF::ScopedLambda&lt;bool ()&gt; const&amp;, WTF::ScopedLambda&lt;void ()&gt; const&amp;, WTF::TimeWithDynamicClockType const&amp;) (libjavascriptcoregtk-4.0.so.18)
#3  0x00007f607c4dcf2e std::_Function_handler&lt;void (), WTF::AutomaticThread::start(WTF::AbstractLocker const&amp;)::{lambda()#1}&gt;::_M_invoke(std::_Any_data const&amp;) (libjavascriptcoregtk-4.0.so.18)
#4  0x00007f607c4f0075 WTF::threadEntryPoint(void*) (libjavascriptcoregtk-4.0.so.18)
#5  0x00007f607c52212a WTF::wtfThreadEntryPoint(void*) (libjavascriptcoregtk-4.0.so.18)
#6  0x00007f607901b454 start_thread (libpthread.so.0)
#7  0x00007f60728dc7df __clone (libc.so.6)

Stack trace of thread 14172:
#0  0x00007f607fcfcd1e WebCore::GIFImageDecoder::clearFrameBufferCache(unsigned long) (libwebkit2gtk-4.0.so.37)
#1  0x00007f607f769b4f WebCore::BitmapImage::destroyDecodedData(bool) (libwebkit2gtk-4.0.so.37)
#2  0x00007f607eba0188 WebKit::NetworkProcessConnection::didCacheResource(WebCore::ResourceRequest const&amp;, WebKit::ShareableResource::Handle const&amp;, WebCore::SessionID) (libwebkit2gtk-4.0.so.37)
#3  0x00007f607ee28807 void IPC::handleMessage&lt;Messages::NetworkProcessConnection::DidCacheResource, WebKit::NetworkProcessConnection, void (WebKit::NetworkProcessConnection::*)(WebCore::ResourceRequest const&amp;, WebKit::ShareableResource::Handle const&amp;, WebCore::SessionID)&gt;(IPC::Decoder&amp;, WebKit::NetworkProcessConnection*, void (WebKit::NetworkProcessConnection::*)(WebCore::ResourceRequest const&amp;, WebKit::ShareableResource::Handle const&amp;, WebCore::SessionID)) (libwebkit2gtk-4.0.so.37)
#4  0x00007f607ee27fbd WebKit::NetworkProcessConnection::didReceiveNetworkProcessConnectionMessage(IPC::Connection&amp;, IPC::Decoder&amp;) (libwebkit2gtk-4.0.so.37)
#5  0x00007f607ea3439b IPC::Connection::dispatchMessage(std::unique_ptr&lt;IPC::Decoder, std::default_delete&lt;IPC::Decoder&gt; &gt;) (libwebkit2gtk-4.0.so.37)
#6  0x00007f607ea352c8 IPC::Connection::dispatchOneMessage() (libwebkit2gtk-4.0.so.37)
#7  0x00007f607c525505 WTF::RunLoop::performWork() (libjavascriptcoregtk-4.0.so.18)
#8  0x00007f607c5243b9 WTF::RunLoop::RunLoop()::{lambda(void*)#1}::_FUN(void*) (libjavascriptcoregtk-4.0.so.18)
#9  0x00007f607601a45a g_main_context_dispatch (libglib-2.0.so.0)
#10 0x00007f607601a810 n/a (libglib-2.0.so.0)
#11 0x00007f607601ab32 g_main_loop_run (libglib-2.0.so.0)
#12 0x00007f607c524c50 WTF::RunLoop::run() (libjavascriptcoregtk-4.0.so.18)
#13 0x00007f607edce5e2 int WebKit::ChildProcessMain&lt;WebKit::WebProcess, WebKit::WebProcessMain&gt;(int, char**) (libwebkit2gtk-4.0.so.37)
#14 0x00007f6072814291 __libc_start_main (libc.so.6)
#15 0x0000000000400b1a _start (WebKitWebProcess)

Stack trace of thread 14193:
#0  0x00007f60728d348d poll (libc.so.6)
#1  0x00007f607601a7a6 n/a (libglib-2.0.so.0)
#2  0x00007f607601ab32 g_main_loop_run (libglib-2.0.so.0)
#3  0x00007f607c524c50 WTF::RunLoop::run() (libjavascriptcoregtk-4.0.so.18)
#4  0x00007f607c523cb3 std::_Function_handler&lt;void (), WTF::WorkQueue::platformInitialize(char const*, WTF::WorkQueue::Type, WTF::WorkQueue::QOS)::{lambda()#1}&gt;::_M_invoke(std::_Any_data const&amp;) (libjavascriptcoregtk-4.0.so.18)
#5  0x00007f607c4f0075 WTF::threadEntryPoint(void*) (libjavascriptcoregtk-4.0.so.18)
#6  0x00007f607c52212a WTF::wtfThreadEntryPoint(void*) (libjavascriptcoregtk-4.0.so.18)
#7  0x00007f607901b454 start_thread (libpthread.so.0)
#8  0x00007f60728dc7df __clone (libc.so.6)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1283151</commentid>
    <comment_count>1</comment_count>
    <who name="Andres Gomez Garcia">agomez</who>
    <bug_when>2017-03-03 07:43:13 -0800</bug_when>
    <thetext>I can reproduce the BT in bug 167304 with this GIF.

I cannot reproduce it 100% but:
 * Sometimes the GIF doesn&apos;t charge (appears the broken image icon).
 * After a while retrying (reloading), the GIF may charge.
 * If I keep reloading, eventually the WebProcess SIGSEVs</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1283816</commentid>
    <comment_count>2</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2017-03-06 10:30:10 -0800</bug_when>
    <thetext>

*** This bug has been marked as a duplicate of bug 169199 ***</thetext>
  </long_desc>
      
      

    </bug>

</bugzilla>