<?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>159931</bug_id>
          
          <creation_ts>2016-07-19 11:27:50 -0700</creation_ts>
          <short_desc>Fix a linking failure caused by NetworkCache::Data::~Data()</short_desc>
          <delta_ts>2026-03-02 02:05:54 -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>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>PC</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>CONFIGURATION CHANGED</resolution>
          
          
          <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="ChangSeok Oh">changseok</reporter>
          <assigned_to name="ChangSeok Oh">changseok</assigned_to>
          <cc>achristensen</cc>
    
    <cc>aperez</cc>
    
    <cc>cdumez</cc>
    
    <cc>cgarcia</cc>
    
    <cc>clopez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>jfernandez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1212438</commentid>
    <comment_count>0</comment_count>
    <who name="ChangSeok Oh">changseok</who>
    <bug_when>2016-07-19 11:27:50 -0700</bug_when>
    <thetext>A linking failure happens when building with clang 3.6.

&gt;[2068/2122] Linking CXX shared library lib/libwebkit2gtk-4.0.so.37.14.2
&gt;FAILED: : &amp;&amp; /home/changseok/Projects/api-sanitizer/bin/llvm/bin/clang++  -fPIC -Wno-error  -std=c++1y -fcolor-diagnostics -Qunused-arguments -g  -Wl,--no-undefined  -L/home/changseok/Projects/WebKit/WebKitBuild/DependenciesGTK/Root/lib  -fuse-ld=gold -Wl,--disable-new-dtags -fuse-ld=gold -Wl,--disable-new-dtags -shared -Wl,-soname,libwebkit2gtk-4.0.so.37 -o lib/libwebkit2gtk-4.0.so.37.14.2 @CMakeFiles/WebKit2.rsp  &amp;&amp; :
&gt;../../Source/WebKit2/NetworkProcess/cache/NetworkCacheSubresourcesEntry.cpp:76: error: undefined reference to &apos;WebKit::NetworkCache::Data::~Data()&apos;
&gt;clang-3.6: error: linker command failed with exit code 1 (use -v to see invocation)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1212439</commentid>
    <comment_count>1</comment_count>
      <attachid>284022</attachid>
    <who name="ChangSeok Oh">changseok</who>
    <bug_when>2016-07-19 11:32:51 -0700</bug_when>
    <thetext>Created attachment 284022
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1212441</commentid>
    <comment_count>2</comment_count>
      <attachid>284023</attachid>
    <who name="ChangSeok Oh">changseok</who>
    <bug_when>2016-07-19 11:36:26 -0700</bug_when>
    <thetext>Created attachment 284023
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1212442</commentid>
    <comment_count>3</comment_count>
      <attachid>284023</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2016-07-19 11:42:25 -0700</bug_when>
    <thetext>Comment on attachment 284023
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=284023&amp;action=review

&gt; Source/WebKit2/NetworkProcess/cache/NetworkCacheData.h:109
&gt; +    virtual ~Data() { }

Why would you make this class virtual??</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1212450</commentid>
    <comment_count>4</comment_count>
      <attachid>284023</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2016-07-19 11:53:34 -0700</bug_when>
    <thetext>Comment on attachment 284023
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=284023&amp;action=review

&gt;&gt; Source/WebKit2/NetworkProcess/cache/NetworkCacheData.h:109
&gt;&gt; +    virtual ~Data() { }
&gt; 
&gt; Why would you make this class virtual??

does &quot;~Data() = default;&quot; fix your build error?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1212499</commentid>
    <comment_count>5</comment_count>
    <who name="ChangSeok Oh">changseok</who>
    <bug_when>2016-07-19 13:37:27 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; Comment on attachment 284023 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=284023&amp;action=review
&gt; 
&gt; &gt;&gt; Source/WebKit2/NetworkProcess/cache/NetworkCacheData.h:109
&gt; &gt;&gt; +    virtual ~Data() { }
&gt; &gt; 
&gt; &gt; Why would you make this class virtual??
That is meaningless here. Removed.
 
&gt; 
&gt; does &quot;~Data() = default;&quot; fix your build error?
No, it doesn&apos;t work. It spawns other compile errors like...

../../Source/WebKit2/NetworkProcess/cache/NetworkCacheBlobStorage.cpp:99:29: error: attempt to use a deleted function
auto existingData = mapFile(blobPath.data());

../../Source/WebKit2/NetworkProcess/cache/NetworkCache.cpp:446:19: error: attempt to use a deleted function
auto record = cacheEntry-&gt;encodeAsStorageRecord();</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1212505</commentid>
    <comment_count>6</comment_count>
      <attachid>284043</attachid>
    <who name="ChangSeok Oh">changseok</who>
    <bug_when>2016-07-19 13:40:22 -0700</bug_when>
    <thetext>Created attachment 284043
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1212851</commentid>
    <comment_count>7</comment_count>
      <attachid>284043</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-07-20 13:04:03 -0700</bug_when>
    <thetext>Comment on attachment 284043
Patch

Clearing flags on attachment: 284043

