<?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>79785</bug_id>
          
          <creation_ts>2012-02-28 07:00:16 -0800</creation_ts>
          <short_desc>[Qt] WebKit with Qt5 hangs on Mac</short_desc>
          <delta_ts>2012-05-15 10:59:54 -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>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>OS X 10.7</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>Qt, QtTriaged</keywords>
          <priority>P1</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Balazs Kelemen">kbalazs</reporter>
          <assigned_to name="Caio Marcelo de Oliveira Filho">cmarcelo</assigned_to>
          <cc>ahf</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>vestbo</cc>
    
    <cc>zeno</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>566625</commentid>
    <comment_count>0</comment_count>
    <who name="Balazs Kelemen">kbalazs</who>
    <bug_when>2012-02-28 07:00:16 -0800</bug_when>
    <thetext>Either start QtTestBrowser, MiniBrowser or DumpRenderTree it hangs, the main thread is in dead lock:

#0  0x00007fff90066bca in __psynch_cvwait ()
#1  0x00007fff8caac274 in _pthread_cond_wait ()
#2  0x0000000102c5ee46 in QWaitConditionPrivate::wait ()
#3  0x0000000102c5ec5f in QWaitCondition::wait ()
#4  0x0000000102c5892e in QSemaphore::acquire ()
#5  0x0000000102d84b0d in QMetaMethod::invoke ()
#6  0x0000000102d841c8 in QMetaObject::invokeMethod ()
#7  0x00000001036e57f2 in QNetworkConfigurationManagerPrivate::updateConfigurations ()
#8  0x00000001036e3243 in qNetworkConfigurationManagerPrivate ()
#9  0x00000001036e3397 in QNetworkConfigurationManager::QNetworkConfigurationManager ()
#10 0x0000000100900a0b in WebCore::NetworkStateNotifierPrivate::NetworkStateNotifierPrivate ()
#11 0x0000000100900cae in WebCore::NetworkStateNotifier::NetworkStateNotifier ()
#12 0x0000000100770c3a in WebCore::networkStateNotifier ()
#13 0x0000000100700c87 in WebCore::Page::Page ()
#14 0x00000001000728ed in QWebPagePrivate::QWebPagePrivate ()
#15 0x000000010007b52d in QWebPage::QWebPage ()
#16 0x00000001000071db in WebCore::WebPage::WebPage ()
#17 0x0000000100008a7c in WebCore::DumpRenderTree::DumpRenderTree ()
#18 0x0000000100019690 in main ()

I use the weekly pinned hashes (7f8c9b7eaf9efcda699d4f170cb72f5c2cb71a1d) on OS X Lion.
Simple examples do work with my Qt5 build.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>566745</commentid>
    <comment_count>1</comment_count>
    <who name="Balazs Kelemen">kbalazs</who>
    <bug_when>2012-02-28 08:55:12 -0800</bug_when>
    <thetext>I have debugged it a bit further so here are my founds. 
in QNetworkConfigurationManagerPrivate::updateConfigurations there is this:

foreach (QBearerEngine* engine, enginesToInitialize) {
    QMetaObject::invokeMethod(engine, &quot;initialize&quot;, Qt::BlockingQueuedConnection);
}

This waits until the engine initializing on the bearer thread, but that thread gets blocked during this initialization:

#0  0x00007fff90066bf2 in __psynch_mutexwait ()
#1  0x00007fff8caa71a1 in pthread_mutex_lock ()
#2  0x00007fff8cdb4e9a in __cxa_guard_acquire ()
#3  0x0000000109324cfd in manager () at qnetworkinterface.cpp:82
#4  0x0000000109324eab in QNetworkInterface::allInterfaces () at qnetworkinterface.cpp:544
#5  0x000000010f0beeed in QGenericEngine::doRequestUpdate (this=0x110903640) at qgenericengine.cpp:199
#6  0x000000010f0beea5 in QGenericEngine::initialize (this=0x110903640) at qgenericengine.cpp:182
#7  0x000000010f0c9f25 in QGenericEngine::qt_static_metacall (_o=0x110903640, _c=QMetaObject::InvokeMetaMethod, _id=1, _a=0x7fff5fbfde60) at moc_qgenericengine.cpp:55
#8  0x000000010807248e in QMetaCallEvent::placeMetaCall (this=0x10f511950, object=0x110903640) at qobject.cpp:436

