<?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>103077</bug_id>
          
          <creation_ts>2012-11-22 09:12:05 -0800</creation_ts>
          <short_desc>REGRESSION(r135486): ASSERT(isMainThread()) hit in LayerTreeRenderer::setActive(bool)</short_desc>
          <delta_ts>2012-11-23 08:38:27 -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>528+ (Nightly build)</version>
          <rep_platform>All</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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Andras Becsi">abecsi</reporter>
          <assigned_to name="Dongseong Hwang">dongseong.hwang</assigned_to>
          <cc>dongseong.hwang</cc>
    
    <cc>jturcotte</cc>
    
    <cc>noam</cc>
    
    <cc>ossy</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>zeno</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>773994</commentid>
    <comment_count>0</comment_count>
    <who name="Andras Becsi">abecsi</who>
    <bug_when>2012-11-22 09:12:05 -0800</bug_when>
    <thetext>The assert has been added in http://trac.webkit.org/changeset/135486 and is hit when starting MiniBrowser:

#0  0x00007ffff7042d9d in WebKit::LayerTreeRenderer::setActive (this=0x7042b0, active=true) at /home/abecsi/devel/git/webkit/Source/WebKit2/UIProcess/CoordinatedGraphics/LayerTreeRenderer.cpp:662
#1  0x00007ffff7261708 in WebKit::ContentsSGNode::ContentsSGNode (this=0x7fff740b4f30, renderer=...) at /home/abecsi/devel/git/webkit/Source/WebKit2/UIProcess/qt/QtWebPageSGNode.cpp:38
#2  0x00007ffff7261f91 in WebKit::QtWebPageSGNode::setRenderer (this=0x7fff740b4cf0, renderer=...) at /home/abecsi/devel/git/webkit/Source/WebKit2/UIProcess/qt/QtWebPageSGNode.cpp:137
#3  0x00007ffff7241b70 in QQuickWebPage::updatePaintNode (this=0x6dff30, oldNode=0x0) at /home/abecsi/devel/git/webkit/Source/WebKit2/UIProcess/API/qt/qquickwebpage.cpp:89
#4  0x00007fffeac68576 in QQuickWindowPrivate::updateDirtyNode(QQuickItem*) () from /home/abecsi/devel/qt5/build/qtbase/lib/libQt5Quick.so.5
#5  0x00007fffeac69474 in QQuickWindowPrivate::updateDirtyNodes() () from /home/abecsi/devel/qt5/build/qtbase/lib/libQt5Quick.so.5
#6  0x00007fffeac694d2 in QQuickWindowPrivate::syncSceneGraph() () from /home/abecsi/devel/qt5/build/qtbase/lib/libQt5Quick.so.5
#7  0x00007fffead3fbe9 in QQuickRenderThreadSingleContextWindowManager::run() () from /home/abecsi/devel/qt5/build/qtbase/lib/libQt5Quick.so.5
#8  0x00007fffe86d1c44 in QThreadPrivate::start(void*) () from /home/abecsi/devel/qt5/build/qtbase/lib/libQt5Core.so.5
#9  0x00007fffe810ce0f in start_thread () from /usr/lib/libpthread.so.0
#10 0x00007fffe741f31d in clone () from /usr/lib/libc.so.6</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>774112</commentid>
    <comment_count>1</comment_count>
    <who name="Dongseong Hwang">dongseong.hwang</who>
    <bug_when>2012-11-22 14:57:10 -0800</bug_when>
    <thetext>I&apos;m sorry for this crash and thanks for reporting.

