<?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>148429</bug_id>
          
          <creation_ts>2015-08-25 06:26:05 -0700</creation_ts>
          <short_desc>IconDatabase: syncThreadMainLoop() is unlocking m_syncLock twice when thread termination is requested</short_desc>
          <delta_ts>2015-08-25 12:16:30 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore Misc.</component>
          <version>WebKit Local Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>Gtk, Regression</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Carlos Garcia Campos">cgarcia</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>fpizlo</cc>
    
    <cc>japhet</cc>
    
    <cc>zan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1120580</commentid>
    <comment_count>0</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2015-08-25 06:26:05 -0700</bug_when>
    <thetext>The test is crashing, but favicons seem to work fine in the MiniBrowser, so maybe it&apos;s something that only happens in unit tests because things happen faster or something like that.

TEST: ./Tools/gtk/../../WebKitBuild/Debug/bin/TestWebKitAPI/WebKit2Gtk/TestWebKitFaviconDatabase... (pid=7842)

  /webkit2/WebKitFaviconDatabase/favicon-database-test:                ERROR: Failed to start load for icon at url http://127.0.0.1:55922/favicon.ico

../../Source/WebCore/loader/icon/IconLoader.cpp(71) : void WebCore::IconLoader::startLoading()

ASSERTION FAILED: oldByteValue == isHeldBit || oldByteValue == (isHeldBit | hasParkedBit)

../../Source/WTF/wtf/Lock.cpp(84) : void WTF::LockBase::unlockSlow()

1   0x2ae6e18c3fb3 /home/slave/webkitgtk/gtk-linux-64-debug/build/WebKitBuild/Debug/lib/libjavascriptcoregtk-4.0.so.18(WTFCrash+0x1e) [0x2ae6e18c3fb3]

2   0x2ae6e18cb02d /home/slave/webkitgtk/gtk-linux-64-debug/build/WebKitBuild/Debug/lib/libjavascriptcoregtk-4.0.so.18(_ZN3WTF8LockBase10unlockSlowEv+0x51) [0x2ae6e18cb02d]

3   0x419548 ./Tools/gtk/../../WebKitBuild/Debug/bin/TestWebKitAPI/WebKit2Gtk/TestWebKitFaviconDatabase(_ZN3WTF8LockBase6unlockEv+0x42) [0x419548]

4   0x2ae6e7c59a23 /home/slave/webkitgtk/gtk-linux-64-debug/build/WebKitBuild/Debug/lib/libwebkit2gtk-4.0.so.37(_ZN7WebCore12IconDatabase18syncThreadMainLoopEv+0x3a1) [0x2ae6e7c59a23]

5   0x2ae6e7c578ad /home/slave/webkitgtk/gtk-linux-64-debug/build/WebKitBuild/Debug/lib/libwebkit2gtk-4.0.so.37(_ZN7WebCore12IconDatabase22iconDatabaseSyncThreadEv+0x37f) [0x2ae6e7c578ad]

6   0x2ae6e7c5752c /home/slave/webkitgtk/gtk-linux-64-debug/build/WebKitBuild/Debug/lib/libwebkit2gtk-4.0.so.37(_ZN7WebCore12IconDatabase27iconDatabaseSyncThreadStartEPv+0x20) [0x2ae6e7c5752c]

7   0x2ae6e18dc87e /home/slave/webkitgtk/gtk-linux-64-debug/build/WebKitBuild/Debug/lib/libjavascriptcoregtk-4.0.so.18(+0x169487e) [0x2ae6e18dc87e]

8   0x2ae6e18dca2e /home/slave/webkitgtk/gtk-linux-64-debug/build/WebKitBuild/Debug/lib/libjavascriptcoregtk-4.0.so.18(+0x1694a2e) [0x2ae6e18dca2e]

9   0x2ae6e14b219a /home/slave/webkitgtk/gtk-linux-64-debug/build/WebKitBuild/Debug/lib/libjavascriptcoregtk-4.0.so.18(_ZNKSt8functionIFvvEEclEv+0x32) [0x2ae6e14b219a]

10  0x2ae6e18dc760 /home/slave/webkitgtk/gtk-linux-64-debug/build/WebKitBuild/Debug/lib/libjavascriptcoregtk-4.0.so.18(+0x1694760) [0x2ae6e18dc760]

