[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]

[tor-commits] [meek/master] Disable read/write deadlines when done reading or writing.



commit 7c84d72e5b92e710ef560f493d836d722a65e4bb
Author: David Fifield <david@xxxxxxxxxxxxxxx>
Date:   Thu Apr 10 12:01:01 2014 -0700

    Disable read/write deadlines when done reading or writing.
    
    I was getting long hangs during bootstrapping on Windows 8 in a VM. It
    seemed to happen most often right after receiving a payload of maximum
    size, which mostly happens only during bootstrapping. Increasing the
    timeout to 10 s made it go away. Even though we reset the timeout before
    every read and write operation, my guess is there's some implicit read
    or write that was reusing the timeout of the most recent operation. When
    payloads were big, they took a little more time to process, and failed.
---
 firefox/components/main.js |    2 ++
 1 file changed, 2 insertions(+)

diff --git a/firefox/components/main.js b/firefox/components/main.js
index cff6ef0..2890b37 100644
--- a/firefox/components/main.js
+++ b/firefox/components/main.js
@@ -184,6 +184,7 @@ MeekHTTPHelper.LocalConnectionHandler.prototype = {
             output.write32(data.length);
             MeekHTTPHelper.refreshDeadline(this.transport, deadline);
             output.writeByteArray(data, data.length);
+            MeekHTTPHelper.refreshDeadline(this.transport, null);
         } finally {
             output.close();
         }
@@ -301,6 +302,7 @@ MeekHTTPHelper.RequestReader.prototype = {
         converter.charset = "UTF-8";
         var s = converter.convertFromByteArray(this.buf, this.buf.length);
         var req = JSON.parse(s);
+        MeekHTTPHelper.refreshDeadline(this.transport, null);
         this.callback(req);
     },
 };

_______________________________________________
tor-commits mailing list
tor-commits@xxxxxxxxxxxxxxxxxxxx
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits