<?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>210955</bug_id>
          
          <creation_ts>2020-04-24 00:04:48 -0700</creation_ts>
          <short_desc>[Win] Deadlock in WTF::Thread::didExit() while WebKitNetworkProcess.exe is exiting</short_desc>
          <delta_ts>2021-03-03 13:26:39 -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>Web Template Framework</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=204192</see_also>
    
    <see_also>https://bugs.webkit.org/show_bug.cgi?id=222682</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="Fujii Hironori">fujii</reporter>
          <assigned_to name="Fujii Hironori">fujii</assigned_to>
          <cc>achristensen</cc>
    
    <cc>benjamin</cc>
    
    <cc>bfulgham</cc>
    
    <cc>cdumez</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>don.olmstead</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>pvollan</cc>
    
    <cc>ross.kirsling</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>ysuzuki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1645107</commentid>
    <comment_count>0</comment_count>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2020-04-24 00:04:48 -0700</bug_when>
    <thetext>[WinCairo] Dead lock in WTF::Thread::didExit() while WebKitNetworkProcess.exe is exiting

By running run-webkit-tests, sometimes WebKitNetworkProcess.exe process doesn&apos;t exit.

&gt; python ./Tools/Scripts/run-webkit-tests --wincairo --debug --no-new-test-results --no-retry-failures --no-show-results -f fast

There is only the main thread, and here is its callstack.

Callstack:

