<?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>210483</bug_id>
          
          <creation_ts>2020-04-14 02:09:15 -0700</creation_ts>
          <short_desc>[GLIB] Fix race condition in FileMonitor implementation</short_desc>
          <delta_ts>2020-04-14 03:25:14 -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>Platform</component>
          <version>WebKit Nightly 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, InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>210184</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Carlos Garcia Campos">cgarcia</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>aperez</cc>
    
    <cc>bugs-noreply</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1641283</commentid>
    <comment_count>0</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2020-04-14 02:09:15 -0700</bug_when>
    <thetext>This is causing flaky timeouts when running resource load statistics layout tests.

Thread 22 (Thread 0x7f89267fc700 (LWP 16578)):
#0  syscall () at ../sysdeps/unix/sysv/linux/x86_64/syscall.S:38
#1  0x00007f89cf5c12ec in g_mutex_lock_slowpath (mutex=mutex@entry=0x7f89cf875f40 &lt;g.inotify_lock_lock&gt;) at ../glib/gthread-posix.c:1340
#2  0x00007f89cf5c1b52 in g_mutex_lock (mutex=mutex@entry=0x7f89cf875f40 &lt;g.inotify_lock_lock&gt;) at ../glib/gthread-posix.c:1364
#3  0x00007f89cf7e0060 in _ih_startup () at ../gio/inotify/inotify-helper.c:74
#4  0x00007f89cf7e0410 in g_inotify_file_monitor_start (local_monitor=&lt;optimized out&gt;, dirname=0x7f890c006590 &quot;/tmp/wk-drt/ResourceLoadStatistics&quot;, basename=0x7f890c0065c0 &quot;full_browsing_session_resourceLog.plist&quot;, filename=0x0, source=0x7f890c006440) at ../gio/inotify/ginotifyfilemonitor.c:61
#5  0x00007f89cf7d58ec in g_local_file_monitor_new_for_path (pathname=0x7f890c0047a0 &quot;/tmp/wk-drt/ResourceLoadStatistics/full_browsing_session_resourceLog.plist&quot;, is_directory=0, flags=G_FILE_MONITOR_NONE, error=0x0) at ../gio/glocalfilemonitor.c:888
#6  0x00007f89cf70ca73 in g_file_monitor_file (file=0x7f890c002700, flags=G_FILE_MONITOR_NONE, cancellable=0x0, error=0x7f89267fb8e8) at ../gio/gfile.c:5483
#7  0x00007f89d3be8f14 in WebCore::FileMonitor::FileMonitor(WTF::String const&amp;, WTF::Ref&lt;WTF::WorkQueue, WTF::DumbPtrTraits&lt;WTF::WorkQueue&gt; &gt;&amp;&amp;, WTF::Function&lt;void (WebCore::FileMonitor::FileChangeType)&gt;&amp;&amp;) () from /home/cgarcia/src/git/gnome/WebKit/WebKitBuild/Release/lib/libwebkit2gtk-4.0.so.37
#8  0x00007f89d24345c6 in WebKit::ResourceLoadStatisticsPersistentStorage::startMonitoringDisk() () from /home/cgarcia/src/git/gnome/WebKit/WebKitBuild/Release/lib/libwebkit2gtk-4.0.so.37
#9  0x00007f89d243c267 in WTF::Detail::CallableWrapper&lt;WebKit::WebResourceLoadStatisticsStore::WebResourceLoadStatisticsStore(WebKit::NetworkSession&amp;, WTF::String const&amp;, WebKit::ShouldIncludeLocalhost, WebCore::ResourceLoadStatistics::IsEphemeral)::{lambda()#1}, void&gt;::call() () from /home/cgarcia/src/git/gnome/WebKit/WebKitBuild/Release/lib/libwebkit2gtk-4.0.so.37
#10 0x00007f89cedcaa19 in WTF::RunLoop::performWork() () from /home/cgarcia/src/git/gnome/WebKit/WebKitBuild/Release/lib/libjavascriptcoregtk-4.0.so.18
#11 0x00007f89cee293f9 in WTF::RunLoop::RunLoop()::{lambda(void*)#1}::_FUN(void*) () from /home/cgarcia/src/git/gnome/WebKit/WebKitBuild/Release/lib/libjavascriptcoregtk-4.0.so.18
#12 0x00007f89cf5779fe in g_main_dispatch (context=0x7f890c000b60) at ../glib/gmain.c:3185
#13 g_main_context_dispatch (context=context@entry=0x7f890c000b60) at ../glib/gmain.c:3850
#14 0x00007f89cf577d80 in g_main_context_iterate (context=0x7f890c000b60, block=block@entry=1, dispatch=dispatch@entry=1, self=&lt;optimized out&gt;) at ../glib/gmain.c:3923
#15 0x00007f89cf578053 in g_main_loop_run (loop=0x7f890c003e60) at ../glib/gmain.c:4117
#16 0x00007f89cee29ec0 in WTF::RunLoop::run() () from /home/cgarcia/src/git/gnome/WebKit/WebKitBuild/Release/lib/libjavascriptcoregtk-4.0.so.18
#17 0x00007f89cedcc254 in WTF::Thread::entryPoint(WTF::Thread::NewThreadContext*) () from /home/cgarcia/src/git/gnome/WebKit/WebKitBuild/Release/lib/libjavascriptcoregtk-4.0.so.18
#18 0x00007f89cee2b289 in WTF::wtfThreadEntryPoint(void*) () from /home/cgarcia/src/git/gnome/WebKit/WebKitBuild/Release/lib/libjavascriptcoregtk-4.0.so.18
#19 0x00007f89cd595f27 in start_thread (arg=&lt;optimized out&gt;) at pthread_create.c:479
#20 0x00007f89d03ac2ef in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 5 (Thread 0x7f8986ffe700 (LWP 16472)):
#0  syscall () at ../sysdeps/unix/sysv/linux/x86_64/syscall.S:38
#1  0x00007f89cf5c12ec in g_mutex_lock_slowpath (mutex=mutex@entry=0x7f89cf875f40 &lt;g.inotify_lock_lock&gt;) at ../glib/gthread-posix.c:1340
#2  0x00007f89cf5c1b52 in g_mutex_lock (mutex=mutex@entry=0x7f89cf875f40 &lt;g.inotify_lock_lock&gt;) at ../glib/gthread-posix.c:1364
#3  0x00007f89cf7e0140 in _ih_sub_cancel (sub=0x7f89580129c0) at ../gio/inotify/inotify-helper.c:121
#4  0x00007f89cf7e03ba in g_inotify_file_monitor_cancel (monitor=0x7f8970006240) at ../gio/inotify/ginotifyfilemonitor.c:75
#5  0x00007f89cf717727 in g_file_monitor_cancel (monitor=0x7f8970006240) at ../gio/gfilemonitor.c:241
#6  g_file_monitor_cancel (monitor=0x7f8970006240) at ../gio/gfilemonitor.c:235
#7  0x00007f89cf71779c in g_file_monitor_dispose (object=0x7f8970006240) at ../gio/gfilemonitor.c:123
#8  0x00007f89cf7d5443 in g_local_file_monitor_dispose (object=0x7f8970006240) at ../gio/glocalfilemonitor.c:814
#9  0x00007f89cf665cb3 in g_object_unref (_object=&lt;optimized out&gt;) at ../gobject/gobject.c:3440
#10 g_object_unref (_object=0x7f8970006240) at ../gobject/gobject.c:3370
#11 0x00007f89cf7d4ee3 in g_file_monitor_source_handle_event (fms=0x7f8958012830, event_type=event_type@entry=G_FILE_MONITOR_EVENT_DELETED, child=&lt;optimized out&gt;, rename_to=rename_to@entry=0x0, other=&lt;optimized out&gt;, other@entry=0x0, event_time=&lt;optimized out&gt;) at ../gio/glocalfilemonitor.c:455
#12 0x00007f89cf7dfcc8 in ih_event_callback (event=0x7f897c0045b0, sub=0x7f89580129c0, file_event=&lt;optimized out&gt;) at ../gio/inotify/inotify-helper.c:206
#13 0x00007f89cf7df29c in ip_event_dispatch (dir_list=dir_list@entry=0x7f894c0022a0, file_list=0x0, event=event@entry=0x7f897c0045b0) at ../gio/inotify/inotify-path.c:492
#14 0x00007f89cf7df45e in ip_event_dispatch (event=0x7f897c0045b0, file_list=&lt;optimized out&gt;, dir_list=0x7f894c0022a0) at ../gio/inotify/inotify-path.c:547
#15 ip_event_callback (event=0x7f897c0045b0) at ../gio/inotify/inotify-path.c:547
#16 ip_event_callback (event=event@entry=0x7f897c0045b0) at ../gio/inotify/inotify-path.c:529
#17 0x00007f89cf7de7e9 in ik_source_dispatch (source=0x5604185b8990, func=0x7f89cf7df3a0 &lt;ip_event_callback&gt;, user_data=&lt;optimized out&gt;) at ../gio/inotify/inotify-kernel.c:327
#18 0x00007f89cf5779fe in g_main_dispatch (context=0x560418591d80) at ../glib/gmain.c:3185
#19 g_main_context_dispatch (context=context@entry=0x560418591d80) at ../glib/gmain.c:3850
#20 0x00007f89cf577d80 in g_main_context_iterate (context=context@entry=0x560418591d80, block=block@entry=1, dispatch=dispatch@entry=1, self=&lt;optimized out&gt;) at ../glib/gmain.c:3923
#21 0x00007f89cf577e0f in g_main_context_iteration (context=0x560418591d80, may_block=may_block@entry=1) at ../glib/gmain.c:3984
#22 0x00007f89cf577e61 in glib_worker_main (data=&lt;optimized out&gt;) at ../glib/gmain.c:5870
#23 0x00007f89cf59fb7d in g_thread_proxy (data=0x560418592000) at ../glib/gthread.c:805
#24 0x00007f89cd595f27 in start_thread (arg=&lt;optimized out&gt;) at pthread_create.c:479
#25 0x00007f89d03ac2ef in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1641284</commentid>
    <comment_count>1</comment_count>
      <attachid>396390</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2020-04-14 02:13:12 -0700</bug_when>
    <thetext>Created attachment 396390
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1641305</commentid>
    <comment_count>2</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2020-04-14 03:24:58 -0700</bug_when>
    <thetext>Committed r260067: &lt;https://trac.webkit.org/changeset/260067&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1641306</commentid>
    <comment_count>3</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-04-14 03:25:14 -0700</bug_when>
    <thetext>&lt;rdar://problem/61763955&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>396390</attachid>
            <date>2020-04-14 02:13:12 -0700</date>
            <delta_ts>2020-04-14 02:25:27 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>wcore-file-monitor-race.diff</filename>
            <type>text/plain</type>
            <size>2966</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBkMWYzZjZiNWYwMDMuLjkxYmE0YThkMzA0YSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDIxIEBACisyMDIwLTA0LTE0ICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFA
aWdhbGlhLmNvbT4KKworICAgICAgICBbR0xJQl0gRml4IHJhY2UgY29uZGl0aW9uIGluIEZpbGVN
b25pdG9yIGltcGxlbWVudGF0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMTA0ODMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBUaGlzIGlzIGNhdXNpbmcgZmxha3kgdGltZW91dHMgd2hlbiBydW5uaW5n
IHJlc291cmNlIGxvYWQgc3RhdGlzdGljcyBsYXlvdXQgdGVzdHMuIFRoZSBwcm9ibGVtIGlzIHRo
YXQgd2UgYXNzdW1lCisgICAgICAgIEZpbGVNb25pdG9yIGhhcyB0aGUgbGFzdCByZWZlcmVuY2Ug
b2YgdGhlIHBsYXRmb3JtIG1vbml0b3IgYW5kIGl0J3MgZGVsZXRlZCBvbiBnX29iamVjdF91bnJl
ZigpLCBidXQgR0xpYiBrZWVwcworICAgICAgICBhbm90aGVyIHJlZmVyZW5jZSB0aGF0IGlzIHJl
bGVhc2VkIGxhdGVyIG9uIGEgZGlmZmVyZW50IHRocmVhZCBpZiB0aGUgbW9uaXRvciBpcyBzdGls
bCBhY3RpdmUuIFdlIGp1c3QgbmVlZCB0bworICAgICAgICBlbnN1cmUgd2UgY2FuY2VsIHRoZSBt
b25pdG9yIGJlZm9yZSBjYWxsaW5nIGdfb2JqZWN0X3VucmVmKCkuCisKKyAgICAgICAgKiBwbGF0
Zm9ybS9GaWxlTW9uaXRvci5oOgorICAgICAgICAqIHBsYXRmb3JtL2dsaWIvRmlsZU1vbml0b3JH
TGliLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZpbGVNb25pdG9yOjp+RmlsZU1vbml0b3IpOgor
ICAgICAgICAoV2ViQ29yZTo6RmlsZU1vbml0b3I6OmRpZENoYW5nZSk6CisgICAgICAgIChXZWJD
b3JlOjpGaWxlTW9uaXRvcjo6Y2FuY2VsKToKKwogMjAyMC0wNC0xMyAgUm9iIEJ1aXMgIDxyYnVp
c0BpZ2FsaWEuY29tPgogCiAgICAgICAgIFJlbW92ZSByZXR1cm4gcGFyYW1ldGVyIGZyb20gRnJh
bWVMb2FkZXI6OmNsb3NlVVJMCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9G
aWxlTW9uaXRvci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRmlsZU1vbml0b3IuaAppbmRl
eCA2YjI4OGUxZTE3ZTQuLjM2NjQ3ZWJmY2UyZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vRmlsZU1vbml0b3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9GaWxl
TW9uaXRvci5oCkBAIC01Niw2ICs1Niw3IEBAIHByaXZhdGU6CiAjaWYgVVNFKEdMSUIpCiAgICAg
c3RhdGljIHZvaWQgZmlsZUNoYW5nZWRDYWxsYmFjayhHRmlsZU1vbml0b3IqLCBHRmlsZSosIEdG
aWxlKiwgR0ZpbGVNb25pdG9yRXZlbnQsIEZpbGVNb25pdG9yKik7CiAgICAgdm9pZCBkaWRDaGFu
Z2UoRmlsZUNoYW5nZVR5cGUpOworICAgIHZvaWQgY2FuY2VsKCk7CiAgICAgUmVmPFdvcmtRdWV1
ZT4gbV9oYW5kbGVyUXVldWU7CiAgICAgRnVuY3Rpb248dm9pZChGaWxlQ2hhbmdlVHlwZSk+IG1f
bW9kaWZpY2F0aW9uSGFuZGxlcjsKICAgICBHUmVmUHRyPEdGaWxlTW9uaXRvcj4gbV9wbGF0Zm9y
bU1vbml0b3I7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9nbGliL0ZpbGVN
b25pdG9yR0xpYi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9nbGliL0ZpbGVNb25pdG9y
R0xpYi5jcHAKaW5kZXggNWE5ODJmNDk0OTIzLi5jY2Y4MTc2NDFhNjYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dsaWIvRmlsZU1vbml0b3JHTGliLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9nbGliL0ZpbGVNb25pdG9yR0xpYi5jcHAKQEAgLTY2LDEyICs2
NiwxNCBAQCBGaWxlTW9uaXRvcjo6RmlsZU1vbml0b3IoY29uc3QgU3RyaW5nJiBwYXRoLCBSZWY8
V29ya1F1ZXVlPiYmIGhhbmRsZXJRdWV1ZSwgV1RGOgogRmlsZU1vbml0b3I6On5GaWxlTW9uaXRv
cigpCiB7CiAgICAgLy8gVGhlIG1vbml0b3IgY2FuIGJlIGRlc3Ryb3llZCBpbiB0aGUgd29yayBx
dWV1ZSB0aHJlYWQuCi0gICAgaWYgKCZtX2hhbmRsZXJRdWV1ZS0+cnVuTG9vcCgpID09ICZSdW5M
b29wOjpjdXJyZW50KCkpCisgICAgaWYgKCZtX2hhbmRsZXJRdWV1ZS0+cnVuTG9vcCgpID09ICZS
dW5Mb29wOjpjdXJyZW50KCkpIHsKKyAgICAgICAgY2FuY2VsKCk7CiAgICAgICAgIHJldHVybjsK
KyAgICB9CiAKICAgICBCaW5hcnlTZW1hcGhvcmUgc2VtYXBob3JlOwogICAgIG1faGFuZGxlclF1
ZXVlLT5kaXNwYXRjaChbJl0gewotICAgICAgICBtX3BsYXRmb3JtTW9uaXRvciA9IG51bGxwdHI7
CisgICAgICAgIGNhbmNlbCgpOwogICAgICAgICBzZW1hcGhvcmUuc2lnbmFsKCk7CiAgICAgfSk7
CiAgICAgc2VtYXBob3JlLndhaXQoKTsKQEAgLTk2LDggKzk4LDE3IEBAIHZvaWQgRmlsZU1vbml0
b3I6OmRpZENoYW5nZShGaWxlQ2hhbmdlVHlwZSB0eXBlKQogewogICAgIEFTU0VSVCghaXNNYWlu
VGhyZWFkKCkpOwogICAgIGlmICh0eXBlID09IEZpbGVDaGFuZ2VUeXBlOjpSZW1vdmFsKQotICAg
ICAgICBtX3BsYXRmb3JtTW9uaXRvciA9IG51bGxwdHI7CisgICAgICAgIGNhbmNlbCgpOwogICAg
IG1fbW9kaWZpY2F0aW9uSGFuZGxlcih0eXBlKTsKIH0KIAordm9pZCBGaWxlTW9uaXRvcjo6Y2Fu
Y2VsKCkKK3sKKyAgICBpZiAoIW1fcGxhdGZvcm1Nb25pdG9yKQorICAgICAgICByZXR1cm47CisK
KyAgICBnX2ZpbGVfbW9uaXRvcl9jYW5jZWwobV9wbGF0Zm9ybU1vbml0b3IuZ2V0KCkpOworICAg
IG1fcGxhdGZvcm1Nb25pdG9yID0gbnVsbHB0cjsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQo=
</data>
<flag name="review"
          id="411793"
          type_id="1"
          status="+"
          setter="aperez"
    />
          </attachment>
      

    </bug>

</bugzilla>