I don&apos;t know the reason of this second deadlock. Do you think I should file it into JIRA? Do you have an idea how to create an example that reproduce this? I don&apos;t see anything in WebKit that seems to be responsible. The Qt network examples do not reproduce it though.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>566752</commentid>
    <comment_count>2</comment_count>
    <who name="Tor Arne Vestbø">vestbo</who>
    <bug_when>2012-02-28 08:58:16 -0800</bug_when>
    <thetext>Interesting. You might be able to reproduce using QNetworkConfigurationManager directly. Try a JIRA bug and see what the responsible people say, perhaps they have some hints.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>566801</commentid>
    <comment_count>3</comment_count>
    <who name="Balazs Kelemen">kbalazs</who>
    <bug_when>2012-02-28 09:44:30 -0800</bug_when>
    <thetext>Filed https://bugreports.qt-project.org/browse/QTBUG-24554</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>601146</commentid>
    <comment_count>4</comment_count>
    <who name="Balazs Kelemen">kbalazs</who>
    <bug_when>2012-04-12 06:05:24 -0700</bug_when>
    <thetext>Fixed in Qt.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>601199</commentid>
    <comment_count>5</comment_count>
    <who name="Zeno Albisser">zeno</who>
    <bug_when>2012-04-12 07:13:36 -0700</bug_when>
    <thetext>Actually this issue is not really fixed in Qt.
It is a race condition in local static initialization.

Compilers on mac actually put a cxa_guard around local static initializers, unless the created type is POD.
It seems that for these cxa_guards there is only one mutex for all local statics being used process wide, instead of one mutex per definition.
This means that whenever one thread is waiting in a static initialization, for another thread to initialize another local static variable, this will lead to a deadlock.
Unfortunately such local static initializers are used in Q_GLOBAL_STATIC macro which is used frequently in Qt.
I filed a bug report about this to apple. - I hope we will see this fixed in the compiler soon.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>623308</commentid>
    <comment_count>6</comment_count>
    <who name="Caio Marcelo de Oliveira Filho">cmarcelo</who>
    <bug_when>2012-05-14 14:06:56 -0700</bug_when>
    <thetext>(In reply to comment #5)

&gt; Unfortunately such local static initializers are used in Q_GLOBAL_STATIC macro which is used frequently in Qt.
&gt; I filed a bug report about this to apple. - I hope we will see this fixed in the compiler soon.

Zeno, any updates on your report? Is it publicly available?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>623606</commentid>
    <comment_count>7</comment_count>
    <who name="Caio Marcelo de Oliveira Filho">cmarcelo</who>
    <bug_when>2012-05-14 20:51:01 -0700</bug_when>
    <thetext>It&apos;s broken again for Lion.

Zeno, I&apos;ve added more information in the corresponding QTBUG.

My feeling is that we can make a workaround here to get WebKit moving forward, then depending on the follow up from your report to Apple: either remove the workaround when possible or try to &quot;fix&quot; Qt by making sure we trigger QIconvCodec&apos;s Q_GLOBAL_STATIC in the right thread. What do you think?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>623840</commentid>
    <comment_count>8</comment_count>
    <who name="Zeno Albisser">zeno</who>
    <bug_when>2012-05-15 02:38:23 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; It&apos;s broken again for Lion.
&gt; 
&gt; Zeno, I&apos;ve added more information in the corresponding QTBUG.
&gt; 
&gt; My feeling is that we can make a workaround here to get WebKit moving forward, then depending on the follow up from your report to Apple: either remove the workaround when possible or try to &quot;fix&quot; Qt by making sure we trigger QIconvCodec&apos;s Q_GLOBAL_STATIC in the right thread. What do you think?

The radar issue is unfortunately not visible to the public.
We can possibly come up with a workaround for this particular case. But the macro is used in several places. So even if we workaround this specific issue, we might end up having the same issue somewhere else in a week.
I see only two ways to get this issue fixed.
- Wait until the compiler is fixed. (probably not a good idea)
- Change Q_GLOBAL_STATIC macro in Qt. (i&apos;m not sure this is actually possible)

Does anybody have a good suggestion?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>623846</commentid>
    <comment_count>9</comment_count>
    <who name="Tor Arne Vestbø">vestbo</who>
    <bug_when>2012-05-15 02:46:55 -0700</bug_when>
    <thetext>(In reply to comment #8)
&gt; The radar issue is unfortunately not visible to the public.

Perhaps make a dupe here: http://openradar.appspot.com/

tor arne</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>623857</commentid>
    <comment_count>10</comment_count>
    <who name="Zeno Albisser">zeno</who>
    <bug_when>2012-05-15 03:07:28 -0700</bug_when>
    <thetext>(In reply to comment #9)
&gt; (In reply to comment #8)
&gt; &gt; The radar issue is unfortunately not visible to the public.
&gt; 
&gt; Perhaps make a dupe here: http://openradar.appspot.com/
&gt; 
&gt; tor arne

http://openradar.appspot.com/11217150</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>624004</commentid>
    <comment_count>11</comment_count>
    <who name="Caio Marcelo de Oliveira Filho">cmarcelo</who>
    <bug_when>2012-05-15 06:42:00 -0700</bug_when>
    <thetext>I&apos;m working on a potential fix for this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>624096</commentid>
    <comment_count>12</comment_count>
      <attachid>141972</attachid>
    <who name="Caio Marcelo de Oliveira Filho">cmarcelo</who>
    <bug_when>2012-05-15 08:07:23 -0700</bug_when>
    <thetext>Created attachment 141972
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>624270</commentid>
    <comment_count>13</comment_count>
    <who name="Caio Marcelo de Oliveira Filho">cmarcelo</who>
    <bug_when>2012-05-15 10:59:54 -0700</bug_when>
    <thetext>Committed r117094: &lt;http://trac.webkit.org/changeset/117094&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>141972</attachid>
            <date>2012-05-15 08:07:23 -0700</date>
            <delta_ts>2012-05-15 08:22:43 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-79785-20120515120720.patch</filename>
            <type>text/plain</type>
            <size>6669</size>
            <attacher name="Caio Marcelo de Oliveira Filho">cmarcelo</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE3MDU4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNWQwNjcyODQ1OTJhNzVi
MWVkMTVlMWJmYTlmM2U5YTdhMjg5NDFkYy4uNTg3MWNmODcyNjM5MDk5OWY2MWVjMzkyM2YwMjNl
ZmUwMTVlOGQ2OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDEyLTA1LTE1ICBDYWlv
IE1hcmNlbG8gZGUgT2xpdmVpcmEgRmlsaG8gIDxjYWlvLm9saXZlaXJhQG9wZW5ib3NzYS5vcmc+
CisKKyAgICAgICAgW1F0XSBXZWJLaXQgd2l0aCBRdDUgaGFuZ3Mgb24gTWFjCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03OTc4NQorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIERlbGF5IHRoZSBpbml0aWFsaXph
dGlvbiBvZiBvdXIgUU5ldHdvcmtDb25maWd1cmF0aW9uTWFuYWdlciB1c2VkIGluCisgICAgICAg
IE5ldHdvcmtTdGF0ZU5vdGlmaWVyUHJpdmF0ZS4gT24gTWFjIGl0IHdhcyBjYXVzaW5nIGEgcmFj
ZSBjb25kaXRpb24gYmVjYXVzZSBpdAorICAgICAgICBzcGF3bnMgYSB0aHJlYWQgdGhhdCB0cmln
Z2VycyBhIHN0YXRpYyBpbml0aWFsaXplciBpbiBRdCwgd2hpbGUgaW4gdGhlIG1haW4KKyAgICAg
ICAgdGhyZWFkIE5ldHdvcmtTdGF0ZU5vdGlmaWVyIGlzIGJlaW5nIHN0YXRpYyBpbml0aWFsaXpl
ZC4gT24gTWFjIHRoZSBsb2NrIGZvcgorICAgICAgICBzdGF0aWMgaW5pdGlhbGl6ZXJzIGlzIHNo
YXJlZCBiZXR3ZWVuIGFsbCBvZiB0aGVtLCBjYXVzaW5nIGEgZGVhZGxvY2suCisKKyAgICAgICAg
VGhlIGlzc3VlIHdhcyBhbHNvIHJlcG9ydGVkIGluIGh0dHA6Ly9vcGVucmFkYXIuYXBwc3BvdC5j
b20vMTEyMTcxNTAuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL3F0L05ldHdvcmtTdGF0
ZU5vdGlmaWVyUHJpdmF0ZS5oOgorICAgICAgICAoTmV0d29ya1N0YXRlTm90aWZpZXJQcml2YXRl
KToKKyAgICAgICAgKFdlYkNvcmU6Ok5ldHdvcmtTdGF0ZU5vdGlmaWVyUHJpdmF0ZTo6ZWZmZWN0
aXZlbHlPbmxpbmUpOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvcXQvTmV0d29ya1N0YXRl
Tm90aWZpZXJRdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpOZXR3b3JrU3RhdGVOb3RpZmllclBy
aXZhdGU6Ok5ldHdvcmtTdGF0ZU5vdGlmaWVyUHJpdmF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpO
ZXR3b3JrU3RhdGVOb3RpZmllclByaXZhdGU6OnNldE5ldHdvcmtBY2Nlc3NBbGxvd2VkKToKKyAg
ICAgICAgKFdlYkNvcmU6Ok5ldHdvcmtTdGF0ZU5vdGlmaWVyUHJpdmF0ZTo6c2V0T25saW5lU3Rh
dGUpOgorICAgICAgICAoV2ViQ29yZTo6TmV0d29ya1N0YXRlTm90aWZpZXJQcml2YXRlOjppbml0
aWFsaXplKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6TmV0d29ya1N0
YXRlTm90aWZpZXJQcml2YXRlOjp+TmV0d29ya1N0YXRlTm90aWZpZXJQcml2YXRlKToKKyAgICAg
ICAgKFdlYkNvcmU6Ok5ldHdvcmtTdGF0ZU5vdGlmaWVyOjp1cGRhdGVTdGF0ZSk6CisgICAgICAg
IChXZWJDb3JlOjpOZXR3b3JrU3RhdGVOb3RpZmllcjo6TmV0d29ya1N0YXRlTm90aWZpZXIpOgor
ICAgICAgICAoV2ViQ29yZTo6TmV0d29ya1N0YXRlTm90aWZpZXI6OnNldE5ldHdvcmtBY2Nlc3NB
bGxvd2VkKToKKwogMjAxMi0wNS0xNSAgWm9sdGFuIEhlcmN6ZWcgIDx6aGVyY3plZ0B3ZWJraXQu
b3JnPgogCiAgICAgICAgIE5FT05pemluZyBmb3JjZVZhbGlkUHJlTXVsdGlwbGllZFBpeGVscwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9xdC9OZXR3b3JrU3Rh
dGVOb3RpZmllclByaXZhdGUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvcXQv
TmV0d29ya1N0YXRlTm90aWZpZXJQcml2YXRlLmgKaW5kZXggNGI4MjUyYzYzN2NhZjAwZGVhODAw
ZWI5YzU1ZDllNjcxMjdkNTRlOS4uNDQ3ODRiM2Q0ZDE3N2M3NzVkZTFlZGMwNDBhYTgyMmIyOWVi
NmQ4YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9xdC9OZXR3
b3JrU3RhdGVOb3RpZmllclByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL3F0L05ldHdvcmtTdGF0ZU5vdGlmaWVyUHJpdmF0ZS5oCkBAIC0yMSw2ICsyMSw3IEBA
CiAjZGVmaW5lIE5ldHdvcmtTdGF0ZU5vdGlmaWVyUHJpdmF0ZV9oCiAKICNpbmNsdWRlIDxRT2Jq
ZWN0PgorI2luY2x1ZGUgPHd0Zi9Pd25QdHIuaD4KIAogUVRfQkVHSU5fTkFNRVNQQUNFCiBjbGFz
cyBRTmV0d29ya0NvbmZpZ3VyYXRpb25NYW5hZ2VyOwpAQCAtMzUsMTIgKzM2LDE4IEBAIGNsYXNz
IE5ldHdvcmtTdGF0ZU5vdGlmaWVyUHJpdmF0ZSA6IHB1YmxpYyBRT2JqZWN0IHsKIHB1YmxpYzoK
ICAgICBOZXR3b3JrU3RhdGVOb3RpZmllclByaXZhdGUoTmV0d29ya1N0YXRlTm90aWZpZXIqIG5v
dGlmaWVyKTsKICAgICB+TmV0d29ya1N0YXRlTm90aWZpZXJQcml2YXRlKCk7CisKKyAgICB2b2lk
IHNldE5ldHdvcmtBY2Nlc3NBbGxvd2VkKGJvb2wpOworICAgIGJvb2wgZWZmZWN0aXZlbHlPbmxp
bmUoKSBjb25zdCB7IHJldHVybiBtX29ubGluZSAmJiBtX25ldHdvcmtBY2Nlc3NBbGxvd2VkOyB9
CisKIHB1YmxpYyBzbG90czoKLSAgICB2b2lkIG9ubGluZVN0YXRlQ2hhbmdlZChib29sKTsKLSAg
ICB2b2lkIG5ldHdvcmtBY2Nlc3NQZXJtaXNzaW9uQ2hhbmdlZChib29sKTsKKyAgICB2b2lkIHNl
dE9ubGluZVN0YXRlKGJvb2wpOworCitwcml2YXRlIHNsb3RzOgorICAgIHZvaWQgaW5pdGlhbGl6
ZSgpOwogCiBwdWJsaWM6Ci0gICAgUU5ldHdvcmtDb25maWd1cmF0aW9uTWFuYWdlciogbV9jb25m
aWd1cmF0aW9uTWFuYWdlcjsKKyAgICBPd25QdHI8UU5ldHdvcmtDb25maWd1cmF0aW9uTWFuYWdl
cj4gbV9jb25maWd1cmF0aW9uTWFuYWdlcjsKICAgICBib29sIG1fb25saW5lOwogICAgIGJvb2wg
bV9uZXR3b3JrQWNjZXNzQWxsb3dlZDsKICAgICBOZXR3b3JrU3RhdGVOb3RpZmllciogbV9ub3Rp
ZmllcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvcXQvTmV0
d29ya1N0YXRlTm90aWZpZXJRdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L3F0L05ldHdvcmtTdGF0ZU5vdGlmaWVyUXQuY3BwCmluZGV4IGEzNTZiNzEzYjI0NmRkZjlmMDlk
NzQ3ODA1YmRkN2I3MjU5MWFiY2YuLjg4ZGUzYzZiZjcwNjIzMjYyOTY4NTk1YzNlMjFiYmFkOTU5
MjliM2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvcXQvTmV0
d29ya1N0YXRlTm90aWZpZXJRdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9xdC9OZXR3b3JrU3RhdGVOb3RpZmllclF0LmNwcApAQCAtMjMsNTEgKzIzLDYyIEBACiAj
aWYgKFBMQVRGT1JNKFFUKSAmJiAhZGVmaW5lZChRVF9OT19CRUFSRVJNQU5BR0VNRU5UKSkKIAog
I2luY2x1ZGUgIk5ldHdvcmtTdGF0ZU5vdGlmaWVyUHJpdmF0ZS5oIgotI2luY2x1ZGUgInFuZXR3
b3JrY29uZmlnbWFuYWdlci5oIgorI2luY2x1ZGUgPFFOZXR3b3JrQ29uZmlndXJhdGlvbk1hbmFn
ZXI+CisjaW5jbHVkZSA8UVRpbWVyPgorI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CiAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAogTmV0d29ya1N0YXRlTm90aWZpZXJQcml2YXRlOjpOZXR3b3Jr
U3RhdGVOb3RpZmllclByaXZhdGUoTmV0d29ya1N0YXRlTm90aWZpZXIqIG5vdGlmaWVyKQotICAg
IDogbV9jb25maWd1cmF0aW9uTWFuYWdlcihuZXcgUU5ldHdvcmtDb25maWd1cmF0aW9uTWFuYWdl
cigpKQotICAgICwgbV9vbmxpbmUobV9jb25maWd1cmF0aW9uTWFuYWdlci0+aXNPbmxpbmUoKSkK
KyAgICA6IG1fb25saW5lKGZhbHNlKQogICAgICwgbV9uZXR3b3JrQWNjZXNzQWxsb3dlZCh0cnVl
KQogICAgICwgbV9ub3RpZmllcihub3RpZmllcikKIHsKLSAgICBRX0FTU0VSVChub3RpZmllcik7
Ci0gICAgY29ubmVjdChtX2NvbmZpZ3VyYXRpb25NYW5hZ2VyLCBTSUdOQUwob25saW5lU3RhdGVD
aGFuZ2VkKGJvb2wpKSwgdGhpcywgU0xPVChvbmxpbmVTdGF0ZUNoYW5nZWQoYm9vbCkpKTsKKyAg
ICBBU1NFUlQobm90aWZpZXIpOworCisgICAgLy8gSW5pdGlhbGl6YXRpb24gaXMgZGVsYXllZCBi
ZWNhdXNlIFFOZXR3b3JrQ29uZmlndXJhdGlvbk1hbmFnZXIgc3RhcnRzIGEgbmV3IHRocmVhZCB0
aGF0IGNhdXNlcworICAgIC8vIGRlYWRsb2NrIG9uIE1hYyBiZWNhdXNlIGFsbCB0aGUgc3RhdGlj
IGluaXRpYWxpemVycyBzaGFyZSB0aGUgc2FtZSBsb2NrLiBCb3RoIE5ldHdvcmtTdGF0ZU5vdGlm
aWVyIGFuZCBRdCBpbnRlcm5hbHMKKyAgICAvLyB0cmlnZ2VyZWQgaW4gbmV3IHRocmVhZCB1c2Ug
c3RhdGljIGluaXRpYWxpemVyLiBTZWUgYWxzbzogaHR0cDovL29wZW5yYWRhci5hcHBzcG90LmNv
bS8xMTIxNzE1MC4KKyAgICBRVGltZXI6OnNpbmdsZVNob3QoMCwgdGhpcywgU0xPVChpbml0aWFs
aXplKCkpKTsKIH0KIAotdm9pZCBOZXR3b3JrU3RhdGVOb3RpZmllclByaXZhdGU6Om9ubGluZVN0
YXRlQ2hhbmdlZChib29sIGlzT25saW5lKQordm9pZCBOZXR3b3JrU3RhdGVOb3RpZmllclByaXZh
dGU6OnNldE5ldHdvcmtBY2Nlc3NBbGxvd2VkKGJvb2wgaXNBbGxvd2VkKQogewotICAgIGlmICht
X29ubGluZSA9PSBpc09ubGluZSkKKyAgICBpZiAoaXNBbGxvd2VkID09IG1fbmV0d29ya0FjY2Vz
c0FsbG93ZWQpCiAgICAgICAgIHJldHVybjsKIAotICAgIG1fb25saW5lID0gaXNPbmxpbmU7Ci0g
ICAgaWYgKG1fbmV0d29ya0FjY2Vzc0FsbG93ZWQpCisgICAgbV9uZXR3b3JrQWNjZXNzQWxsb3dl
ZCA9IGlzQWxsb3dlZDsKKyAgICBpZiAobV9vbmxpbmUpCiAgICAgICAgIG1fbm90aWZpZXItPnVw
ZGF0ZVN0YXRlKCk7CiB9CiAKLXZvaWQgTmV0d29ya1N0YXRlTm90aWZpZXJQcml2YXRlOjpuZXR3
b3JrQWNjZXNzUGVybWlzc2lvbkNoYW5nZWQoYm9vbCBpc0FsbG93ZWQpCit2b2lkIE5ldHdvcmtT
dGF0ZU5vdGlmaWVyUHJpdmF0ZTo6c2V0T25saW5lU3RhdGUoYm9vbCBpc09ubGluZSkKIHsKLSAg
ICBpZiAoaXNBbGxvd2VkID09IG1fbmV0d29ya0FjY2Vzc0FsbG93ZWQpCisgICAgaWYgKG1fb25s
aW5lID09IGlzT25saW5lKQogICAgICAgICByZXR1cm47CiAKLSAgICBtX25ldHdvcmtBY2Nlc3NB
bGxvd2VkID0gaXNBbGxvd2VkOwotICAgIGlmIChtX29ubGluZSkKKyAgICBtX29ubGluZSA9IGlz
T25saW5lOworICAgIGlmIChtX25ldHdvcmtBY2Nlc3NBbGxvd2VkKQogICAgICAgICBtX25vdGlm
aWVyLT51cGRhdGVTdGF0ZSgpOwogfQogCit2b2lkIE5ldHdvcmtTdGF0ZU5vdGlmaWVyUHJpdmF0
ZTo6aW5pdGlhbGl6ZSgpCit7CisgICAgbV9jb25maWd1cmF0aW9uTWFuYWdlciA9IGFkb3B0UHRy
KG5ldyBRTmV0d29ya0NvbmZpZ3VyYXRpb25NYW5hZ2VyKCkpOworICAgIHNldE9ubGluZVN0YXRl
KG1fY29uZmlndXJhdGlvbk1hbmFnZXItPmlzT25saW5lKCkpOworICAgIGNvbm5lY3QobV9jb25m
aWd1cmF0aW9uTWFuYWdlci5nZXQoKSwgU0lHTkFMKG9ubGluZVN0YXRlQ2hhbmdlZChib29sKSks
IHRoaXMsIFNMT1Qoc2V0T25saW5lU3RhdGUoYm9vbCkpKTsKK30KKwogTmV0d29ya1N0YXRlTm90
aWZpZXJQcml2YXRlOjp+TmV0d29ya1N0YXRlTm90aWZpZXJQcml2YXRlKCkKIHsKLSAgICBkZWxl
dGUgbV9jb25maWd1cmF0aW9uTWFuYWdlcjsKIH0KIAogdm9pZCBOZXR3b3JrU3RhdGVOb3RpZmll
cjo6dXBkYXRlU3RhdGUoKQogewotICAgIGlmIChtX2lzT25MaW5lID09IChwLT5tX29ubGluZSAm
JiBwLT5tX25ldHdvcmtBY2Nlc3NBbGxvd2VkKSkKKyAgICBpZiAobV9pc09uTGluZSA9PSBwLT5l
ZmZlY3RpdmVseU9ubGluZSgpKQogICAgICAgICByZXR1cm47CiAKLSAgICBtX2lzT25MaW5lID0g
cC0+bV9vbmxpbmUgJiYgcC0+bV9uZXR3b3JrQWNjZXNzQWxsb3dlZDsKKyAgICBtX2lzT25MaW5l
ID0gcC0+ZWZmZWN0aXZlbHlPbmxpbmUoKTsKICAgICBpZiAobV9uZXR3b3JrU3RhdGVDaGFuZ2Vk
RnVuY3Rpb24pCiAgICAgICAgIG1fbmV0d29ya1N0YXRlQ2hhbmdlZEZ1bmN0aW9uKCk7CiB9CkBA
IC03NywxMiArODgsMTIgQEAgTmV0d29ya1N0YXRlTm90aWZpZXI6Ok5ldHdvcmtTdGF0ZU5vdGlm
aWVyKCkKICAgICAsIG1fbmV0d29ya1N0YXRlQ2hhbmdlZEZ1bmN0aW9uKDApCiB7CiAgICAgcCA9
IG5ldyBOZXR3b3JrU3RhdGVOb3RpZmllclByaXZhdGUodGhpcyk7Ci0gICAgbV9pc09uTGluZSA9
IHAtPm1fb25saW5lICYmIHAtPm1fbmV0d29ya0FjY2Vzc0FsbG93ZWQ7CisgICAgbV9pc09uTGlu
ZSA9IHAtPmVmZmVjdGl2ZWx5T25saW5lKCk7CiB9CiAKIHZvaWQgTmV0d29ya1N0YXRlTm90aWZp
ZXI6OnNldE5ldHdvcmtBY2Nlc3NBbGxvd2VkKGJvb2wgaXNBbGxvd2VkKQogewotICAgIHAtPm5l
dHdvcmtBY2Nlc3NQZXJtaXNzaW9uQ2hhbmdlZChpc0FsbG93ZWQpOworICAgIHAtPnNldE5ldHdv
cmtBY2Nlc3NBbGxvd2VkKGlzQWxsb3dlZCk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
</data>
<flag name="review"
          id="148187"
          type_id="1"
          status="+"
          setter="vestbo"
    />
          </attachment>
      

    </bug>

</bugzilla>