Committed r203467: &lt;http://trac.webkit.org/changeset/203467&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1212852</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-07-20 13:04:07 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1212860</commentid>
    <comment_count>9</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2016-07-20 13:20:22 -0700</bug_when>
    <thetext>*** Bug 159264 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1212885</commentid>
    <comment_count>10</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2016-07-20 14:53:50 -0700</bug_when>
    <thetext>Why is this change needed? This kind of change should have no effect. Is this a compiler bug?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1212887</commentid>
    <comment_count>11</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2016-07-20 14:56:56 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; &gt; does &quot;~Data() = default;&quot; fix your build error?
&gt; No, it doesn&apos;t work. It spawns other compile errors like...
&gt; 
&gt; ../../Source/WebKit2/NetworkProcess/cache/NetworkCacheBlobStorage.cpp:99:29:
&gt; error: attempt to use a deleted function
&gt; auto existingData = mapFile(blobPath.data());
&gt; 
&gt; ../../Source/WebKit2/NetworkProcess/cache/NetworkCache.cpp:446:19: error:
&gt; attempt to use a deleted function
&gt; auto record = cacheEntry-&gt;encodeAsStorageRecord();

Those sound like what you would get if you tried &quot;~Data() = delete;&quot;, not &quot;~Data() = default;&quot;.