11  0x2ae6e190e4c8 /home/slave/webkitgtk/gtk-linux-64-debug/build/WebKitBuild/Debug/lib/libjavascriptcoregtk-4.0.so.18(+0x16c64c8) [0x2ae6e190e4c8]

12  0x2ae6ee71b0a4 /lib/x86_64-linux-gnu/libpthread.so.0(+0x80a4) [0x2ae6ee71b0a4]

13  0x2ae6f2e1d04d /lib/x86_64-linux-gnu/libc.so.6(clone+0x6d) [0x2ae6f2e1d04d]

FAIL

GTester: last random seed: R02S27cc8ffcc8374f3422c8149248e1d12d

(pid=7864)

FAIL: ./Tools/gtk/../../WebKitBuild/Debug/bin/TestWebKitAPI/WebKit2Gtk/TestWebKitFaviconDatabase

It&apos;s an assertion, but also crashes in Release builds, I got this bt:

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x7fff937fe700 (LWP 24134)]
0x00007ffff1a910cc in WTFCrash () from /home/cgarcia/src/git/gnome/WebKit/WebKitBuild/Release/lib/libjavascriptcoregtk-4.0.so.18
(gdb) bt
#0  0x00007ffff1a910cc in WTFCrash () from /home/cgarcia/src/git/gnome/WebKit/WebKitBuild/Release/lib/libjavascriptcoregtk-4.0.so.18
#1  0x00007ffff1a96645 in WTF::LockBase::unlockSlow() () from /home/cgarcia/src/git/gnome/WebKit/WebKitBuild/Release/lib/libjavascriptcoregtk-4.0.so.18
#2  0x00007ffff313e4ef in WTF::LockBase::unlock() () from /home/cgarcia/src/git/gnome/WebKit/WebKitBuild/Release/lib/libwebkit2gtk-4.0.so.37
#3  0x00007ffff3af6212 in WebCore::IconDatabase::syncThreadMainLoop() () from /home/cgarcia/src/git/gnome/WebKit/WebKitBuild/Release/lib/libwebkit2gtk-4.0.so.37
#4  0x00007ffff3af72c4 in WebCore::IconDatabase::iconDatabaseSyncThread() () from /home/cgarcia/src/git/gnome/WebKit/WebKitBuild/Release/lib/libwebkit2gtk-4.0.so.37
#5  0x00007ffff1aa15a5 in WTF::threadEntryPoint(void*) () from /home/cgarcia/src/git/gnome/WebKit/WebKitBuild/Release/lib/libjavascriptcoregtk-4.0.so.18
#6  0x00007ffff1ace4fa in WTF::wtfThreadEntryPoint(void*) () from /home/cgarcia/src/git/gnome/WebKit/WebKitBuild/Release/lib/libjavascriptcoregtk-4.0.so.18
#7  0x00007ffff0ab70a4 in start_thread (arg=0x7fff937fe700) at pthread_create.c:309
#8  0x00007fffeae0107d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:111</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1120582</commentid>
    <comment_count>1</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2015-08-25 06:45:14 -0700</bug_when>
    <thetext>Crash happens when clearing the database in IconDatabase::removeAllIcons().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1120590</commentid>
    <comment_count>2</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2015-08-25 07:50:52 -0700</bug_when>
    <thetext>This assertion indicates that the caller (syncTheeadMainLoop?) is unlocking a lock that wasn&apos;t locked. This manifests as a regression because the old locks had no such assertion, but probably this has been a problem in this code for a long time.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1120593</commentid>
    <comment_count>3</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2015-08-25 08:40:38 -0700</bug_when>
    <thetext>Indeed, the new lock is just revealing a bug that has been there probably forever. This not GTK specific and not a regression either. I&apos;ll submit a patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1120594</commentid>
    <comment_count>4</comment_count>
      <attachid>259846</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2015-08-25 08:46:13 -0700</bug_when>
    <thetext>Created attachment 259846
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1120683</commentid>
    <comment_count>5</comment_count>
      <attachid>259846</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-08-25 12:16:24 -0700</bug_when>
    <thetext>Comment on attachment 259846
Patch

Clearing flags on attachment: 259846

Committed r188931: &lt;http://trac.webkit.org/changeset/188931&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1120684</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-08-25 12:16:30 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>259846</attachid>
            <date>2015-08-25 08:46:13 -0700</date>
            <delta_ts>2015-08-25 12:16:24 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>wcore-icon-database-crash.diff</filename>
            <type>text/plain</type>
            <size>1862</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBiODE1ZDJlLi4zNTgzYWJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMg
QEAKKzIwMTUtMDgtMjUgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29t
PgorCisgICAgICAgIEljb25EYXRhYmFzZTogc3luY1RocmVhZE1haW5Mb29wKCkgaXMgdW5sb2Nr
aW5nIG1fc3luY0xvY2sgdHdpY2Ugd2hlbiB0aHJlYWQgdGVybWluYXRpb24gaXMgcmVxdWVzdGVk
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDg0MjkK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGUgbG9j
ayBpcyByZWxlYXNlZCBhbiBsb2NrZWQgb24gZXZlcnkgbG9vcCBpdGVyYXRpb24sIGFuZCB0aGVu
CisgICAgICAgIHVubG9ja2VkIGFnYWluIGFmdGVyIHRoZSBsb29wLiBUaGVyZSdzIGFuIGVhcmx5
IGJyZWFrIGluIHRoZSBsb29wCisgICAgICAgIHdoZW4gdGhyZWFkIHRlcm1pbmF0aW9uIGlzIHJl
cXVlc3RlZCB0aGF0IGhhcHBlbnMgYWZ0ZXIgdGhlIGxvY2sKKyAgICAgICAgaXMgcmVsZWFzZWQg
YnV0IGJlZm9yZSBpcyBsb2NrZWQgYWdhaW4sIHNvIHRoYXQgdGhlIHVubG9jayBhZnRlcgorICAg
ICAgICB0aGUgbG9vcCBpcyB0cnlpbmcgdG8gdW5sb2NrIHRoZSBsb2NrIGFnYWluLiBUaGlzIHdh
cyBub3QgYQorICAgICAgICBwcm9ibGVtIGJlZm9yZSwgYnV0IHRoZSBuZXcgTG9jayBoYXMgYW4g
YXNzZXJ0aW9uIHRvIGVuc3VyZSB0aGF0IGEKKyAgICAgICAgbG9jayBpcyBub3QgcmVsZWFzZWQg
dHdpY2UuCisKKyAgICAgICAgKiBsb2FkZXIvaWNvbi9JY29uRGF0YWJhc2UuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6SWNvbkRhdGFiYXNlOjpzeW5jVGhyZWFkTWFpbkxvb3ApOiBDbGVhbiB1cCB0
aGUgdGhyZWFkCisgICAgICAgIGFuZCByZXR1cm4gaW5zdGVhZCBvZiBicmVha2luZyB0aGUgbG9v
cCB3aGVuIHRocmVhZCB0ZXJtaW5hdGlvbiBpcworICAgICAgICByZXF1ZXN0ZWQuCisKIDIwMTUt
MDgtMTcgIEZpbGlwIFBpemxvICA8ZnBpemxvQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXBsYWNl
IGFsbCByZW1haW5pbmcgdXNlcyBvZiBXVEY6Ok11dGV4IHdpdGggV1RGOjpMb2NrCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvaWNvbi9JY29uRGF0YWJhc2UuY3BwIGIvU291cmNl
L1dlYkNvcmUvbG9hZGVyL2ljb24vSWNvbkRhdGFiYXNlLmNwcAppbmRleCBmOWJjNDZlLi40OTlh
MjM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvaWNvbi9JY29uRGF0YWJhc2Uu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9pY29uL0ljb25EYXRhYmFzZS5jcHAKQEAg
LTEzNjcsOCArMTM2NywxMCBAQCB2b2lkIEljb25EYXRhYmFzZTo6c3luY1RocmVhZE1haW5Mb29w
KCkKICAgICAgICAgfQogICAgICAgICAKICAgICAgICAgLy8gVGhlbiwgaWYgdGhlIHRocmVhZCBz
aG91bGQgYmUgcXVpdHRpbmcsIHF1aXQgbm93IQotICAgICAgICBpZiAobV90aHJlYWRUZXJtaW5h
dGlvblJlcXVlc3RlZCkKLSAgICAgICAgICAgIGJyZWFrOworICAgICAgICBpZiAobV90aHJlYWRU
ZXJtaW5hdGlvblJlcXVlc3RlZCkgeworICAgICAgICAgICAgY2xlYW51cFN5bmNUaHJlYWQoKTsK
KyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQogCiAgICAgICAgIHsKICAgICAgICAgICAg
IExvY2tIb2xkZXIgbG9ja2VyKG1fdXJsQW5kSWNvbkxvY2spOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>