<?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>49164</bug_id>
          
          <creation_ts>2010-11-08 01:04:26 -0800</creation_ts>
          <short_desc>[NRWT] If the http lock fails we shouldn&apos;t do any locking</short_desc>
          <delta_ts>2010-11-08 11:03:09 -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>Tools / Tests</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>All</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>
          
          <blocked>48053</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Gabor Rapcsanyi">rgabor</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>abecsi</cc>
    
    <cc>dglazkov</cc>
    
    <cc>dpranke</cc>
    
    <cc>eric</cc>
    
    <cc>ojan</cc>
    
    <cc>ossy</cc>
    
    <cc>tony</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>306050</commentid>
    <comment_count>0</comment_count>
    <who name="Gabor Rapcsanyi">rgabor</who>
    <bug_when>2010-11-08 01:04:26 -0800</bug_when>
    <thetext>If something go wrong with the locking, the test should keep going.
Now if it can&apos;t create the lock it waits indefinitely.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>306055</commentid>
    <comment_count>1</comment_count>
      <attachid>73224</attachid>
    <who name="Gabor Rapcsanyi">rgabor</who>
    <bug_when>2010-11-08 01:23:04 -0800</bug_when>
    <thetext>Created attachment 73224
proposed patch

I put some error check into http_lock.py:
  - lock directory existence check
  - time limit for lock creation</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>306127</commentid>
    <comment_count>2</comment_count>
      <attachid>73224</attachid>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2010-11-08 08:13:42 -0800</bug_when>
    <thetext>Comment on attachment 73224
proposed patch

It is a good workaround to find why the Chromium Windows bot fails when we make http locking default.
Let&apos;s watch the bot!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>306131</commentid>
    <comment_count>3</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2010-11-08 08:28:46 -0800</bug_when>
    <thetext>Landed in http://trac.webkit.org/changeset/71525</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>306151</commentid>
    <comment_count>4</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2010-11-08 09:09:29 -0800</bug_when>
    <thetext>We catched it:

2010-11-08 08:43:35,744 http_lock.py:125  DEBUG Lock does not created: (&lt;type &apos;exceptions.OSError&apos;&gt;, OSError(17, &apos;File exists&apos;), &lt;traceback object at 0x026D7418&gt;)
2010-11-08 08:43:35,744 http_lock.py:132  DEBUG Warning, http locking failed!
2010-11-08 08:43:35,744 dump_render_tree_thread.py:545  DEBUG Starting HTTP server ...

---

It means that _guard_lock_file (WebKit.lock) already exists, because 
it was probably left during previous tries of enabling this feature.

One of you Chromium guys, could you remove WebKit.lock file in tempfile.gettempdir() to make http locking work on Chromium-Win bots? 
- &quot;Chromium Win Release (Tests)&quot; bot on build.webkit.org
- &quot;Webkit Win&quot; bot on http://build.chromium.org/p/chromium.webkit/waterfall

But of course it isn&apos;t the perfect way to avoid this problem in the future.

---
in def _create_lock_file(self):
    sequential_guard_lock = os.open(self._guard_lock_file, os.O_CREAT | os.O_EXCL)
---

This kind of locking will always fail when a WebKit.lock is stucked for some reason. (e.g. script crashes before unlinking the lock file) I prefer a similar way as in httpd.pm, which always open the lock file and then try to grab the exclusive lock for it:

