<?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>32355</bug_id>
          
          <creation_ts>2009-12-09 16:54:44 -0800</creation_ts>
          <short_desc>Assertion failure when opening a WebSocket connection</short_desc>
          <delta_ts>2009-12-09 19:30:46 -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>Platform</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>OS X 10.5</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="Alexey Proskuryakov">ap</reporter>
          <assigned_to name="Alexey Proskuryakov">ap</assigned_to>
          <cc>levin</cc>
    
    <cc>ukai</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>170250</commentid>
    <comment_count>0</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2009-12-09 16:54:44 -0800</bug_when>
    <thetext>In SocketStreamHandle::readStreamCallback,
        ASSERT(m_state == Open);

This happens because the stream can be unprepared to sending data yet (e.g. if read stream open callback arrived before the write one) and WebSocketChannel mistakenly treats zero return from platformSend() as an error - even though it just means that data was queued for later sending. So, the channel closes and destroys the handle.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>170253</commentid>
    <comment_count>1</comment_count>
      <attachid>44582</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2009-12-09 17:00:05 -0800</bug_when>
    <thetext>Created attachment 44582
proposed fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>170254</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2009-12-09 17:02:41 -0800</bug_when>
    <thetext>style-queue ran check-webkit-style on attachment 44582 without any errors.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>170272</commentid>
    <comment_count>3</comment_count>
    <who name="David Levin">levin</who>
    <bug_when>2009-12-09 18:00:24 -0800</bug_when>
    <thetext>Just fyi, typo in changelog: s/zero if returned/zero is returned/</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>170283</commentid>
    <comment_count>4</comment_count>
      <attachid>44582</attachid>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2009-12-09 19:02:46 -0800</bug_when>
    <thetext>Comment on attachment 44582
proposed fix

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>170294</commentid>
    <comment_count>5</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2009-12-09 19:30:46 -0800</bug_when>
    <thetext>Committed revision 51934.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>44582</attachid>
            <date>2009-12-09 17:00:05 -0800</date>
            <delta_ts>2009-12-09 19:02:45 -0800</delta_ts>
            <desc>proposed fix</desc>
            <filename>ZeroIsGood.txt</filename>
            <type>text/plain</type>
            <size>3213</size>
            <attacher name="Alexey Proskuryakov">ap</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA1MTkzMSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjIgQEAKKzIwMDktMTItMDkgIEFsZXhleSBQcm9za3VyeWFrb3YgIDxhcEBhcHBs
ZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTMyMzU1CisgICAgICAgIEFz
c2VydGlvbiBmYWlsdXJlIHdoZW4gb3BlbmluZyBhIFdlYlNvY2tldCBjb25uZWN0aW9uCisKKyAg
ICAgICAgSSBjb3VsZG4ndCBtYWtlIGEgcmVsaWFibGUgdGVzdCBmb3IgdGhpcy4gT25jZSB0aGUg
dGVzdCBmcm9tIGJ1ZyAzMjI5OSBpcyBsYW5kZWQsIGl0CisgICAgICAgIHdpbGwgcHJvdmlkZSBw
YXJ0aWFsIGNvdmVyYWdlLCBhcyBJIHdhcyBmcmVxdWVudGx5IHNlZWluZyB0aGUgYXNzZXJ0aW9u
IGZhaWx1cmUgd2l0aCBpdC4KKworICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvU29ja2V0U3Ry
ZWFtSGFuZGxlQmFzZS5jcHA6IChXZWJDb3JlOjpTb2NrZXRTdHJlYW1IYW5kbGVCYXNlOjpzZW5k
KToKKyAgICAgICAgSXQncyBub3QgYW4gZXJyb3IgaWYgemVybyBpZiByZXR1cm5lZCBmcm9tIHBs
YXRmb3JtU2VuZCgpIC0gaXQganVzdCBtZWFucyB0aGF0IG5vdGhpbmcgY291bGQKKyAgICAgICAg
YmUgcHVzaGVkIGRvd24gdG8gdGhlIG5ldHdvcmsgbGF5ZXIsIGFuZCBhbGwgZGF0YSB3YXMgcXVl
dWVkIGZvciBsYXRlci4KKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2NmL1NvY2tldFN0cmVh
bUhhbmRsZUNGTmV0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNvY2tldFN0cmVhbUhhbmRsZTo6
cmVhZFN0cmVhbUNhbGxiYWNrKTogVGhpcyB3aWxsIG5vIGxvbmdlciBoYXBwZW4gd2l0aCBTb2Nr
ZXRTdHJlYW0sCisgICAgICAgIGJ1dCBhIGNsaWVudCBjYW4gcG90ZW50aWFsbHkgZGVzdHJveSB0
aGUgaGFuZGxlIGZyb20gYW55IGNhbGxiYWNrLCBzbyB3ZSBuZWVkIHRvIGNoZWNrIHRoYXQKKyAg
ICAgICAgdGhpcyBkaWRuJ3QgaGFwcGVuLgorICAgICAgICAoV2ViQ29yZTo6U29ja2V0U3RyZWFt
SGFuZGxlOjp3cml0ZVN0cmVhbUNhbGxiYWNrKTogRGl0dG8uCisKIDIwMDktMTItMDkgIFNhbSBX
ZWluaWcgIDxzYW1Ad2Via2l0Lm9yZz4KIAogICAgICAgICBSb2xsIG91dCA1MTkxOSBhbmQgNTE5
MjAuIFRoZXkgd2VyZSBpbmNvcnJlY3QgYW5kIHVubmVjZXNzYXJ5IHJpZ2h0IG5vdy4KSW5kZXg6
IFdlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9Tb2NrZXRTdHJlYW1IYW5kbGVCYXNlLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvU29ja2V0U3RyZWFtSGFuZGxlQmFz
ZS5jcHAJKHJldmlzaW9uIDUxOTA4KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1NvY2tl
dFN0cmVhbUhhbmRsZUJhc2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02NSw3ICs2NSw3IEBAIGJv
b2wgU29ja2V0U3RyZWFtSGFuZGxlQmFzZTo6c2VuZChjb25zdCAKICAgICBpbnQgYnl0ZXNXcml0
dGVuID0gMDsKICAgICBpZiAobV9zdGF0ZSA9PSBPcGVuKQogICAgICAgICBieXRlc1dyaXR0ZW4g
PSBwbGF0Zm9ybVNlbmQoZGF0YSwgbGVuZ3RoKTsKLSAgICBpZiAoYnl0ZXNXcml0dGVuIDw9IDAp
CisgICAgaWYgKGJ5dGVzV3JpdHRlbiA8IDApCiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICBp
ZiAobV9idWZmZXIuc2l6ZSgpICsgbGVuZ3RoIC0gYnl0ZXNXcml0dGVuID4gYnVmZmVyU2l6ZSkg
ewogICAgICAgICAvLyBGSVhNRTogcmVwb3J0IGVycm9yIHRvIGluZGljYXRlIHRoYXQgYnVmZmVy
IGhhcyBubyBtb3JlIHNwYWNlLgpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1Nv
Y2tldFN0cmVhbUhhbmRsZUNGTmV0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvY2YvU29ja2V0U3RyZWFtSGFuZGxlQ0ZOZXQuY3BwCShyZXZpc2lvbiA1MTkwOCkK
KysrIFdlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9Tb2NrZXRTdHJlYW1IYW5kbGVDRk5ldC5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTUwMCw3ICs1MDAsMTEgQEAgdm9pZCBTb2NrZXRTdHJlYW1I
YW5kbGU6OnJlYWRTdHJlYW1DYWxsYgogICAgICAgICBpZiAobV9jb25uZWN0aW5nU3Vic3RhdGUg
PT0gV2FpdGluZ0ZvckNvbm5lY3QpIHsKICAgICAgICAgICAgIG1fY29ubmVjdGluZ1N1YnN0YXRl
ID0gQ29ubmVjdGVkOwogICAgICAgICAgICAgbV9zdGF0ZSA9IE9wZW47CisKKyAgICAgICAgICAg
IFJlZlB0cjxTb2NrZXRTdHJlYW1IYW5kbGU+IHByb3RlY3QodGhpcyk7IC8vIFRoZSBjbGllbnQg
Y2FuIGNsb3NlIHRoZSBoYW5kbGUsIHBvdGVudGlhbGx5IHJlbW92aW5nIHRoZSBsYXN0IHJlZmVy
ZW5jZS4KICAgICAgICAgICAgIG1fY2xpZW50LT5kaWRPcGVuKHRoaXMpOworICAgICAgICAgICAg
aWYgKG1fc3RhdGUgPT0gQ2xvc2VkKQorICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAg
ICAgLy8gRmFsbCB0aHJvdWdoLgogICAgICAgICB9IGVsc2UgaWYgKG1fc3RhdGUgPT0gQ2xvc2Vk
KQogICAgICAgICAgICAgYnJlYWs7CkBAIC01NTUsNiArNTU5LDggQEAgdm9pZCBTb2NrZXRTdHJl
YW1IYW5kbGU6OndyaXRlU3RyZWFtQ2FsbAogICAgICAgICBpZiAobV9jb25uZWN0aW5nU3Vic3Rh
dGUgPT0gV2FpdGluZ0ZvckNvbm5lY3QpIHsKICAgICAgICAgICAgIG1fY29ubmVjdGluZ1N1YnN0
YXRlID0gQ29ubmVjdGVkOwogICAgICAgICAgICAgbV9zdGF0ZSA9IE9wZW47CisKKyAgICAgICAg
ICAgIFJlZlB0cjxTb2NrZXRTdHJlYW1IYW5kbGU+IHByb3RlY3QodGhpcyk7IC8vIFRoZSBjbGll
bnQgY2FuIGNsb3NlIHRoZSBoYW5kbGUsIHBvdGVudGlhbGx5IHJlbW92aW5nIHRoZSBsYXN0IHJl
ZmVyZW5jZS4KICAgICAgICAgICAgIG1fY2xpZW50LT5kaWRPcGVuKHRoaXMpOwogICAgICAgICAg
ICAgYnJlYWs7CiAgICAgICAgIH0K
</data>
<flag name="review"
          id="26472"
          type_id="1"
          status="+"
          setter="oliver"
    />
          </attachment>
      

    </bug>

</bugzilla>