&gt; ntdll.dll!NtWaitForAlertByThreadId()	Unknown
&gt; ntdll.dll!RtlSleepConditionVariableSRW()	Unknown
&gt; KernelBase.dll!SleepConditionVariableSRW()	Unknown
&gt; WTF.dll!WTF::ThreadCondition::timedWait(WTF::Mutex &amp; mutex={...}, WTF::WallTime absoluteTime={...}) Line 383	C++
&gt; WTF.dll!WTF::ParkingLot::parkConditionallyImpl(const void * address=0x00007ffc1ec325ac, const WTF::ScopedLambda&lt;bool __cdecl(void)&gt; &amp; validation={...}, const WTF::ScopedLambda&lt;void __cdecl(void)&gt; &amp; beforeSleep={...}, const WTF::TimeWithDynamicClockType &amp; timeout={...}) Line 604	C++
&gt; WTF.dll!WTF::ParkingLot::parkConditionally&lt;bool &lt;lambda&gt;(void),void &lt;lambda&gt;(void)&gt;(const void * address=0x00007ffc1ec325ac, const WTF::ParkingLot::compareAndPark::__l2::bool &lt;lambda&gt;(void) &amp; validation=bool &lt;lambda&gt;(void){...}, const WTF::ParkingLot::compareAndPark::__l2::void &lt;lambda&gt;(void) &amp; beforeSleep=void &lt;lambda&gt;(void){...}, const WTF::TimeWithDynamicClockType &amp; timeout={...}) Line 82	C++
&gt; WTF.dll!WTF::ParkingLot::compareAndPark&lt;unsigned char,unsigned char&gt;(const WTF::Atomic&lt;unsigned char&gt; * address=0x00007ffc1ec325ac, unsigned char expected=&apos;\x3&apos;) Line 94	C++
&gt; WTF.dll!WTF::LockAlgorithm&lt;unsigned char,1,2,WTF::EmptyLockHooks&lt;unsigned char&gt;&gt;::lockSlow(WTF::Atomic&lt;unsigned char&gt; &amp; lock={...}) Line 83	C++
&gt; WTF.dll!WTF::Lock::lockSlow() Line 41	C++
&gt; WTF.dll!WTF::Lock::lock() Line 60	C++
&gt; WTF.dll!WTF::Locker&lt;WTF::Lock&gt;::lock() Line 114	C++
&gt; WTF.dll!WTF::Locker&lt;WTF::Lock&gt;::Locker&lt;WTF::Lock&gt;(WTF::Lock &amp; lockable={...}) Line 55	C++
&gt; WTF.dll!WTF::Thread::didExit() Line 226	C++
&gt; WTF.dll!WTF::Thread::ThreadHolder::~ThreadHolder() Line 274	C++
&gt; WTF.dll!WTF::`dynamic atexit destructor for &apos;s_threadHolder&apos;&apos;()	C++
&gt; WTF.dll!__dyn_tls_dtor(void * __formal=0x000000007ffe0385, const unsigned long dwReason, void * __formal) Line 119	C++
&gt; ntdll.dll!LdrpCallInitRoutine()	Unknown
&gt; ntdll.dll!LdrpCallTlsInitializers()	Unknown
&gt; ntdll.dll!LdrShutdownProcess()	Unknown
&gt; ntdll.dll!RtlExitUserProcess()	Unknown
&gt; kernel32.dll!ExitProcessImplementation()	Unknown
&gt; ucrtbase.dll!exit_or_terminate_process()	Unknown
&gt; ucrtbase.dll!common_exit()	Unknown
&gt; WebKitNetworkProcess.exe!__scrt_common_main_seh() Line 295	C++
&gt; kernel32.dll!BaseThreadInitThunk()	Unknown
&gt; ntdll.dll!RtlUserThreadStart()	Unknown

I don&apos;t know when this issue started to happen, but not so long time ago.
I fixed very similar issue in 5 months ago.

  Bug 204192 – [WinCairo] dead lock in Thread::destructTLS</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1645849</commentid>
    <comment_count>1</comment_count>
      <attachid>397633</attachid>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2020-04-26 16:27:22 -0700</bug_when>
    <thetext>Created attachment 397633
Patch to do quick_exit</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1645850</commentid>
    <comment_count>2</comment_count>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2020-04-26 16:28:13 -0700</bug_when>
    <thetext>Using std::quick_exit doesn&apos;t solve the issue.
The callstack looks almost same.

&gt; ntdll.dll!NtWaitForAlertByThreadId()	Unknown
&gt; ntdll.dll!RtlSleepConditionVariableSRW()	Unknown
&gt; KernelBase.dll!SleepConditionVariableSRW()	Unknown
&gt; WTF.dll!WTF::ThreadCondition::timedWait(WTF::Mutex &amp; mutex={...}, WTF::WallTime absoluteTime={...}) Line 383	C++
&gt; WTF.dll!WTF::ParkingLot::parkConditionallyImpl(const void * address=0x00007ffc230755ac, const WTF::ScopedLambda&lt;bool __cdecl(void)&gt; &amp; validation={...}, const WTF::ScopedLambda&lt;void __cdecl(void)&gt; &amp; beforeSleep={...}, const WTF::TimeWithDynamicClockType &amp; timeout={...}) Line 604	C++
&gt; WTF.dll!WTF::ParkingLot::parkConditionally&lt;bool &lt;lambda&gt;(void),void &lt;lambda&gt;(void)&gt;(const void * address=0x00007ffc230755ac, const WTF::ParkingLot::compareAndPark::__l2::bool &lt;lambda&gt;(void) &amp; validation=bool &lt;lambda&gt;(void){...}, const WTF::ParkingLot::compareAndPark::__l2::void &lt;lambda&gt;(void) &amp; beforeSleep=void &lt;lambda&gt;(void){...}, const WTF::TimeWithDynamicClockType &amp; timeout={...}) Line 82	C++
&gt; WTF.dll!WTF::ParkingLot::compareAndPark&lt;unsigned char,unsigned char&gt;(const WTF::Atomic&lt;unsigned char&gt; * address=0x00007ffc230755ac, unsigned char expected=&apos;\x3&apos;) Line 94	C++
&gt; WTF.dll!WTF::LockAlgorithm&lt;unsigned char,1,2,WTF::EmptyLockHooks&lt;unsigned char&gt;&gt;::lockSlow(WTF::Atomic&lt;unsigned char&gt; &amp; lock={...}) Line 83	C++
&gt; WTF.dll!WTF::Lock::lockSlow() Line 41	C++
&gt; WTF.dll!WTF::Lock::lock() Line 60	C++
&gt; WTF.dll!WTF::Locker&lt;WTF::Lock&gt;::lock() Line 114	C++
&gt; WTF.dll!WTF::Locker&lt;WTF::Lock&gt;::Locker&lt;WTF::Lock&gt;(WTF::Lock &amp; lockable={...}) Line 55	C++
&gt; WTF.dll!WTF::holdLock&lt;WTF::Lock&gt;(WTF::Lock &amp; lock={...}) Line 127	C++
&gt; WTF.dll!WTF::Thread::didExit() Line 231	C++
&gt; WTF.dll!WTF::Thread::ThreadHolder::~ThreadHolder() Line 274	C++
&gt; WTF.dll!WTF::`dynamic atexit destructor for &apos;s_threadHolder&apos;&apos;()	C++
&gt; WTF.dll!__dyn_tls_dtor(void * __formal=0x000000007ffe0385, const unsigned long dwReason, void * __formal) Line 119	C++
&gt; ntdll.dll!LdrpCallInitRoutine()	Unknown
&gt; ntdll.dll!LdrpCallTlsInitializers()	Unknown
&gt; ntdll.dll!LdrShutdownProcess()	Unknown
&gt; ntdll.dll!RtlExitUserProcess()	Unknown
&gt; kernel32.dll!ExitProcessImplementation()	Unknown
&gt; ucrtbase.dll!exit_or_terminate_process()	Unknown
&gt; ucrtbase.dll!common_exit()	Unknown
&gt; WebKitNetworkProcess.exe!main(int argc=7, char * * argv=0x000001f2ec737650) Line 36	C++
&gt; [Inline Frame] WebKitNetworkProcess.exe!invoke_main() Line 78	C++
&gt; WebKitNetworkProcess.exe!__scrt_common_main_seh() Line 288	C++
&gt; kernel32.dll!BaseThreadInitThunk()	Unknown
&gt; ntdll.dll!RtlUserThreadStart()	Unknown</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1645881</commentid>
    <comment_count>3</comment_count>
      <attachid>397643</attachid>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2020-04-26 22:01:26 -0700</bug_when>
    <thetext>Created attachment 397643