I think setActive() was designed that only the main thread calls, because m_active is used in the main thread without locking.
In this time, we can make LayerTreeRenderer more thread-safe.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>774127</commentid>
    <comment_count>2</comment_count>
      <attachid>175714</attachid>
    <who name="Dongseong Hwang">dongseong.hwang</who>
    <bug_when>2012-11-22 16:17:20 -0800</bug_when>
    <thetext>Created attachment 175714
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>774128</commentid>
    <comment_count>3</comment_count>
    <who name="Dongseong Hwang">dongseong.hwang</who>
    <bug_when>2012-11-22 16:20:08 -0800</bug_when>
    <thetext>(In reply to comment #2)
&gt; Created an attachment (id=175714) [details]
&gt; Patch

I removed misunderstanding assertions.

setActive() is called from both main thread and painting thread.
It is thread-safe because QQuickWebPage::updatePaintNode locks the main thread before QQuickWebPage::updatePaintNode indirectly calls setActive().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>774129</commentid>
    <comment_count>4</comment_count>
      <attachid>175714</attachid>
    <who name="Dongseong Hwang">dongseong.hwang</who>
    <bug_when>2012-11-22 16:25:35 -0800</bug_when>
    <thetext>Comment on attachment 175714
Patch

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

&gt; Source/WebKit2/UIProcess/CoordinatedGraphics/LayerTreeRenderer.cpp:551
&gt;  void LayerTreeRenderer::renderNextFrame()

callOnMainThread and LayerTreeRenderer::setActive call this method

&gt; Source/WebKit2/UIProcess/CoordinatedGraphics/LayerTreeRenderer.cpp:593
&gt;  void LayerTreeRenderer::purgeGLResources()

QQuickWebPage::updatePaintNode indirectly calls this method.

purgeGLResources() accesses main thread&apos;s data structures and painting thread&apos;s data structures.
However, it is thread-safe because QQuickWebPage::updatePaintNode locks already.

In my opinion, LayerTreeRenderer hugely depends on QQuickWebPage&apos;s locking. If other ports want to use LayerTreeRenderer for threaded compositing, it is a little bit confused. I think we need to refactor later.

&gt; Source/WebKit2/UIProcess/CoordinatedGraphics/LayerTreeRenderer.cpp:658
&gt;  void LayerTreeRenderer::setActive(bool active)

LayerTreeRenderer::LayerTreeRenderer and QQuickWebPage::updatePaintNode call this method.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>774179</commentid>
    <comment_count>5</comment_count>
      <attachid>175714</attachid>
    <who name="Dongseong Hwang">dongseong.hwang</who>
    <bug_when>2012-11-22 20:09:49 -0800</bug_when>
    <thetext>Comment on attachment 175714
Patch

I found some problems yet.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>774181</commentid>
    <comment_count>6</comment_count>
      <attachid>175729</attachid>
    <who name="Dongseong Hwang">dongseong.hwang</who>
    <bug_when>2012-11-22 20:20:06 -0800</bug_when>
    <thetext>Created attachment 175729
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>774580</commentid>
    <comment_count>7</comment_count>
      <attachid>175729</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-23 08:38:24 -0800</bug_when>
    <thetext>Comment on attachment 175729
Patch

Clearing flags on attachment: 175729

Committed r135616: &lt;http://trac.webkit.org/changeset/135616&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>774581</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-23 08:38:27 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>175714</attachid>
            <date>2012-11-22 16:17:20 -0800</date>
            <delta_ts>2012-11-22 20:20:02 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-103077-20121123091459.patch</filename>
            <type>text/plain</type>
            <size>4810</size>
            <attacher name="Dongseong Hwang">dongseong.hwang</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM1NTQ1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggMjRiYWM3NGZjMGMyMDIw
NDA1NTUyNzAwYzI5YzgwODM3MmI3ZGY4OS4uOGRkMjE5ZTM5NmU0YTM4YWY2MDk4NWViZGQzNWFh
NGFkNGM5MzZkNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDIzIEBACiAyMDEyLTExLTIyICBIdWFu
ZyBEb25nc3VuZyAgPGx1eHRlbGxhQGNvbXBhbnkxMDAubmV0PgogCisgICAgICAgIFJFR1JFU1NJ
T04ocjEzNTQ4Nik6IEFTU0VSVChpc01haW5UaHJlYWQoKSkgaGl0IGluIExheWVyVHJlZVJlbmRl
cmVyOjpzZXRBY3RpdmUoYm9vbCkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTEwMzA3NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIFJlbW92ZSBBU1NFUlQoaXNNYWluVGhyZWFkKCkpIGluIG1ldGhvZHMgdGhh
dCB0aGUgcGFpbnRpbmcgdGhyZWFkIGNhbiBjYWxsLiBJbgorICAgICAgICBhZGRpdGlvbiwgYWRk
IGNvbW1lbnRzIHRvIGNsZWFyIHdoaWNoIG1ldGhvZHMgYW5kIG1lbWJlcnMgbmVlZCBzeW5jaHJv
bml6YXRpb24uCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9MYXll
clRyZWVSZW5kZXJlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OkxheWVyVHJlZVJlbmRlcmVyOjpM
YXllclRyZWVSZW5kZXJlcik6CisgICAgICAgIChXZWJLaXQ6OkxheWVyVHJlZVJlbmRlcmVyOjpy
ZW5kZXJOZXh0RnJhbWUpOgorICAgICAgICAoV2ViS2l0OjpMYXllclRyZWVSZW5kZXJlcjo6cHVy
Z2VHTFJlc291cmNlcyk6CisgICAgICAgIChXZWJLaXQ6OkxheWVyVHJlZVJlbmRlcmVyOjpzZXRB
Y3RpdmUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL0xheWVyVHJl
ZVJlbmRlcmVyLmg6CisgICAgICAgIChMYXllclRyZWVSZW5kZXJlcik6CisKKzIwMTItMTEtMjIg
IEh1YW5nIERvbmdzdW5nICA8bHV4dGVsbGFAY29tcGFueTEwMC5uZXQ+CisKICAgICAgICAgW1Rl
eE1hcF0gUmVtb3ZlIGRlcGVuZGVuY3kgb2YgVGV4dHVyZU1hcHBlckxheWVyIG9uIEdyYXBoaWNz
TGF5ZXJUZXh0dXJlTWFwcGVyLgogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTAzMDQ2CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9Db29yZGluYXRlZEdyYXBoaWNzL0xheWVyVHJlZVJlbmRlcmVyLmNwcCBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL0xheWVyVHJlZVJlbmRlcmVyLmNwcApp
bmRleCBmMDU0ZGNhMTY0ZWViMTJlOGRiM2RhOWJkNWFjN2Y2YjE2OTY2MTNmLi5lZTI3NTk3YjJh
MGJhNjc2MzI0ZDRkMWJlMTBiNzY3ZWMyZGM2YmQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9MYXllclRyZWVSZW5kZXJlci5jcHAKKysr
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVl
UmVuZGVyZXIuY3BwCkBAIC02OCw4ICs2OCw4IEBAIHN0YXRpYyBGbG9hdFBvaW50IGJvdW5kZWRT
Y3JvbGxQb3NpdGlvbihjb25zdCBGbG9hdFBvaW50JiBzY3JvbGxQb3NpdGlvbiwgY29uc3QKIAog
TGF5ZXJUcmVlUmVuZGVyZXI6OkxheWVyVHJlZVJlbmRlcmVyKExheWVyVHJlZUNvb3JkaW5hdG9y
UHJveHkqIGxheWVyVHJlZUNvb3JkaW5hdG9yUHJveHkpCiAgICAgOiBtX2xheWVyVHJlZUNvb3Jk
aW5hdG9yUHJveHkobGF5ZXJUcmVlQ29vcmRpbmF0b3JQcm94eSkKLSAgICAsIG1fcm9vdExheWVy
SUQoSW52YWxpZFdlYkxheWVySUQpCiAgICAgLCBtX2lzQWN0aXZlKGZhbHNlKQorICAgICwgbV9y
b290TGF5ZXJJRChJbnZhbGlkV2ViTGF5ZXJJRCkKICAgICAsIG1fYW5pbWF0aW9uc0xvY2tlZChm
YWxzZSkKICNpZiBFTkFCTEUoUkVRVUVTVF9BTklNQVRJT05fRlJBTUUpCiAgICAgLCBtX2FuaW1h
dGlvbkZyYW1lUmVxdWVzdGVkKGZhbHNlKQpAQCAtNTUwLDcgKzU1MCw2IEBAIHZvaWQgTGF5ZXJU
cmVlUmVuZGVyZXI6OmZsdXNoTGF5ZXJDaGFuZ2VzKCkKIAogdm9pZCBMYXllclRyZWVSZW5kZXJl
cjo6cmVuZGVyTmV4dEZyYW1lKCkKIHsKLSAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwogICAg
IGlmIChtX2xheWVyVHJlZUNvb3JkaW5hdG9yUHJveHkpCiAgICAgICAgIG1fbGF5ZXJUcmVlQ29v
cmRpbmF0b3JQcm94eS0+cmVuZGVyTmV4dEZyYW1lKCk7CiB9CkBAIC01OTMsNyArNTkyLDYgQEAg
dm9pZCBMYXllclRyZWVSZW5kZXJlcjo6c3luY1JlbW90ZUNvbnRlbnQoKQogCiB2b2lkIExheWVy
VHJlZVJlbmRlcmVyOjpwdXJnZUdMUmVzb3VyY2VzKCkKIHsKLSAgICBBU1NFUlQoaXNNYWluVGhy
ZWFkKCkpOwogICAgIFRleHR1cmVNYXBwZXJMYXllciogbGF5ZXIgPSB0b1RleHR1cmVNYXBwZXJM
YXllcihyb290TGF5ZXIoKSk7CiAKICAgICBpZiAobGF5ZXIpCkBAIC02NTksNyArNjU3LDYgQEAg
dm9pZCBMYXllclRyZWVSZW5kZXJlcjo6YXBwZW5kVXBkYXRlKGNvbnN0IEZ1bmN0aW9uPHZvaWQo
KT4mIGZ1bmN0aW9uKQogCiB2b2lkIExheWVyVHJlZVJlbmRlcmVyOjpzZXRBY3RpdmUoYm9vbCBh
Y3RpdmUpCiB7Ci0gICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKICAgICBpZiAobV9pc0FjdGl2
ZSA9PSBhY3RpdmUpCiAgICAgICAgIHJldHVybjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVlUmVuZGVyZXIuaCBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL0xheWVyVHJlZVJlbmRl
cmVyLmgKaW5kZXggNDAzMzNjZmExYzVmMTMwNGI4ZjFiOTU5ZjBlZGZmNGMxZjJkZGNjOC4uYzZl
NDdlYmFiMmZkMjZlNzE4ZGM3NGI1ZTFlZGI0ZjhkOWYyMjE4NiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVlUmVuZGVyZXIu
aAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9MYXll
clRyZWVSZW5kZXJlci5oCkBAIC02Nyw3ICs2Nyw2IEBAIHB1YmxpYzoKICAgICB9OwogICAgIGV4
cGxpY2l0IExheWVyVHJlZVJlbmRlcmVyKExheWVyVHJlZUNvb3JkaW5hdG9yUHJveHkqKTsKICAg
ICB2aXJ0dWFsIH5MYXllclRyZWVSZW5kZXJlcigpOwotICAgIHZvaWQgcHVyZ2VHTFJlc291cmNl
cygpOwogICAgIHZvaWQgcGFpbnRUb0N1cnJlbnRHTENvbnRleHQoY29uc3QgV2ViQ29yZTo6VHJh
bnNmb3JtYXRpb25NYXRyaXgmLCBmbG9hdCwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiwgV2Vi
Q29yZTo6VGV4dHVyZU1hcHBlcjo6UGFpbnRGbGFncyA9IDApOwogICAgIHZvaWQgcGFpbnRUb0dy
YXBoaWNzQ29udGV4dChCYWNraW5nU3RvcmU6OlBsYXRmb3JtR3JhcGhpY3NDb250ZXh0KTsKICAg
ICB2b2lkIHNldENvbnRlbnRzU2l6ZShjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmKTsKQEAgLTgx
LDYgKzgwLDEwIEBAIHB1YmxpYzoKIAogICAgIHZvaWQgZGV0YWNoKCk7CiAgICAgdm9pZCBhcHBl
bmRVcGRhdGUoY29uc3QgRnVuY3Rpb248dm9pZCgpPiYpOworCisgICAgLy8gVGhlIHBhaW50aW5n
IHRocmVhZCBtdXN0IGxvY2sgdGhlIG1haW4gdGhyZWFkIHRvIHVzZSBiZWxvdyB0d28gbWV0aG9k
cywgYmVjYXVzZSB0d28gbWV0aG9kcyBhY2Nlc3MgbWVtYmVycyB0aGF0IHRoZSBtYWluIHRocmVh
ZCBtYW5hZ2VzLiBTZWUgbV9sYXllclRyZWVDb29yZGluYXRvclByb3h5LgorICAgIC8vIEN1cnJl
bnRseSwgUVF1aWNrV2ViUGFnZTo6dXBkYXRlUGFpbnROb2RlKCkgbG9ja3MgdGhlIG1haW4gdGhy
ZWFkIGJlZm9yZSBjYWxsaW5nIGJvdGggbWV0aG9kcy4KKyAgICB2b2lkIHB1cmdlR0xSZXNvdXJj
ZXMoKTsKICAgICB2b2lkIHNldEFjdGl2ZShib29sKTsKIAogICAgIHZvaWQgZGVsZXRlTGF5ZXIo
V2ViTGF5ZXJJRCk7CkBAIC0xNjMsNyArMTY2LDEwIEBAIHByaXZhdGU6CiAgICAgU3VyZmFjZUJh
Y2tpbmdTdG9yZU1hcCBtX3N1cmZhY2VCYWNraW5nU3RvcmVzOwogI2VuZGlmCiAKKyAgICAvLyBC
ZWxvdyB0d28gbWVtYmVycyBhcmUgYWNjZXNzZWQgYnkgb25seSB0aGUgbWFpbiB0aHJlYWQuIFRo
ZSBwYWludGluZyB0aHJlYWQgbXVzdCBsb2NrIHRoZSBtYWluIHRocmVhZCB0byBhY2Nlc3MgYm90
aCBtZW1iZXJzLgogICAgIExheWVyVHJlZUNvb3JkaW5hdG9yUHJveHkqIG1fbGF5ZXJUcmVlQ29v
cmRpbmF0b3JQcm94eTsKKyAgICBib29sIG1faXNBY3RpdmU7CisKICAgICBPd25QdHI8V2ViQ29y
ZTo6R3JhcGhpY3NMYXllcj4gbV9yb290TGF5ZXI7CiAKICAgICBMYXllck1hcCBtX2xheWVyczsK
QEAgLTE3MSw3ICsxNzcsNiBAQCBwcml2YXRlOgogICAgIFdlYkxheWVySUQgbV9yb290TGF5ZXJJ
RDsKICAgICBXZWJDb3JlOjpJbnRQb2ludCBtX3JlbmRlcmVkQ29udGVudHNTY3JvbGxQb3NpdGlv
bjsKICAgICBXZWJDb3JlOjpJbnRQb2ludCBtX3BlbmRpbmdSZW5kZXJlZENvbnRlbnRzU2Nyb2xs
UG9zaXRpb247Ci0gICAgYm9vbCBtX2lzQWN0aXZlOwogICAgIGJvb2wgbV9hbmltYXRpb25zTG9j
a2VkOwogI2lmIEVOQUJMRShSRVFVRVNUX0FOSU1BVElPTl9GUkFNRSkKICAgICBib29sIG1fYW5p
bWF0aW9uRnJhbWVSZXF1ZXN0ZWQ7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>175729</attachid>
            <date>2012-11-22 20:20:06 -0800</date>
            <delta_ts>2012-11-23 08:38:24 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-103077-20121123131745.patch</filename>
            <type>text/plain</type>
            <size>7339</size>
            <attacher name="Dongseong Hwang">dongseong.hwang</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM1NTU0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggMGU4ZTY1ZDQ2YzA2ZDU4
NmYwMDIxNzc0YTFkMGI5ZmUzMzBmYzNkZS4uY2VjNmQzOTU3ZjlmODM4ZTgzMzIzY2E0ZjAzMjA0
MmQ3NWE0MDI1YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDMyIEBACiAyMDEyLTExLTIyICBIdWFu
ZyBEb25nc3VuZyAgPGx1eHRlbGxhQGNvbXBhbnkxMDAubmV0PgogCisgICAgICAgIFJFR1JFU1NJ
T04ocjEzNTQ4Nik6IEFTU0VSVChpc01haW5UaHJlYWQoKSkgaGl0IGluIExheWVyVHJlZVJlbmRl
cmVyOjpzZXRBY3RpdmUoYm9vbCkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTEwMzA3NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIEN1cnJlbnRseSwgdGhlIHBhaW50aW5nIHRocmVhZCB1c2VzIHB1cmdlR0xS
ZXNvdXJjZXMoKSBhbmQgc2V0QWN0aXZlKCkuCisgICAgICAgIFFRdWlja1dlYlBhZ2U6OnVwZGF0
ZVBhaW50Tm9kZSgpIGluZGlyZWN0bHkgY2FsbHMgYm90aCBtZXRob2RzIGFmdGVyCisgICAgICAg
IGxvY2tpbmcgdGhlIG1haW4gdGhyZWFkLgorCisgICAgICAgIFRoaXMgcGF0Y2ggY2hhbmdlcyB0
d28gcG9pbnRzLgorICAgICAgICAxLiBSZW1vdmUgQVNTRVJUKGlzTWFpblRocmVhZCgpKSBpbiBt
ZXRob2RzIHRoYXQgdGhlIHBhaW50aW5nIHRocmVhZCBjYW4KKyAgICAgICAgY2FsbC4KKyAgICAg
ICAgMi4gTWFrZSBwdXJnZUdMUmVzb3VyY2VzKCkgYW5kIHNldEFjdGl2ZSgpIGNhbGwgbWV0aG9k
cyBvZgorICAgICAgICBMYXllclRyZWVDb29yZGluYXRvclByb3h5IHZpYSBkaXNwYXRjaE9uTWFp
blRocmVhZCgpLgorCisgICAgICAgICogVUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvTGF5
ZXJUcmVlUmVuZGVyZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpMYXllclRyZWVSZW5kZXJlcjo6
TGF5ZXJUcmVlUmVuZGVyZXIpOgorICAgICAgICAoV2ViS2l0OjpMYXllclRyZWVSZW5kZXJlcjo6
cmVuZGVyTmV4dEZyYW1lKToKKyAgICAgICAgKFdlYktpdDo6TGF5ZXJUcmVlUmVuZGVyZXI6OnB1
cmdlR0xSZXNvdXJjZXMpOgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAgKFdlYktpdDo6TGF5
ZXJUcmVlUmVuZGVyZXI6OnB1cmdlQmFja2luZ1N0b3Jlcyk6CisgICAgICAgIChXZWJLaXQ6Okxh
eWVyVHJlZVJlbmRlcmVyOjpzZXRBY3RpdmUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db29yZGlu
YXRlZEdyYXBoaWNzL0xheWVyVHJlZVJlbmRlcmVyLmg6CisgICAgICAgIChMYXllclRyZWVSZW5k
ZXJlcik6CisKKzIwMTItMTEtMjIgIEh1YW5nIERvbmdzdW5nICA8bHV4dGVsbGFAY29tcGFueTEw
MC5uZXQ+CisKICAgICAgICAgQ29vcmRpbmF0ZWQgR3JhcGhpY3M6IEFkZCBDb29yZGluYXRlZFN1
cmZhY2UgdG8gcmVtb3ZlIHRoZSBkZXBlbmRlbmN5IG9mIFNoYXJlYWJsZVN1cmZhY2UgZnJvbSBD
b29yZGluYXRlZCBHcmFwaGljcy4KICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTEwMDgxOQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9MYXllclRyZWVSZW5kZXJlci5jcHAgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9MYXllclRyZWVSZW5kZXJlci5jcHAK
aW5kZXggZWZlNmE0MDc3MWVjMTlkMGQ5MmNiMWM4YzM3MDU1YjFiY2M5NTA2MS4uMjAxNzVlNTA4
ODM4ODVlZDY1MDM4NWFiNDdhNjYwYzA1ZTY4YmM1OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVlUmVuZGVyZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL0xheWVyVHJl
ZVJlbmRlcmVyLmNwcApAQCAtNjgsOCArNjgsOCBAQCBzdGF0aWMgRmxvYXRQb2ludCBib3VuZGVk
U2Nyb2xsUG9zaXRpb24oY29uc3QgRmxvYXRQb2ludCYgc2Nyb2xsUG9zaXRpb24sIGNvbnN0CiAK
IExheWVyVHJlZVJlbmRlcmVyOjpMYXllclRyZWVSZW5kZXJlcihMYXllclRyZWVDb29yZGluYXRv
clByb3h5KiBsYXllclRyZWVDb29yZGluYXRvclByb3h5KQogICAgIDogbV9sYXllclRyZWVDb29y
ZGluYXRvclByb3h5KGxheWVyVHJlZUNvb3JkaW5hdG9yUHJveHkpCi0gICAgLCBtX3Jvb3RMYXll
cklEKEludmFsaWRXZWJMYXllcklEKQogICAgICwgbV9pc0FjdGl2ZShmYWxzZSkKKyAgICAsIG1f
cm9vdExheWVySUQoSW52YWxpZFdlYkxheWVySUQpCiAgICAgLCBtX2FuaW1hdGlvbnNMb2NrZWQo
ZmFsc2UpCiAjaWYgRU5BQkxFKFJFUVVFU1RfQU5JTUFUSU9OX0ZSQU1FKQogICAgICwgbV9hbmlt
YXRpb25GcmFtZVJlcXVlc3RlZChmYWxzZSkKQEAgLTU1MCw3ICs1NTAsNiBAQCB2b2lkIExheWVy
VHJlZVJlbmRlcmVyOjpmbHVzaExheWVyQ2hhbmdlcygpCiAKIHZvaWQgTGF5ZXJUcmVlUmVuZGVy
ZXI6OnJlbmRlck5leHRGcmFtZSgpCiB7Ci0gICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKICAg
ICBpZiAobV9sYXllclRyZWVDb29yZGluYXRvclByb3h5KQogICAgICAgICBtX2xheWVyVHJlZUNv
b3JkaW5hdG9yUHJveHktPnJlbmRlck5leHRGcmFtZSgpOwogfQpAQCAtNTkzLDcgKzU5Miw2IEBA
IHZvaWQgTGF5ZXJUcmVlUmVuZGVyZXI6OnN5bmNSZW1vdGVDb250ZW50KCkKIAogdm9pZCBMYXll
clRyZWVSZW5kZXJlcjo6cHVyZ2VHTFJlc291cmNlcygpCiB7Ci0gICAgQVNTRVJUKGlzTWFpblRo
cmVhZCgpKTsKICAgICBUZXh0dXJlTWFwcGVyTGF5ZXIqIGxheWVyID0gdG9UZXh0dXJlTWFwcGVy
TGF5ZXIocm9vdExheWVyKCkpOwogCiAgICAgaWYgKGxheWVyKQpAQCAtNjEzLDYgKzYxMSwxMSBA
QCB2b2lkIExheWVyVHJlZVJlbmRlcmVyOjpwdXJnZUdMUmVzb3VyY2VzKCkKICAgICBtX2JhY2tp
bmdTdG9yZXNXaXRoUGVuZGluZ0J1ZmZlcnMuY2xlYXIoKTsKIAogICAgIHNldEFjdGl2ZShmYWxz
ZSk7CisgICAgZGlzcGF0Y2hPbk1haW5UaHJlYWQoYmluZCgmTGF5ZXJUcmVlUmVuZGVyZXI6OnB1
cmdlQmFja2luZ1N0b3JlcywgdGhpcykpOworfQorCit2b2lkIExheWVyVHJlZVJlbmRlcmVyOjpw
dXJnZUJhY2tpbmdTdG9yZXMoKQorewogICAgIGlmIChtX2xheWVyVHJlZUNvb3JkaW5hdG9yUHJv
eHkpCiAgICAgICAgIG1fbGF5ZXJUcmVlQ29vcmRpbmF0b3JQcm94eS0+cHVyZ2VCYWNraW5nU3Rv
cmVzKCk7CiB9CkBAIC02NTksNyArNjYyLDYgQEAgdm9pZCBMYXllclRyZWVSZW5kZXJlcjo6YXBw
ZW5kVXBkYXRlKGNvbnN0IEZ1bmN0aW9uPHZvaWQoKT4mIGZ1bmN0aW9uKQogCiB2b2lkIExheWVy
VHJlZVJlbmRlcmVyOjpzZXRBY3RpdmUoYm9vbCBhY3RpdmUpCiB7Ci0gICAgQVNTRVJUKGlzTWFp
blRocmVhZCgpKTsKICAgICBpZiAobV9pc0FjdGl2ZSA9PSBhY3RpdmUpCiAgICAgICAgIHJldHVy
bjsKIApAQCAtNjY5LDcgKzY3MSw3IEBAIHZvaWQgTGF5ZXJUcmVlUmVuZGVyZXI6OnNldEFjdGl2
ZShib29sIGFjdGl2ZSkKICAgICBtX3JlbmRlclF1ZXVlLmNsZWFyKCk7CiAgICAgbV9pc0FjdGl2
ZSA9IGFjdGl2ZTsKICAgICBpZiAobV9pc0FjdGl2ZSkKLSAgICAgICAgcmVuZGVyTmV4dEZyYW1l
KCk7CisgICAgICAgIGRpc3BhdGNoT25NYWluVGhyZWFkKGJpbmQoJkxheWVyVHJlZVJlbmRlcmVy
OjpyZW5kZXJOZXh0RnJhbWUsIHRoaXMpKTsKIH0KIAogdm9pZCBMYXllclRyZWVSZW5kZXJlcjo6
c2V0QmFja2dyb3VuZENvbG9yKGNvbnN0IFdlYkNvcmU6OkNvbG9yJiBjb2xvcikKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL0xheWVyVHJl
ZVJlbmRlcmVyLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGlj
cy9MYXllclRyZWVSZW5kZXJlci5oCmluZGV4IGQ0OTE5OThkNTU1OGEwZmJhNDg3ODcyNzdkYTY2
NzNkY2EyYzE0OGIuLjcyYjUwNTk3NjQwZTBiNzc5ZWFjY2JkN2U4OTE3NzFiNmQ5ZWY3NzUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL0xh
eWVyVHJlZVJlbmRlcmVyLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Nvb3JkaW5h
dGVkR3JhcGhpY3MvTGF5ZXJUcmVlUmVuZGVyZXIuaApAQCAtNjcsNyArNjcsNiBAQCBwdWJsaWM6
CiAgICAgfTsKICAgICBleHBsaWNpdCBMYXllclRyZWVSZW5kZXJlcihMYXllclRyZWVDb29yZGlu
YXRvclByb3h5Kik7CiAgICAgdmlydHVhbCB+TGF5ZXJUcmVlUmVuZGVyZXIoKTsKLSAgICB2b2lk
IHB1cmdlR0xSZXNvdXJjZXMoKTsKICAgICB2b2lkIHBhaW50VG9DdXJyZW50R0xDb250ZXh0KGNv
bnN0IFdlYkNvcmU6OlRyYW5zZm9ybWF0aW9uTWF0cml4JiwgZmxvYXQsIGNvbnN0IFdlYkNvcmU6
OkZsb2F0UmVjdCYsIFdlYkNvcmU6OlRleHR1cmVNYXBwZXI6OlBhaW50RmxhZ3MgPSAwKTsKICAg
ICB2b2lkIHBhaW50VG9HcmFwaGljc0NvbnRleHQoQmFja2luZ1N0b3JlOjpQbGF0Zm9ybUdyYXBo
aWNzQ29udGV4dCk7CiAgICAgdm9pZCBzZXRDb250ZW50c1NpemUoY29uc3QgV2ViQ29yZTo6Rmxv
YXRTaXplJik7CkBAIC04MSw2ICs4MCwxMCBAQCBwdWJsaWM6CiAKICAgICB2b2lkIGRldGFjaCgp
OwogICAgIHZvaWQgYXBwZW5kVXBkYXRlKGNvbnN0IEZ1bmN0aW9uPHZvaWQoKT4mKTsKKworICAg
IC8vIFRoZSBwYWludGluZyB0aHJlYWQgbXVzdCBsb2NrIHRoZSBtYWluIHRocmVhZCB0byB1c2Ug
YmVsb3cgdHdvIG1ldGhvZHMsIGJlY2F1c2UgdHdvIG1ldGhvZHMgYWNjZXNzIG1lbWJlcnMgdGhh
dCB0aGUgbWFpbiB0aHJlYWQgbWFuYWdlcy4gU2VlIG1fbGF5ZXJUcmVlQ29vcmRpbmF0b3JQcm94
eS4KKyAgICAvLyBDdXJyZW50bHksIFFRdWlja1dlYlBhZ2U6OnVwZGF0ZVBhaW50Tm9kZSgpIGxv
Y2tzIHRoZSBtYWluIHRocmVhZCBiZWZvcmUgY2FsbGluZyBib3RoIG1ldGhvZHMuCisgICAgdm9p
ZCBwdXJnZUdMUmVzb3VyY2VzKCk7CiAgICAgdm9pZCBzZXRBY3RpdmUoYm9vbCk7CiAKICAgICB2
b2lkIGRlbGV0ZUxheWVyKFdlYkxheWVySUQpOwpAQCAtMTExLDcgKzExNCw2IEBAIHB1YmxpYzoK
IAogI2lmIEVOQUJMRShSRVFVRVNUX0FOSU1BVElPTl9GUkFNRSkKICAgICB2b2lkIHJlcXVlc3RB
bmltYXRpb25GcmFtZSgpOwotICAgIHZvaWQgYW5pbWF0aW9uRnJhbWVSZWFkeSgpOwogI2VuZGlm
CiAKIHByaXZhdGU6CkBAIC0xMjEsMjIgKzEyMywyNyBAQCBwcml2YXRlOgogICAgIFdlYkNvcmU6
OkdyYXBoaWNzTGF5ZXIqIHJvb3RMYXllcigpIHsgcmV0dXJuIG1fcm9vdExheWVyLmdldCgpOyB9
CiAKICAgICB2b2lkIHN5bmNSZW1vdGVDb250ZW50KCk7CisgICAgdm9pZCBhZGp1c3RQb3NpdGlv
bkZvckZpeGVkTGF5ZXJzKCk7CiAKICAgICAvLyBSZWltcGxlbWVudGF0aW9ucyBmcm9tIFdlYkNv
cmU6OkdyYXBoaWNzTGF5ZXJDbGllbnQuCiAgICAgdmlydHVhbCB2b2lkIG5vdGlmeUFuaW1hdGlv
blN0YXJ0ZWQoY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NMYXllciosIGRvdWJsZSkgeyB9CiAgICAg
dmlydHVhbCB2b2lkIG5vdGlmeUZsdXNoUmVxdWlyZWQoY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NM
YXllciopIHsgfQogICAgIHZpcnR1YWwgdm9pZCBwYWludENvbnRlbnRzKGNvbnN0IFdlYkNvcmU6
OkdyYXBoaWNzTGF5ZXIqLCBXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQmLCBXZWJDb3JlOjpHcmFw
aGljc0xheWVyUGFpbnRpbmdQaGFzZSwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYpIE9WRVJSSURF
IHsgfQogCi0gICAgdm9pZCB1cGRhdGVWaWV3cG9ydCgpOwogICAgIHZvaWQgZGlzcGF0Y2hPbk1h
aW5UaHJlYWQoY29uc3QgRnVuY3Rpb248dm9pZCgpPiYpOwotICAgIHZvaWQgYWRqdXN0UG9zaXRp
b25Gb3JGaXhlZExheWVycygpOworICAgIHZvaWQgdXBkYXRlVmlld3BvcnQoKTsKKyNpZiBFTkFC
TEUoUkVRVUVTVF9BTklNQVRJT05fRlJBTUUpCisgICAgdm9pZCBhbmltYXRpb25GcmFtZVJlYWR5
KCk7CisjZW5kaWYKKyAgICB2b2lkIHJlbmRlck5leHRGcmFtZSgpOworICAgIHZvaWQgcHVyZ2VC
YWNraW5nU3RvcmVzKCk7CisKIAogICAgIHZvaWQgYXNzaWduSW1hZ2VCYWNraW5nVG9MYXllcihX
ZWJDb3JlOjpHcmFwaGljc0xheWVyKiwgQ29vcmRpbmF0ZWRJbWFnZUJhY2tpbmdJRCk7CiAgICAg
dm9pZCByZW1vdmVSZWxlYXNlZEltYWdlQmFja2luZ3NJZk5lZWRlZCgpOwogICAgIHZvaWQgZW5z
dXJlUm9vdExheWVyKCk7CiAgICAgdm9pZCBlbnN1cmVMYXllcihXZWJMYXllcklEKTsKICAgICB2
b2lkIGNvbW1pdFRpbGVPcGVyYXRpb25zKCk7Ci0gICAgdm9pZCByZW5kZXJOZXh0RnJhbWUoKTsK
IAogICAgIFBhc3NSZWZQdHI8Q29vcmRpbmF0ZWRCYWNraW5nU3RvcmU+IGdldEJhY2tpbmdTdG9y
ZShXZWJDb3JlOjpHcmFwaGljc0xheWVyKik7CiAgICAgdm9pZCByZW1vdmVCYWNraW5nU3RvcmVJ
Zk5lZWRlZChXZWJDb3JlOjpHcmFwaGljc0xheWVyKik7CkBAIC0xNjMsNyArMTcwLDEwIEBAIHBy
aXZhdGU6CiAgICAgU3VyZmFjZUJhY2tpbmdTdG9yZU1hcCBtX3N1cmZhY2VCYWNraW5nU3RvcmVz
OwogI2VuZGlmCiAKKyAgICAvLyBCZWxvdyB0d28gbWVtYmVycyBhcmUgYWNjZXNzZWQgYnkgb25s
eSB0aGUgbWFpbiB0aHJlYWQuIFRoZSBwYWludGluZyB0aHJlYWQgbXVzdCBsb2NrIHRoZSBtYWlu
IHRocmVhZCB0byBhY2Nlc3MgYm90aCBtZW1iZXJzLgogICAgIExheWVyVHJlZUNvb3JkaW5hdG9y
UHJveHkqIG1fbGF5ZXJUcmVlQ29vcmRpbmF0b3JQcm94eTsKKyAgICBib29sIG1faXNBY3RpdmU7
CisKICAgICBPd25QdHI8V2ViQ29yZTo6R3JhcGhpY3NMYXllcj4gbV9yb290TGF5ZXI7CiAKICAg
ICBMYXllck1hcCBtX2xheWVyczsKQEAgLTE3MSw3ICsxODEsNiBAQCBwcml2YXRlOgogICAgIFdl
YkxheWVySUQgbV9yb290TGF5ZXJJRDsKICAgICBXZWJDb3JlOjpJbnRQb2ludCBtX3JlbmRlcmVk
Q29udGVudHNTY3JvbGxQb3NpdGlvbjsKICAgICBXZWJDb3JlOjpJbnRQb2ludCBtX3BlbmRpbmdS
ZW5kZXJlZENvbnRlbnRzU2Nyb2xsUG9zaXRpb247Ci0gICAgYm9vbCBtX2lzQWN0aXZlOwogICAg
IGJvb2wgbV9hbmltYXRpb25zTG9ja2VkOwogI2lmIEVOQUJMRShSRVFVRVNUX0FOSU1BVElPTl9G
UkFNRSkKICAgICBib29sIG1fYW5pbWF0aW9uRnJhbWVSZXF1ZXN0ZWQ7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>