This change is highly suspect. Explicitly defining an empty inline constructor should have no effect!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1212999</commentid>
    <comment_count>12</comment_count>
    <who name="ChangSeok Oh">changseok</who>
    <bug_when>2016-07-20 19:35:19 -0700</bug_when>
    <thetext>(In reply to comment #11)
&gt; (In reply to comment #5)
&gt; &gt; &gt; does &quot;~Data() = default;&quot; fix your build error?
&gt; &gt; No, it doesn&apos;t work. It spawns other compile errors like...
&gt; &gt; 
&gt; &gt; ../../Source/WebKit2/NetworkProcess/cache/NetworkCacheBlobStorage.cpp:99:29:
&gt; &gt; error: attempt to use a deleted function
&gt; &gt; auto existingData = mapFile(blobPath.data());
&gt; &gt; 
&gt; &gt; ../../Source/WebKit2/NetworkProcess/cache/NetworkCache.cpp:446:19: error:
&gt; &gt; attempt to use a deleted function
&gt; &gt; auto record = cacheEntry-&gt;encodeAsStorageRecord();
&gt; 
&gt; Those sound like what you would get if you tried &quot;~Data() = delete;&quot;, not
&gt; &quot;~Data() = default;&quot;.
&gt; 
&gt; This change is highly suspect. Explicitly defining an empty inline
&gt; constructor should have no effect!

Nah.. An incorrect log mislead you. Here is correct full logs. Sorry about this confusion.

../../Source/WebKit2/NetworkProcess/cache/NetworkCache.cpp:410:19: error: attempt to use a deleted function
    auto record = cacheEntry-&gt;encodeAsStorageRecord();
                  ^
../../Source/WebKit2/NetworkProcess/cache/NetworkCacheStorage.h:58:14: note: destructor of &apos;Record&apos; is implicitly deleted because field &apos;header&apos; has a deleted destructor
        Data header;
             ^
../../Source/WebKit2/NetworkProcess/cache/NetworkCacheData.h:109:5: note: &apos;~Data&apos; has been explicitly marked deleted here
    ~Data() = delete;
    ^
../../Source/WebKit2/NetworkProcess/cache/NetworkCache.cpp:446:19: error: attempt to use a deleted function
    auto record = cacheEntry-&gt;encodeAsStorageRecord();
                  ^
../../Source/WebKit2/NetworkProcess/cache/NetworkCacheStorage.h:58:14: note: destructor of &apos;Record&apos; is implicitly deleted because field &apos;header&apos; has a deleted destructor
        Data header;
             ^
../../Source/WebKit2/NetworkProcess/cache/NetworkCacheData.h:109:5: note: &apos;~Data&apos; has been explicitly marked deleted here
    ~Data() = delete;
    ^
../../Source/WebKit2/NetworkProcess/cache/NetworkCache.cpp:461:25: error: attempt to use a deleted function
    auto updateRecord = updateEntry-&gt;encodeAsStorageRecord();
                        ^
../../Source/WebKit2/NetworkProcess/cache/NetworkCacheStorage.h:58:14: note: destructor of &apos;Record&apos; is implicitly deleted because field &apos;header&apos; has a deleted destructor
        Data header;
             ^
../../Source/WebKit2/NetworkProcess/cache/NetworkCacheData.h:109:5: note: &apos;~Data&apos; has been explicitly marked deleted here
    ~Data() = delete;
    ^
In file included from ../../Source/WebKit2/NetworkProcess/cache/NetworkCache.cpp:26:
In file included from ../../Source/WebKit2/config.h:44:
In file included from ../../Source/WTF/wtf/FastMalloc.h:26:
In file included from ../../Source/WTF/wtf/StdLibExtras.h:31:
In file included from /usr/lib/gcc/x86_64-redhat-linux/6.1.1/../../../../include/c++/6.1.1/memory:81:
/usr/lib/gcc/x86_64-redhat-linux/6.1.1/../../../../include/c++/6.1.1/bits/unique_ptr.h:76:2: error: attempt to use a deleted function
        delete __ptr;
        ^
/usr/lib/gcc/x86_64-redhat-linux/6.1.1/../../../../include/c++/6.1.1/bits/unique_ptr.h:236:4: note: in instantiation of member function &apos;std::default_delete&lt;WebKit::NetworkCache::Entry&gt;::operator()&apos; requested here
          get_deleter()(__ptr);
          ^
/usr/lib/gcc/x86_64-redhat-linux/6.1.1/../../../../include/c++/6.1.1/bits/unique_ptr.h:201:50: note: in instantiation of member function &apos;std::unique_ptr&lt;WebKit::NetworkCache::Entry, std::default_delete&lt;WebKit::NetworkCache::Entry&gt; &gt;::~unique_ptr&apos; requested here
      constexpr unique_ptr(nullptr_t) noexcept : unique_ptr() { }
                                                 ^
../../Source/WebKit2/NetworkProcess/cache/NetworkCacheEntry.h:92:21: note: destructor of &apos;Entry&apos; is implicitly deleted because field &apos;m_sourceStorageRecord&apos; has a deleted destructor
    Storage::Record m_sourceStorageRecord { };
                    ^
../../Source/WebKit2/NetworkProcess/cache/NetworkCacheStorage.h:58:14: note: destructor of &apos;Record&apos; is implicitly deleted because field &apos;header&apos; has a deleted destructor
        Data header;
             ^
../../Source/WebKit2/NetworkProcess/cache/NetworkCacheData.h:109:5: note: &apos;~Data&apos; has been explicitly marked deleted here
    ~Data() = delete;
    ^</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1213001</commentid>
    <comment_count>13</comment_count>
    <who name="ChangSeok Oh">changseok</who>
    <bug_when>2016-07-20 19:41:01 -0700</bug_when>
    <thetext>(In reply to comment #10)
&gt; Why is this change needed? This kind of change should have no effect. Is
&gt; this a compiler bug?

That is a possible suspicion. Because this linking issue was found with clang 3.6 which is far from the latest. Let me try recent one and leave a note about it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1213005</commentid>
    <comment_count>14</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2016-07-20 19:46:27 -0700</bug_when>
    <thetext>(In reply to comment #12)
&gt; (In reply to comment #11)
&gt; &gt; (In reply to comment #5)
&gt; &gt; &gt; &gt; does &quot;~Data() = default;&quot; fix your build error?
&gt; &gt; &gt; No, it doesn&apos;t work. It spawns other compile errors like...
&gt; &gt; &gt; 
&gt; &gt; &gt; ../../Source/WebKit2/NetworkProcess/cache/NetworkCacheBlobStorage.cpp:99:29:
&gt; &gt; &gt; error: attempt to use a deleted function
&gt; &gt; &gt; auto existingData = mapFile(blobPath.data());
&gt; &gt; &gt; 
&gt; &gt; &gt; ../../Source/WebKit2/NetworkProcess/cache/NetworkCache.cpp:446:19: error:
&gt; &gt; &gt; attempt to use a deleted function
&gt; &gt; &gt; auto record = cacheEntry-&gt;encodeAsStorageRecord();
&gt; &gt; 
&gt; &gt; Those sound like what you would get if you tried &quot;~Data() = delete;&quot;, not
&gt; &gt; &quot;~Data() = default;&quot;.
&gt; &gt; 
&gt; &gt; This change is highly suspect. Explicitly defining an empty inline
&gt; &gt; constructor should have no effect!
&gt; 
&gt; Nah.. An incorrect log mislead you. Here is correct full logs. Sorry about
&gt; this confusion.
&gt; 
&gt; ../../Source/WebKit2/NetworkProcess/cache/NetworkCache.cpp:410:19: error:
&gt; attempt to use a deleted function
&gt;     auto record = cacheEntry-&gt;encodeAsStorageRecord();
&gt;                   ^
&gt; ../../Source/WebKit2/NetworkProcess/cache/NetworkCacheStorage.h:58:14: note:
&gt; destructor of &apos;Record&apos; is implicitly deleted because field &apos;header&apos; has a
&gt; deleted destructor
&gt;         Data header;
&gt;              ^
&gt; ../../Source/WebKit2/NetworkProcess/cache/NetworkCacheData.h:109:5: note:
&gt; &apos;~Data&apos; has been explicitly marked deleted here
&gt;     ~Data() = delete;
&gt;     ^
&gt; ../../Source/WebKit2/NetworkProcess/cache/NetworkCache.cpp:446:19: error:
&gt; attempt to use a deleted function
&gt;     auto record = cacheEntry-&gt;encodeAsStorageRecord();
&gt;                   ^
&gt; ../../Source/WebKit2/NetworkProcess/cache/NetworkCacheStorage.h:58:14: note:
&gt; destructor of &apos;Record&apos; is implicitly deleted because field &apos;header&apos; has a
&gt; deleted destructor
&gt;         Data header;
&gt;              ^
&gt; ../../Source/WebKit2/NetworkProcess/cache/NetworkCacheData.h:109:5: note:
&gt; &apos;~Data&apos; has been explicitly marked deleted here
&gt;     ~Data() = delete;
&gt;     ^
&gt; ../../Source/WebKit2/NetworkProcess/cache/NetworkCache.cpp:461:25: error:
&gt; attempt to use a deleted function
&gt;     auto updateRecord = updateEntry-&gt;encodeAsStorageRecord();
&gt;                         ^
&gt; ../../Source/WebKit2/NetworkProcess/cache/NetworkCacheStorage.h:58:14: note:
&gt; destructor of &apos;Record&apos; is implicitly deleted because field &apos;header&apos; has a
&gt; deleted destructor
&gt;         Data header;
&gt;              ^
&gt; ../../Source/WebKit2/NetworkProcess/cache/NetworkCacheData.h:109:5: note:
&gt; &apos;~Data&apos; has been explicitly marked deleted here
&gt;     ~Data() = delete;
&gt;     ^
&gt; In file included from
&gt; ../../Source/WebKit2/NetworkProcess/cache/NetworkCache.cpp:26:
&gt; In file included from ../../Source/WebKit2/config.h:44:
&gt; In file included from ../../Source/WTF/wtf/FastMalloc.h:26:
&gt; In file included from ../../Source/WTF/wtf/StdLibExtras.h:31:
&gt; In file included from
&gt; /usr/lib/gcc/x86_64-redhat-linux/6.1.1/../../../../include/c++/6.1.1/memory:
&gt; 81:
&gt; /usr/lib/gcc/x86_64-redhat-linux/6.1.1/../../../../include/c++/6.1.1/bits/
&gt; unique_ptr.h:76:2: error: attempt to use a deleted function
&gt;         delete __ptr;
&gt;         ^
&gt; /usr/lib/gcc/x86_64-redhat-linux/6.1.1/../../../../include/c++/6.1.1/bits/
&gt; unique_ptr.h:236:4: note: in instantiation of member function
&gt; &apos;std::default_delete&lt;WebKit::NetworkCache::Entry&gt;::operator()&apos; requested here
&gt;           get_deleter()(__ptr);
&gt;           ^
&gt; /usr/lib/gcc/x86_64-redhat-linux/6.1.1/../../../../include/c++/6.1.1/bits/
&gt; unique_ptr.h:201:50: note: in instantiation of member function
&gt; &apos;std::unique_ptr&lt;WebKit::NetworkCache::Entry,
&gt; std::default_delete&lt;WebKit::NetworkCache::Entry&gt; &gt;::~unique_ptr&apos; requested
&gt; here
&gt;       constexpr unique_ptr(nullptr_t) noexcept : unique_ptr() { }
&gt;                                                  ^
&gt; ../../Source/WebKit2/NetworkProcess/cache/NetworkCacheEntry.h:92:21: note:
&gt; destructor of &apos;Entry&apos; is implicitly deleted because field
&gt; &apos;m_sourceStorageRecord&apos; has a deleted destructor
&gt;     Storage::Record m_sourceStorageRecord { };
&gt;                     ^
&gt; ../../Source/WebKit2/NetworkProcess/cache/NetworkCacheStorage.h:58:14: note:
&gt; destructor of &apos;Record&apos; is implicitly deleted because field &apos;header&apos; has a
&gt; deleted destructor
&gt;         Data header;
&gt;              ^
&gt; ../../Source/WebKit2/NetworkProcess/cache/NetworkCacheData.h:109:5: note:
&gt; &apos;~Data&apos; has been explicitly marked deleted here
&gt;     ~Data() = delete;
&gt;     ^

If you look at this last line, the compiler says you deleted the Data destructor:
~Data() = delete;

The workaround I suggested was:
~Data() = default;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1213006</commentid>
    <comment_count>15</comment_count>
    <who name="ChangSeok Oh">changseok</who>
    <bug_when>2016-07-20 19:50:04 -0700</bug_when>
    <thetext>(In reply to comment #14)
&gt; (In reply to comment #12)
&gt; &gt; (In reply to comment #11)
&gt; &gt; &gt; (In reply to comment #5)
&gt; &gt; &gt; &gt; &gt; does &quot;~Data() = default;&quot; fix your build error?
&gt; &gt; &gt; &gt; No, it doesn&apos;t work. It spawns other compile errors like...
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; ../../Source/WebKit2/NetworkProcess/cache/NetworkCacheBlobStorage.cpp:99:29:
&gt; &gt; &gt; &gt; error: attempt to use a deleted function
&gt; &gt; &gt; &gt; auto existingData = mapFile(blobPath.data());
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; ../../Source/WebKit2/NetworkProcess/cache/NetworkCache.cpp:446:19: error:
&gt; &gt; &gt; &gt; attempt to use a deleted function
&gt; &gt; &gt; &gt; auto record = cacheEntry-&gt;encodeAsStorageRecord();
&gt; &gt; &gt; 
&gt; &gt; &gt; Those sound like what you would get if you tried &quot;~Data() = delete;&quot;, not
&gt; &gt; &gt; &quot;~Data() = default;&quot;.
&gt; &gt; &gt; 
&gt; &gt; &gt; This change is highly suspect. Explicitly defining an empty inline
&gt; &gt; &gt; constructor should have no effect!
&gt; &gt; 
&gt; &gt; Nah.. An incorrect log mislead you. Here is correct full logs. Sorry about
&gt; &gt; this confusion.
&gt; &gt; 
&gt; &gt; ../../Source/WebKit2/NetworkProcess/cache/NetworkCache.cpp:410:19: error:
&gt; &gt; attempt to use a deleted function
&gt; &gt;     auto record = cacheEntry-&gt;encodeAsStorageRecord();
&gt; &gt;                   ^
&gt; &gt; ../../Source/WebKit2/NetworkProcess/cache/NetworkCacheStorage.h:58:14: note:
&gt; &gt; destructor of &apos;Record&apos; is implicitly deleted because field &apos;header&apos; has a
&gt; &gt; deleted destructor
&gt; &gt;         Data header;
&gt; &gt;              ^
&gt; &gt; ../../Source/WebKit2/NetworkProcess/cache/NetworkCacheData.h:109:5: note:
&gt; &gt; &apos;~Data&apos; has been explicitly marked deleted here
&gt; &gt;     ~Data() = delete;
&gt; &gt;     ^
&gt; &gt; ../../Source/WebKit2/NetworkProcess/cache/NetworkCache.cpp:446:19: error:
&gt; &gt; attempt to use a deleted function
&gt; &gt;     auto record = cacheEntry-&gt;encodeAsStorageRecord();
&gt; &gt;                   ^
&gt; &gt; ../../Source/WebKit2/NetworkProcess/cache/NetworkCacheStorage.h:58:14: note:
&gt; &gt; destructor of &apos;Record&apos; is implicitly deleted because field &apos;header&apos; has a
&gt; &gt; deleted destructor
&gt; &gt;         Data header;
&gt; &gt;              ^
&gt; &gt; ../../Source/WebKit2/NetworkProcess/cache/NetworkCacheData.h:109:5: note:
&gt; &gt; &apos;~Data&apos; has been explicitly marked deleted here
&gt; &gt;     ~Data() = delete;
&gt; &gt;     ^
&gt; &gt; ../../Source/WebKit2/NetworkProcess/cache/NetworkCache.cpp:461:25: error:
&gt; &gt; attempt to use a deleted function
&gt; &gt;     auto updateRecord = updateEntry-&gt;encodeAsStorageRecord();
&gt; &gt;                         ^
&gt; &gt; ../../Source/WebKit2/NetworkProcess/cache/NetworkCacheStorage.h:58:14: note:
&gt; &gt; destructor of &apos;Record&apos; is implicitly deleted because field &apos;header&apos; has a
&gt; &gt; deleted destructor
&gt; &gt;         Data header;
&gt; &gt;              ^
&gt; &gt; ../../Source/WebKit2/NetworkProcess/cache/NetworkCacheData.h:109:5: note:
&gt; &gt; &apos;~Data&apos; has been explicitly marked deleted here
&gt; &gt;     ~Data() = delete;
&gt; &gt;     ^
&gt; &gt; In file included from
&gt; &gt; ../../Source/WebKit2/NetworkProcess/cache/NetworkCache.cpp:26:
&gt; &gt; In file included from ../../Source/WebKit2/config.h:44:
&gt; &gt; In file included from ../../Source/WTF/wtf/FastMalloc.h:26:
&gt; &gt; In file included from ../../Source/WTF/wtf/StdLibExtras.h:31:
&gt; &gt; In file included from
&gt; &gt; /usr/lib/gcc/x86_64-redhat-linux/6.1.1/../../../../include/c++/6.1.1/memory:
&gt; &gt; 81:
&gt; &gt; /usr/lib/gcc/x86_64-redhat-linux/6.1.1/../../../../include/c++/6.1.1/bits/
&gt; &gt; unique_ptr.h:76:2: error: attempt to use a deleted function
&gt; &gt;         delete __ptr;
&gt; &gt;         ^
&gt; &gt; /usr/lib/gcc/x86_64-redhat-linux/6.1.1/../../../../include/c++/6.1.1/bits/
&gt; &gt; unique_ptr.h:236:4: note: in instantiation of member function
&gt; &gt; &apos;std::default_delete&lt;WebKit::NetworkCache::Entry&gt;::operator()&apos; requested here
&gt; &gt;           get_deleter()(__ptr);
&gt; &gt;           ^
&gt; &gt; /usr/lib/gcc/x86_64-redhat-linux/6.1.1/../../../../include/c++/6.1.1/bits/
&gt; &gt; unique_ptr.h:201:50: note: in instantiation of member function
&gt; &gt; &apos;std::unique_ptr&lt;WebKit::NetworkCache::Entry,
&gt; &gt; std::default_delete&lt;WebKit::NetworkCache::Entry&gt; &gt;::~unique_ptr&apos; requested
&gt; &gt; here
&gt; &gt;       constexpr unique_ptr(nullptr_t) noexcept : unique_ptr() { }
&gt; &gt;                                                  ^
&gt; &gt; ../../Source/WebKit2/NetworkProcess/cache/NetworkCacheEntry.h:92:21: note:
&gt; &gt; destructor of &apos;Entry&apos; is implicitly deleted because field
&gt; &gt; &apos;m_sourceStorageRecord&apos; has a deleted destructor
&gt; &gt;     Storage::Record m_sourceStorageRecord { };
&gt; &gt;                     ^
&gt; &gt; ../../Source/WebKit2/NetworkProcess/cache/NetworkCacheStorage.h:58:14: note:
&gt; &gt; destructor of &apos;Record&apos; is implicitly deleted because field &apos;header&apos; has a
&gt; &gt; deleted destructor
&gt; &gt;         Data header;
&gt; &gt;              ^
&gt; &gt; ../../Source/WebKit2/NetworkProcess/cache/NetworkCacheData.h:109:5: note:
&gt; &gt; &apos;~Data&apos; has been explicitly marked deleted here
&gt; &gt;     ~Data() = delete;
&gt; &gt;     ^
&gt; 
&gt; If you look at this last line, the compiler says you deleted the Data
&gt; destructor:
&gt; ~Data() = delete;
&gt; 
&gt; The workaround I suggested was:
&gt; ~Data() = default;

Oh.. my terrible mistake. Let me fix it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1213007</commentid>
    <comment_count>16</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2016-07-20 19:51:09 -0700</bug_when>
    <thetext>That said, I agree with Darin that it looks like a compiler/linker bug as there is no reason we should need an explicit destructor here :/</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1213052</commentid>
    <comment_count>17</comment_count>
    <who name="Javier Fernandez">jfernandez</who>
    <bug_when>2016-07-20 23:05:00 -0700</bug_when>
    <thetext>(In reply to comment #16)
&gt; That said, I agree with Darin that it looks like a compiler/linker bug as
&gt; there is no reason we should need an explicit destructor here :/

I&apos;ve been investigating this issue in bug #159264 and I think the proposed patch here is not correct. As darin suggested it seems a compiler bug because just doing a change like this avoids the compilation error:

diff --git a/Source/WebKit2/NetworkProcess/cache/NetworkCacheSubresourcesEntry.cpp b/Source/WebKit2/NetworkProcess/cache/NetworkCacheSubresourcesEntry.cpp
index 4726979..c4bea12 100644
--- a/Source/WebKit2/NetworkProcess/cache/NetworkCacheSubresourcesEntry.cpp
+++ b/Source/WebKit2/NetworkProcess/cache/NetworkCacheSubresourcesEntry.cpp
@@ -72,7 +72,7 @@ Storage::Record SubresourcesEntry::encodeAsStorageRecord() const
 
     encoder.encodeChecksum();
 
-    return { m_key, m_timeStamp, { encoder.buffer(), encoder.bufferSize() } , { } };
+    return { m_key, m_timeStamp, { encoder.buffer(), encoder.bufferSize() } , Data() };</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1213123</commentid>
    <comment_count>18</comment_count>
    <who name="ChangSeok Oh">changseok</who>
    <bug_when>2016-07-21 06:57:56 -0700</bug_when>
    <thetext>O.K This needs more touch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1213580</commentid>
    <comment_count>19</comment_count>
    <who name="ChangSeok Oh">changseok</who>
    <bug_when>2016-07-22 08:57:22 -0700</bug_when>
    <thetext>I confirmed that clang3.6-3.9 have the same issue. I also tried ~Data() = *default*, but it was not helpful for the linking failure. Instead Javier&apos;s approach worked. If his fix mitigates everyone&apos;s concern, I am ok with it. 

Javier, feel free to take over this ticket from me. Of course, I can lend my hand to land your fix.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1213642</commentid>
    <comment_count>20</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2016-07-22 11:16:25 -0700</bug_when>
    <thetext>(In reply to comment #19)
&gt; I confirmed that clang3.6-3.9 have the same issue. I also tried ~Data() =
&gt; *default*, but it was not helpful for the linking failure. Instead Javier&apos;s
&gt; approach worked. If his fix mitigates everyone&apos;s concern, I am ok with it. 

Now that it’s confirmed that this is a compiler bug that we are working around, I don’t have a preference for which of the two workarounds we use. But I do want a comment indicating that this is a workaround for a clang compiler bug and I would like someone to remove this when we no longer need to support the compiler with the bug. And ideally someone would report this to the clang project and we would track when it&apos;s fixed too.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1214515</commentid>
    <comment_count>21</comment_count>
    <who name="Javier Fernandez">jfernandez</who>
    <bug_when>2016-07-26 05:51:12 -0700</bug_when>
    <thetext>(In reply to comment #19)
&gt; I confirmed that clang3.6-3.9 have the same issue. I also tried ~Data() =
&gt; *default*, but it was not helpful for the linking failure. Instead Javier&apos;s
&gt; approach worked. If his fix mitigates everyone&apos;s concern, I am ok with it. 
&gt; 
&gt; Javier, feel free to take over this ticket from me. Of course, I can lend my
&gt; hand to land your fix.

I really don&apos;t mind doing it. I still failed to reproduce the clang bug with some reduced test case, though. I&apos;m a bit busy these days, but I think I can do land a workaround during this week, if you don&apos;t do it before.

Anyway, if you end up implemented a similar approach to my workaround, I think it&apos;d be better to avoid completely the aggregate-initialization of both Data arguments; it seems the bug is bypassed by just using an explicit instantiation on of of the Data fields, but I think it&apos;d clearer doing it with both.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1575064</commentid>
    <comment_count>22</comment_count>
    <who name="Adrian Perez">aperez</who>
    <bug_when>2019-09-28 12:04:01 -0700</bug_when>
    <thetext>Provided that nowadays Clang is at version 9.0, maybe this
bug is not relevant anymore. What do you think? Is this
relevant anymore?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2186068</commentid>
    <comment_count>23</comment_count>
    <who name="Adrian Perez">aperez</who>
    <bug_when>2026-03-02 02:05:54 -0800</bug_when>
    <thetext>Closing due to radio silence, and FWIW we currently require Clang 18 and this is
not an issue anymore.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>284022</attachid>
            <date>2016-07-19 11:32:51 -0700</date>
            <delta_ts>2016-07-19 11:36:21 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-159931-20160719143154.patch</filename>
            <type>text/plain</type>
            <size>1428</size>
            <attacher name="ChangSeok Oh">changseok</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjAzMzkzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggNzJkZjcwODFlZjBjZjMy
NjRmOTUxMGVkNjIwMzhmOTdlOWIwOGI1YS4uMjE4ZTM5NjcwODk3ZDZjNzk2NWI4ZTI4YWE5MTVk
ZmMwNDBkYmU3OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDE2LTA3LTE5ICBDaGFu
Z1Nlb2sgT2ggIDxjaGFuZ3Nlb2tAd2Via2l0Lm9yZz4KKworICAgICAgICBGaXggYSBsaW5raW5n
IGZhaWx1cmUgY2F1c2VkIGJ5IE5ldHdvcmtDYWNoZTo6RGF0YTo6fkRhdGEoKQorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU5OTMxCisKKyAgICAgICAg
TGlua2luZyBpcyBmYWlsZWQgd2l0aCBjbGFuZyAzLjYuIEl0IHNheXMgV2ViS2l0OjpOZXR3b3Jr
Q2FjaGU6OkRhdGE6On5EYXRhIGlzIHVuZGVmaW5lZC4KKyAgICAgICAgSXQgaXMgZml4ZWQgYnkg
YWRkaW5nIGEgZGVzdHJ1Y3RvciBmb3IgTmV0d29ya0NhY2hlOjpEYXRhLiAKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL2Nh
Y2hlL05ldHdvcmtDYWNoZURhdGEuaDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0NhY2hlOjpE
YXRhOjp+RGF0YSk6CisKIDIwMTYtMDctMTggIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5z
ZW5Ad2Via2l0Lm9yZz4KIAogICAgICAgICB3ZWJib29rbWFya3NkIG5lZWRzIHRvIHVzZSB0aGUg
c2FtZSBBcHBDYWNoZSBkaXJlY3RvcnkgYXMgTW9iaWxlU2FmYXJpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVEYXRhLmggYi9Tb3Vy
Y2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVEYXRhLmgKaW5kZXgg
MjI1NTg5ODU0ZGE0NzA2OGZmYzQ5ZmY2MGM1OTAxNGM4OTdmYmQ0OS4uYmY0OTFjYTlhYmNhOTcy
MWE2Y2E5ODE1ZWFhODRlY2VjNTUwZTc2OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvTmV0
d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlRGF0YS5oCisrKyBiL1NvdXJjZS9XZWJLaXQy
L05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZURhdGEuaApAQCAtMTA2LDYgKzEwNiw4
IEBAIHB1YmxpYzoKICAgICBEYXRhKCkgeyB9CiAgICAgRGF0YShjb25zdCB1aW50OF90Kiwgc2l6
ZV90KTsKIAorICAgIHZpcnR1YWwgfkRhdGEoKSB7IH0KKwogICAgIHN0YXRpYyBEYXRhIGVtcHR5
KCk7CiAgICAgc3RhdGljIERhdGEgYWRvcHRNYXAodm9pZCogbWFwLCBzaXplX3QsIGludCBmZCk7
CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>284023</attachid>
            <date>2016-07-19 11:36:26 -0700</date>
            <delta_ts>2016-07-19 13:40:17 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-159931-20160719143529.patch</filename>
            <type>text/plain</type>
            <size>1427</size>
            <attacher name="ChangSeok Oh">changseok</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjAzMzkzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggNzJkZjcwODFlZjBjZjMy
NjRmOTUxMGVkNjIwMzhmOTdlOWIwOGI1YS4uMmIxYTEyNDRiNmU4NDdjNTFjMzk5NzI0M2UxMTli
MWQ5MDhhN2YwNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDE2LTA3LTE5ICBDaGFu
Z1Nlb2sgT2ggIDxjaGFuZ3Nlb2tAd2Via2l0Lm9yZz4KKworICAgICAgICBGaXggYSBsaW5raW5n
IGZhaWx1cmUgY2F1c2VkIGJ5IE5ldHdvcmtDYWNoZTo6RGF0YTo6fkRhdGEoKQorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU5OTMxCisKKyAgICAgICAg
TGlua2luZyBpcyBmYWlsZWQgd2l0aCBjbGFuZyAzLjYuIEl0IHNheXMgV2ViS2l0OjpOZXR3b3Jr
Q2FjaGU6OkRhdGE6On5EYXRhIGlzIHVuZGVmaW5lZC4KKyAgICAgICAgSXQgaXMgZml4ZWQgYnkg
YWRkaW5nIGEgZGVzdHJ1Y3RvciBmb3IgTmV0d29ya0NhY2hlOjpEYXRhLgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvY2Fj
aGUvTmV0d29ya0NhY2hlRGF0YS5oOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrQ2FjaGU6OkRh
dGE6On5EYXRhKToKKwogMjAxNi0wNy0xOCAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNl
bkB3ZWJraXQub3JnPgogCiAgICAgICAgIHdlYmJvb2ttYXJrc2QgbmVlZHMgdG8gdXNlIHRoZSBz
YW1lIEFwcENhY2hlIGRpcmVjdG9yeSBhcyBNb2JpbGVTYWZhcmkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZURhdGEuaCBiL1NvdXJj
ZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZURhdGEuaAppbmRleCAy
MjU1ODk4NTRkYTQ3MDY4ZmZjNDlmZjYwYzU5MDE0Yzg5N2ZiZDQ5Li5iZjQ5MWNhOWFiY2E5NzIx
YTZjYTk4MTVlYWE4NGVjZWM1NTBlNzY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3
b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVEYXRhLmgKKysrIGIvU291cmNlL1dlYktpdDIv
TmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlRGF0YS5oCkBAIC0xMDYsNiArMTA2LDgg
QEAgcHVibGljOgogICAgIERhdGEoKSB7IH0KICAgICBEYXRhKGNvbnN0IHVpbnQ4X3QqLCBzaXpl
X3QpOwogCisgICAgdmlydHVhbCB+RGF0YSgpIHsgfQorCiAgICAgc3RhdGljIERhdGEgZW1wdHko
KTsKICAgICBzdGF0aWMgRGF0YSBhZG9wdE1hcCh2b2lkKiBtYXAsIHNpemVfdCwgaW50IGZkKTsK
IAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>284043</attachid>
            <date>2016-07-19 13:40:22 -0700</date>
            <delta_ts>2016-07-20 13:04:03 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-159931-20160719163925.patch</filename>
            <type>text/plain</type>
            <size>1419</size>
            <attacher name="ChangSeok Oh">changseok</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjAzMzkzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggNzJkZjcwODFlZjBjZjMy
NjRmOTUxMGVkNjIwMzhmOTdlOWIwOGI1YS4uMmIxYTEyNDRiNmU4NDdjNTFjMzk5NzI0M2UxMTli
MWQ5MDhhN2YwNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDE2LTA3LTE5ICBDaGFu
Z1Nlb2sgT2ggIDxjaGFuZ3Nlb2tAd2Via2l0Lm9yZz4KKworICAgICAgICBGaXggYSBsaW5raW5n
IGZhaWx1cmUgY2F1c2VkIGJ5IE5ldHdvcmtDYWNoZTo6RGF0YTo6fkRhdGEoKQorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU5OTMxCisKKyAgICAgICAg
TGlua2luZyBpcyBmYWlsZWQgd2l0aCBjbGFuZyAzLjYuIEl0IHNheXMgV2ViS2l0OjpOZXR3b3Jr
Q2FjaGU6OkRhdGE6On5EYXRhIGlzIHVuZGVmaW5lZC4KKyAgICAgICAgSXQgaXMgZml4ZWQgYnkg
YWRkaW5nIGEgZGVzdHJ1Y3RvciBmb3IgTmV0d29ya0NhY2hlOjpEYXRhLgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvY2Fj
aGUvTmV0d29ya0NhY2hlRGF0YS5oOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrQ2FjaGU6OkRh
dGE6On5EYXRhKToKKwogMjAxNi0wNy0xOCAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNl
bkB3ZWJraXQub3JnPgogCiAgICAgICAgIHdlYmJvb2ttYXJrc2QgbmVlZHMgdG8gdXNlIHRoZSBz
YW1lIEFwcENhY2hlIGRpcmVjdG9yeSBhcyBNb2JpbGVTYWZhcmkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZURhdGEuaCBiL1NvdXJj
ZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZURhdGEuaAppbmRleCAy
MjU1ODk4NTRkYTQ3MDY4ZmZjNDlmZjYwYzU5MDE0Yzg5N2ZiZDQ5Li42MWNiODNkNmRhZmRhZmJk
M2IxZGNjNjBiMWVmNmM5MDYwNGIzNmVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3
b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVEYXRhLmgKKysrIGIvU291cmNlL1dlYktpdDIv
TmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlRGF0YS5oCkBAIC0xMDYsNiArMTA2LDgg
QEAgcHVibGljOgogICAgIERhdGEoKSB7IH0KICAgICBEYXRhKGNvbnN0IHVpbnQ4X3QqLCBzaXpl
X3QpOwogCisgICAgfkRhdGEoKSB7IH0KKwogICAgIHN0YXRpYyBEYXRhIGVtcHR5KCk7CiAgICAg
c3RhdGljIERhdGEgYWRvcHRNYXAodm9pZCogbWFwLCBzaXplX3QsIGludCBmZCk7CiAK
</data>

          </attachment>
      

    </bug>

</bugzilla>