while (!(open(SEQUENTIAL_GUARD_LOCK, &quot;&gt;$exclusiveLockFile&quot;) &amp;&amp; flock(SEQUENTIAL_GUARD_LOCK, LOCK_EX|LOCK_NB))) {}</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>306222</commentid>
    <comment_count>5</comment_count>
    <who name="Tony Chang">tony</who>
    <bug_when>2010-11-08 11:03:09 -0800</bug_when>
    <thetext>(In reply to comment #4)
&gt; One of you Chromium guys, could you remove WebKit.lock file in tempfile.gettempdir() to make http locking work on Chromium-Win bots? 
&gt; - &quot;Chromium Win Release (Tests)&quot; bot on build.webkit.org
&gt; - &quot;Webkit Win&quot; bot on http://build.chromium.org/p/chromium.webkit/waterfall

I deleted the file on the WebKit Win bot on the chromium waterfall.  dglazkov can remove the file (I found it in c:\Documents and Settings\chrome-bot\Local Settings\Temp\) on Chrome Win Release (Tests).</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>73224</attachid>
            <date>2010-11-08 01:23:04 -0800</date>
            <delta_ts>2010-11-08 08:28:59 -0800</delta_ts>
            <desc>proposed patch</desc>
            <filename>http_error_check.patch</filename>
            <type>text/plain</type>
            <size>3254</size>
            <attacher name="Gabor Rapcsanyi">rgabor</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXRUb29scy9D
aGFuZ2VMb2cJKHJldmlzaW9uIDcxNTAyKQorKysgV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTAtMTEtMDggIEdhYm9yIFJhcGNzYW55aSAg
PHJnYWJvckBpbmYudS1zemVnZWQuaHU+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgW05SV1RdIElmIHRoZSBodHRwIGxvY2sgZmFpbHMgd2Ugc2hvdWxk
bid0IGRvIGFueSBsb2NraW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD00OTE2NAorCisgICAgICAgIElmIHNvbWV0aGluZyBnb2VzIHdyb25nIHdpdGgg
dGhlIGxvY2tpbmcsIHRoZSB0ZXN0IHNob3VsZCBrZWVwIGdvaW5nLgorCisgICAgICAgICogU2Ny
aXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9odHRwX2xvY2sucHk6CisKIDIwMTAtMTEt
MDggIEVyaWMgU2VpZGVsICA8ZXJpY0B3ZWJraXQub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5
IEFkYW0gQmFydGguCkluZGV4OiBXZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90
ZXN0cy9wb3J0L2h0dHBfbG9jay5weQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXRUb29scy9TY3JpcHRz
L3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2h0dHBfbG9jay5weQkocmV2aXNpb24gNzE1MDIp
CisrKyBXZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2h0dHBf
bG9jay5weQkod29ya2luZyBjb3B5KQpAQCAtNDUsNyArNDUsOCBAQCBjbGFzcyBIdHRwTG9jayhv
YmplY3QpOgogCiAgICAgZGVmIF9faW5pdF9fKHNlbGYsIGxvY2tfcGF0aCwgbG9ja19maWxlX3By
ZWZpeD0iV2ViS2l0SHR0cGQubG9jay4iLAogICAgICAgICAgICAgICAgICBndWFyZF9sb2NrPSJX
ZWJLaXQubG9jayIpOgotICAgICAgICBpZiBub3QgbG9ja19wYXRoOgorICAgICAgICBzZWxmLl9s
b2NrX3BhdGggPSBsb2NrX3BhdGgKKyAgICAgICAgaWYgbm90IHNlbGYuX2xvY2tfcGF0aDoKICAg
ICAgICAgICAgIHNlbGYuX2xvY2tfcGF0aCA9IHRlbXBmaWxlLmdldHRlbXBkaXIoKQogICAgICAg
ICBzZWxmLl9sb2NrX2ZpbGVfcHJlZml4ID0gbG9ja19maWxlX3ByZWZpeAogICAgICAgICBzZWxm
Ll9sb2NrX2ZpbGVfcGF0aF9wcmVmaXggPSBvcy5wYXRoLmpvaW4oc2VsZi5fbG9ja19wYXRoLApA
QCAtNTMsNiArNTQsOCBAQCBjbGFzcyBIdHRwTG9jayhvYmplY3QpOgogICAgICAgICBzZWxmLl9n
dWFyZF9sb2NrX2ZpbGUgPSBvcy5wYXRoLmpvaW4oc2VsZi5fbG9ja19wYXRoLCBndWFyZF9sb2Nr
KQogICAgICAgICBzZWxmLl9wcm9jZXNzX2xvY2tfZmlsZV9uYW1lID0gIiIKICAgICAgICAgc2Vs
Zi5fZXhlY3V0aXZlID0gRXhlY3V0aXZlKCkKKyAgICAgICAgIyBtYXhpbXVtIHdhaXQgdGltZSBm
b3IgdGhlIGxvY2sgY3JlYXRpb24KKyAgICAgICAgc2VsZi5fZ3VhcmRfbG9ja19tYXhfd2FpdCA9
IDEgKiA2MAogCiAgICAgZGVmIGNsZWFudXBfaHR0cF9sb2NrKHNlbGYpOgogICAgICAgICAiIiJE
ZWxldGUgdGhlIGxvY2sgZmlsZSBpZiBleGlzdHMuIiIiCkBAIC0xMDAsNiArMTAzLDExIEBAIGNs
YXNzIEh0dHBMb2NrKG9iamVjdCk6CiAgICAgICAgICIiIlRoZSBsb2NrIGZpbGVzIGFyZSB1c2Vk
IHRvIHNjaGVkdWxlIHRoZSBydW5uaW5nIHRlc3Qgc2Vzc2lvbnMgaW4gZmlyc3QKICAgICAgICAg
Y29tZSBmaXJzdCBzZXJ2ZWQgb3JkZXIuIFRoZSBzZXF1ZW50aWFsIGd1YXJkIGxvY2sgZW5zdXJl
cyB0aGF0IHRoZSBsb2NrCiAgICAgICAgIG51bWJlcnMgYXJlIHNlcXVlbnRpYWwuIiIiCisgICAg
ICAgIGlmIG5vdCBvcy5wYXRoLmV4aXN0cyhzZWxmLl9sb2NrX3BhdGgpOgorICAgICAgICAgICAg
X2xvZy5kZWJ1ZygiTG9jayBkaXJlY3RvcnkgZG9lcyBub3QgZXhpc3Q6ICVzIiAlIHNlbGYuX2xv
Y2tfcGF0aCkKKyAgICAgICAgICAgIHJldHVybiBGYWxzZQorCisgICAgICAgIHN0YXJ0X3RpbWUg
PSB0aW1lLnRpbWUoKQogICAgICAgICB3aGlsZShUcnVlKToKICAgICAgICAgICAgIHRyeToKICAg
ICAgICAgICAgICAgICBzZXF1ZW50aWFsX2d1YXJkX2xvY2sgPSBvcy5vcGVuKHNlbGYuX2d1YXJk
X2xvY2tfZmlsZSwgb3MuT19DUkVBVCB8IG9zLk9fRVhDTCkKQEAgLTExMSwxMiArMTE5LDE4IEBA
IGNsYXNzIEh0dHBMb2NrKG9iamVjdCk6CiAgICAgICAgICAgICAgICAgbG9ja19maWxlLmNsb3Nl
KCkKICAgICAgICAgICAgICAgICBvcy5jbG9zZShzZXF1ZW50aWFsX2d1YXJkX2xvY2spCiAgICAg
ICAgICAgICAgICAgb3MudW5saW5rKHNlbGYuX2d1YXJkX2xvY2tfZmlsZSkKLSAgICAgICAgICAg
ICAgICBicmVhaworICAgICAgICAgICAgICAgIHJldHVybiBUcnVlCiAgICAgICAgICAgICBleGNl
cHQgT1NFcnJvcjoKLSAgICAgICAgICAgICAgICBwYXNzCisgICAgICAgICAgICAgICAgaWYgdGlt
ZS50aW1lKCkgLSBzdGFydF90aW1lID4gc2VsZi5fZ3VhcmRfbG9ja19tYXhfd2FpdDoKKyAgICAg
ICAgICAgICAgICAgICAgX2xvZy5kZWJ1ZygiTG9jayBkb2VzIG5vdCBjcmVhdGVkOiAlcyIgJSBz
dHIoc3lzLmV4Y19pbmZvKCkpKQorICAgICAgICAgICAgICAgICAgICByZXR1cm4gRmFsc2UKIAog
ICAgIGRlZiB3YWl0X2Zvcl9odHRwZF9sb2NrKHNlbGYpOgotICAgICAgICAiIiJDcmVhdGUgYSBs
b2NrIGZpbGUgYW5kIHdhaXQgdW50aWwgaXQncyB0dXJuIGNvbWVzLiIiIgotICAgICAgICBzZWxm
Ll9jcmVhdGVfbG9ja19maWxlKCkKKyAgICAgICAgIiIiQ3JlYXRlIGEgbG9jayBmaWxlIGFuZCB3
YWl0IHVudGlsIGl0J3MgdHVybiBjb21lcy4gSWYgc29tZXRoaW5nIGdvZXMgd3JvbmcKKyAgICAg
ICAgaXQgd29udCBkbyBhbnkgbG9ja2luZy4iIiIKKyAgICAgICAgaWYgbm90IHNlbGYuX2NyZWF0
ZV9sb2NrX2ZpbGUoKToKKyAgICAgICAgICAgIF9sb2cuZGVidWcoIldhcm5pbmcsIGh0dHAgbG9j
a2luZyBmYWlsZWQhIikKKyAgICAgICAgICAgIHJldHVybgorCiAgICAgICAgIHdoaWxlIHNlbGYu
X2N1cmVudF9sb2NrX3BpZCgpICE9IG9zLmdldHBpZCgpOgogICAgICAgICAgICAgdGltZS5zbGVl
cCgxKQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>