Patch to TerminateProcess

Using TerminateProcess solves the issue.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1645910</commentid>
    <comment_count>4</comment_count>
      <attachid>397651</attachid>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2020-04-27 00:25:04 -0700</bug_when>
    <thetext>Created attachment 397651
a test program to exit while other thread is locking a Lock

I created a test program that the main thread exits while other thread is locking a Lock.
This program is based on Bug 204192 Comment 26.

&gt; TestWTF.exe --gtest_filter=WTF_Lock.Test1

The deadlock happened with the following callstack.

&gt; ntdll.dll!NtWaitForAlertByThreadId()	Unknown
&gt; ntdll.dll!RtlSleepConditionVariableSRW()	Unknown
&gt; KernelBase.dll!SleepConditionVariableSRW()	Unknown
&gt; WTF.dll!WTF::ThreadCondition::timedWait(WTF::Mutex &amp; mutex={...}, WTF::WallTime absoluteTime={...}) Line 383	C++
&gt; WTF.dll!WTF::ParkingLot::parkConditionallyImpl(const void * address=0x00007ffc1d0d1c28, const WTF::ScopedLambda&lt;bool __cdecl(void)&gt; &amp; validation={...}, const WTF::ScopedLambda&lt;void __cdecl(void)&gt; &amp; beforeSleep={...}, const WTF::TimeWithDynamicClockType &amp; timeout={...}) Line 604	C++
&gt; WTF.dll!WTF::ParkingLot::parkConditionally&lt;bool &lt;lambda&gt;(void),void &lt;lambda&gt;(void)&gt;(const void * address=0x00007ffc1d0d1c28, const WTF::ParkingLot::compareAndPark::__l2::bool &lt;lambda&gt;(void) &amp; validation=bool &lt;lambda&gt;(void){...}, const WTF::ParkingLot::compareAndPark::__l2::void &lt;lambda&gt;(void) &amp; beforeSleep=void &lt;lambda&gt;(void){...}, const WTF::TimeWithDynamicClockType &amp; timeout={...}) Line 82	C++
&gt; WTF.dll!WTF::ParkingLot::compareAndPark&lt;unsigned char,unsigned char&gt;(const WTF::Atomic&lt;unsigned char&gt; * address=0x00007ffc1d0d1c28, unsigned char expected=&apos;\x3&apos;) Line 94	C++
&gt; WTF.dll!WTF::LockAlgorithm&lt;unsigned char,1,2,WTF::EmptyLockHooks&lt;unsigned char&gt;&gt;::lockSlow(WTF::Atomic&lt;unsigned char&gt; &amp; lock={...}) Line 83	C++
&gt; WTF.dll!WTF::Lock::lockSlow() Line 41	C++
&gt; TestWTFLib.dll!WTF::Lock::lock() Line 60	C++
&gt; TestWTFLib.dll!WTF::Locker&lt;WTF::Lock&gt;::lock() Line 114	C++
&gt; TestWTFLib.dll!WTF::Locker&lt;WTF::Lock&gt;::Locker&lt;WTF::Lock&gt;(WTF::Lock &amp; lockable={...}) Line 55	C++
&gt; TestWTFLib.dll!WTF::holdLock&lt;WTF::Lock&gt;(WTF::Lock &amp; lock={...}) Line 127	C++
&gt; TestWTFLib.dll!`TestWebKitAPI::WTF_Lock_Test1_Test::TestBody&apos;::`2&apos;::ThreadExitCallback::~ThreadExitCallback() Line 206	C++
&gt; TestWTFLib.dll!`TestWebKitAPI::WTF_Lock_Test1_Test::TestBody&apos;::`2&apos;::`dynamic atexit destructor for &apos;callback&apos;&apos;()	C++
&gt; TestWTFLib.dll!__dyn_tls_dtor(void * __formal=0x000000007ffe0385, const unsigned long dwReason, void * __formal) Line 119	C++
&gt; ntdll.dll!LdrpCallInitRoutine()	Unknown
&gt; ntdll.dll!LdrpCallTlsInitializers()	Unknown
&gt; ntdll.dll!LdrShutdownProcess()	Unknown
&gt; ntdll.dll!RtlExitUserProcess()	Unknown
&gt; kernel32.dll!ExitProcessImplementation()	Unknown
&gt; ucrtbase.dll!exit_or_terminate_process()	Unknown
&gt; ucrtbase.dll!common_exit()	Unknown
&gt; TestWTF.exe!__scrt_common_main_seh() Line 295	C++
&gt; kernel32.dll!BaseThreadInitThunk()	Unknown
&gt; ntdll.dll!RtlUserThreadStart()	Unknown</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1646397</commentid>
    <comment_count>5</comment_count>
      <attachid>397810</attachid>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2020-04-27 23:17:24 -0700</bug_when>
    <thetext>Created attachment 397810
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1647121</commentid>
    <comment_count>6</comment_count>
      <attachid>397810</attachid>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2020-04-29 13:06:53 -0700</bug_when>
    <thetext>Comment on attachment 397810
Patch

Clearing flags on attachment: 397810

Committed r260911: &lt;https://trac.webkit.org/changeset/260911&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1647122</commentid>
    <comment_count>7</comment_count>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2020-04-29 13:06:57 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1647129</commentid>
    <comment_count>8</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-04-29 13:19:16 -0700</bug_when>
    <thetext>Nice!</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>397633</attachid>
            <date>2020-04-26 16:27:22 -0700</date>
            <delta_ts>2020-04-27 23:17:10 -0700</delta_ts>
            <desc>Patch to do quick_exit</desc>
            <filename>quick-exit.diff</filename>
            <type>text/plain</type>
            <size>471</size>
            <attacher name="Fujii Hironori">fujii</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvRW50cnlQb2ludC93aW4v
TmV0d29ya1Byb2Nlc3NNYWluLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvRW50
cnlQb2ludC93aW4vTmV0d29ya1Byb2Nlc3NNYWluLmNwcAppbmRleCA5ZmJmMzUwZmMwNS4uODk3
ZDNlN2ViNjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvRW50cnlQ
b2ludC93aW4vTmV0d29ya1Byb2Nlc3NNYWluLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL0VudHJ5UG9pbnQvd2luL05ldHdvcmtQcm9jZXNzTWFpbi5jcHAKQEAgLTMyLDQg
KzMyLDUgQEAKIGludCBtYWluKGludCBhcmdjLCBjaGFyKiogYXJndikKIHsKICAgICBXZWJLaXQ6
Ok5ldHdvcmtQcm9jZXNzTWFpbihhcmdjLCBhcmd2KTsKKyAgICBzdGQ6OnF1aWNrX2V4aXQoRVhJ
VF9TVUNDRVNTKTsKIH0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>397643</attachid>
            <date>2020-04-26 22:01:26 -0700</date>
            <delta_ts>2020-04-27 23:17:12 -0700</delta_ts>
            <desc>Patch to TerminateProcess</desc>
            <filename>TerminateProcess.diff</filename>
            <type>text/plain</type>
            <size>559</size>
            <attacher name="Fujii Hironori">fujii</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvRW50cnlQb2ludC93aW4v
TmV0d29ya1Byb2Nlc3NNYWluLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvRW50
cnlQb2ludC93aW4vTmV0d29ya1Byb2Nlc3NNYWluLmNwcAppbmRleCA5ZmJmMzUwZmMwNS4uNGNl
OTgzYmQzMGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvRW50cnlQ
b2ludC93aW4vTmV0d29ya1Byb2Nlc3NNYWluLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL0VudHJ5UG9pbnQvd2luL05ldHdvcmtQcm9jZXNzTWFpbi5jcHAKQEAgLTMyLDQg
KzMyLDYgQEAKIGludCBtYWluKGludCBhcmdjLCBjaGFyKiogYXJndikKIHsKICAgICBXZWJLaXQ6
Ok5ldHdvcmtQcm9jZXNzTWFpbihhcmdjLCBhcmd2KTsKKyAgICAvLyBEZXN0cnVjdGluZyB0aHJl
YWRfbG9jYWwgb2JqZWN0cyBvZiB0aGUgbWFpbiB0aHJlYWQgY2F1c2VkIGRlYWRsb2NrLgorICAg
IFRlcm1pbmF0ZVByb2Nlc3MoR2V0Q3VycmVudFByb2Nlc3MoKSwgMCk7CiB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>397651</attachid>
            <date>2020-04-27 00:25:04 -0700</date>
            <delta_ts>2020-04-27 23:17:14 -0700</delta_ts>
            <desc>a test program to exit while other thread is locking a Lock</desc>
            <filename>test.diff</filename>
            <type>text/plain</type>
            <size>856</size>
            <attacher name="Fujii Hironori">fujii</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL0xvY2suY3BwIGIvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvTG9jay5jcHAKaW5kZXggYThmMDNiMDdkNjguLmNj
YjY1MTI1OWEyIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9Mb2Nr
LmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9Mb2NrLmNwcApAQCAtMTg1
LDQgKzE4NSwyNiBAQCBURVNUKFdURl9Mb2NrLCBTZWN0aW9uQWRkcmVzc0NvbGxpc2lvbikKICAg
ICBydW5Mb2NrVGVzdDxMb2NrPig0LCAyLCAxMDAwMCwgMjAwMCk7CiB9CiAKK1RFU1QoV1RGX0xv
Y2ssIFRlc3QxKQoreworICAgIHN0YXRpYyBMb2NrIGxvY2s7CisgICAgVGhyZWFkOjpjcmVhdGUo
CisgICAgICAgICJMb2NrIHRlc3QgdGhyZWFkIiwKKyAgICAgICAgICAgIFtdICgpIHsKKyAgICAg
ICAgICAgICAgICBhdXRvIGxvY2tlciA9IGhvbGRMb2NrKGxvY2spOworICAgICAgICAgICAgICAg
IFNsZWVwKDEwICogMTAwMCk7CisgICAgICAgICAgICB9KTsKKworICAgIHN0YXRpYyB0aHJlYWRf
bG9jYWwgY2xhc3MgVGhyZWFkRXhpdENhbGxiYWNrIHsKKyAgICBwdWJsaWM6CisgICAgICAgIFRo
cmVhZEV4aXRDYWxsYmFjayhMb2NrJiBsb2NrKSA6IG1fbG9jayhsb2NrKSB7IH0KKyAgICAgICAg
TG9jayYgbV9sb2NrOworCisgICAgICAgIH5UaHJlYWRFeGl0Q2FsbGJhY2soKQorICAgICAgICB7
CisgICAgICAgICAgICBhdXRvIGxvY2tlciA9IGhvbGRMb2NrKG1fbG9jayk7CisgICAgICAgIH0K
KyAgICB9IGNhbGxiYWNrKGxvY2spOworfQorCiB9IC8vIG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJ
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>397810</attachid>
            <date>2020-04-27 23:17:24 -0700</date>
            <delta_ts>2020-04-29 13:06:53 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-210955-20200428151722.patch</filename>
            <type>text/plain</type>
            <size>1827</size>
            <attacher name="Fujii Hironori">fujii</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYwNzI5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGRjNDEwNzIyZjNlMmQwMWRhZWRjZjk3
YmIxOGU2MTE1Mjk2NjdlZGYuLjc0NWQ1OWZlOTQzZDM0ZWU4ZmE0YWI4OWQyYTQzNzY1MjAyZjRi
ODIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMjAtMDQtMjcgIEZ1amlpIEhpcm9ub3JpICA8SGly
b25vcmkuRnVqaWlAc29ueS5jb20+CisKKyAgICAgICAgW1dpbl0gRGVhZGxvY2sgaW4gV1RGOjpU
aHJlYWQ6OmRpZEV4aXQoKSB3aGlsZSBXZWJLaXROZXR3b3JrUHJvY2Vzcy5leGUgaXMgZXhpdGlu
ZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjEwOTU1
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhlIHRo
cmVhZF9sb2NhbCBvYmplY3Qgb2YgdGhlIG1haW4gdGhyZWFkIGlzIGRlc3RydWN0ZWQgYWZ0ZXIK
KyAgICAgICAgV2luZG93cyB0ZXJtaW5hdGVzIG90aGVyIHRocmVhZHMuIElmIHRoZSB0ZXJtaW5h
dGVkIHRocmVhZCB3YXMKKyAgICAgICAgaG9sZGluZyBhIG11dGV4LCB0cnlpbmcgdG8gbG9jayB0
aGUgbXV0ZXggY2F1c2VzIGRlYWRsb2NrLgorCisgICAgICAgICogd3RmL3dpbi9UaHJlYWRpbmdX
aW4uY3BwOgorICAgICAgICAoV1RGOjpUaHJlYWQ6OlRocmVhZEhvbGRlcjo6flRocmVhZEhvbGRl
cik6IERvIG5vdGhpbmcgaWYgdGhlCisgICAgICAgIHRocmVhZCBpcyB0aGUgbWFpbiB0aHJlYWQu
CisKIDIwMjAtMDQtMjYgIEpvb25naHVuIFBhcmsgIDxqaDcxOC5wYXJrQHNhbXN1bmcuY29tPgog
CiAgICAgICAgIFtXVEZdIFdvcmthcm91bmQgZ2NjIGJ1ZyBmb3IgdW5zaWduZWQgYml0ZmllbGQg
cmVsYXRlZCB1c3VhbCBhcml0aG1ldGljIGNvbnZlcnNpb25zCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V1RGL3d0Zi93aW4vVGhyZWFkaW5nV2luLmNwcCBiL1NvdXJjZS9XVEYvd3RmL3dpbi9UaHJlYWRp
bmdXaW4uY3BwCmluZGV4IDEwMmE2NGU2YjRiMGVjNDQ2ZTIyOTU0NDQwMjQwYjQyMWQ2YmNlOTcu
LmQ2MzJmZWQ4MTExNjkzYjQ3MzUxZmVjMzQ5Yzk0ZmM4ZTRjNTVkYTggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XVEYvd3RmL3dpbi9UaHJlYWRpbmdXaW4uY3BwCisrKyBiL1NvdXJjZS9XVEYvd3RmL3dp
bi9UaHJlYWRpbmdXaW4uY3BwCkBAIC0yNjcsNiArMjY3LDEyIEBAIHZvaWQgVGhyZWFkOjplc3Rh
Ymxpc2hQbGF0Zm9ybVNwZWNpZmljSGFuZGxlKEhBTkRMRSBoYW5kbGUsIFRocmVhZElkZW50aWZp
ZXIgdGhyCiBzdHJ1Y3QgVGhyZWFkOjpUaHJlYWRIb2xkZXIgewogICAgIH5UaHJlYWRIb2xkZXIo
KQogICAgIHsKKyAgICAgICAgLy8gVGhlIHRocmVhZF9sb2NhbCBvYmplY3Qgb2YgdGhlIG1haW4g
dGhyZWFkIGlzIGRlc3RydWN0ZWQKKyAgICAgICAgLy8gYWZ0ZXIgV2luZG93cyB0ZXJtaW5hdGVz
IG90aGVyIHRocmVhZHMuIElmIHRoZSB0ZXJtaW5hdGVkCisgICAgICAgIC8vIHRocmVhZCB3YXMg
aG9sZGluZyBhIG11dGV4LCB0cnlpbmcgdG8gbG9jayB0aGUgbXV0ZXggY2F1c2VzCisgICAgICAg
IC8vIGRlYWRsb2NrLgorICAgICAgICBpZiAoaXNNYWluVGhyZWFkKCkpCisgICAgICAgICAgICBy
ZXR1cm47CiAgICAgICAgIGlmICh0aHJlYWQpIHsKICAgICAgICAgICAgIHRocmVhZC0+c3BlY2lm
aWNTdG9yYWdlKCkuZGVzdHJveVNsb3RzKCk7CiAgICAgICAgICAgICB0aHJlYWQtPmRpZEV4aXQo
KTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>