Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

HTTP not working: Error 332 (net::ERR_SYN_REPLY_NOT_RECEIVED) #29

Closed
berstend opened this issue May 27, 2013 · 9 comments
Closed

HTTP not working: Error 332 (net::ERR_SYN_REPLY_NOT_RECEIVED) #29

berstend opened this issue May 27, 2013 · 9 comments

Comments

@berstend
Copy link
Contributor

Hi,

when using the latest code from master proxying http requests are not working anymore for me. SSL/https sites run fine.

$ node -v
v0.10.8

Here is the relevant output while trying to access http://www.dnsleaktest.com/:

// Chrome error:
Error 332 (net::ERR_SYN_REPLY_NOT_RECEIVED): Unknown error.
$  ./bin/spdyproxy -k keys/localhost/mykey.pem -c keys/localhost/mycert.pem -p 44300 -U user -P pass -v

127.0.0.1:34884 - GET - stream ID: 25 - priority: 2
GET /
 > host: www.dnsleaktest.com
 > path: /
 > accept: */*
 > accept-charset: ISO-8859-1,utf-8;q=0.7,*;q=0.3
 > accept-encoding: gzip,deflate,sdch
 > accept-language: de-DE,de;q=0.8,en-US;q=0.6,en;q=0.4
 > user-agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.63 Safari/537.31
chrome://net-internals/#events


99123: URL_REQUEST
http://www.dnsleaktest.com/
Start Time: 2013-05-27 16:37:52.284

t=1369665472284 [st=0] +REQUEST_ALIVE  [dt=4]
t=1369665472284 [st=0]    URL_REQUEST_BLOCKED_ON_DELEGATE  [dt=1]
                          --> delegate = "Ghostery-Erweiterung"
t=1369665472285 [st=1]   +URL_REQUEST_START_JOB  [dt=2]
                          --> load_flags = 67174528 (ENABLE_LOAD_TIMING | MAYBE_USER_GESTURE | VERIFY_EV_CERT)
                          --> method = "GET"
                          --> priority = 2
                          --> url = "http://www.dnsleaktest.com/"
t=1369665472285 [st=1]      HTTP_CACHE_GET_BACKEND  [dt=0]
t=1369665472285 [st=1]      HTTP_CACHE_OPEN_ENTRY  [dt=0]
                            --> net_error = -2 (ERR_FAILED)
t=1369665472285 [st=1]      HTTP_CACHE_CREATE_ENTRY  [dt=0]
t=1369665472285 [st=1]      HTTP_CACHE_ADD_TO_ENTRY  [dt=0]
t=1369665472285 [st=1]     +HTTP_STREAM_REQUEST  [dt=0]
t=1369665472285 [st=1]        HTTP_STREAM_REQUEST_BOUND_TO_JOB
                              --> source_dependency = 99126 (HTTP_STREAM_JOB)
t=1369665472285 [st=1]     -HTTP_STREAM_REQUEST
t=1369665472285 [st=1]     +HTTP_TRANSACTION_SEND_REQUEST  [dt=0]
t=1369665472285 [st=1]        HTTP_TRANSACTION_SPDY_SEND_REQUEST_HEADERS
                              --> :host: www.dnsleaktest.com
                                  :method: GET
                                  :path: /
                                  :scheme: http
                                  :version: HTTP/1.1
                                  accept: */*
                                  accept-charset: ISO-8859-1,utf-8;q=0.7,*;q=0.3
                                  accept-encoding: gzip,deflate,sdch
                                  accept-language: de-DE,de;q=0.8,en-US;q=0.6,en;q=0.4
                                  user-agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.63 Safari/537.31
t=1369665472285 [st=1]     -HTTP_TRANSACTION_SEND_REQUEST
t=1369665472285 [st=1]     +HTTP_TRANSACTION_READ_HEADERS  [dt=2]
t=1369665472287 [st=3]        SPDY_STREAM_ERROR
                              --> description = "Didn't receive a response."
                              --> status = -332
                              --> stream_id = 33
t=1369665472287 [st=3]     -HTTP_TRANSACTION_READ_HEADERS
                            --> net_error = -332 (ERR_SYN_REPLY_NOT_RECEIVED)
t=1369665472287 [st=3]   -URL_REQUEST_START_JOB
                          --> net_error = -332 (ERR_SYN_REPLY_NOT_RECEIVED)
t=1369665472288 [st=4] -REQUEST_ALIVE
                        --> net_error = -332 (ERR_SYN_REPLY_NOT_RECEIVED)
99126: HTTP_STREAM_JOB
http://www.dnsleaktest.com/
Start Time: 2013-05-27 16:37:52.285

t=1369665472285 [st=0] +HTTP_STREAM_JOB  [dt=0]
                        --> original_url = "http://www.dnsleaktest.com/"
                        --> url = "http://www.dnsleaktest.com/"
t=1369665472285 [st=0]   +PROXY_SERVICE  [dt=0]
t=1369665472285 [st=0]      PROXY_SERVICE_RESOLVED_PROXY_LIST
                            --> pac_string = "HTTPS localhost:44300"
t=1369665472285 [st=0]   -PROXY_SERVICE
t=1369665472285 [st=0]    SPDY_SESSION_POOL_FOUND_EXISTING_SESSION
                          --> source_dependency = 98852 (SPDY_SESSION)
t=1369665472285 [st=0]    HTTP_STREAM_JOB_BOUND_TO_REQUEST
                          --> source_dependency = 99123 (URL_REQUEST)
t=1369665472285 [st=0] -HTTP_STREAM_JOB

I tried different node versions (0.8 / 0.12) with no luck as well.

Anyone else having these issues?
Thanks.

@berstend
Copy link
Contributor Author

An older version of node-spdyproxy (from April) does not have these issues.

Here is the shrinkwrap output from the current version:

cat npm-shrinkwrap.json 
{
  "name": "spdyproxy",
  "version": "0.2.4",
  "dependencies": {
    "spdy": {
      "version": "1.5.0",
      "from": "spdy@~ 1.5"
    },
    "radius": {
      "version": "0.1.5",
      "from": "radius@~ 0.1"
    },
    "optimist": {
      "version": "0.3.7",
      "from": "optimist@~ 0.3.5",
      "dependencies": {
        "wordwrap": {
          "version": "0.0.2",
          "from": "wordwrap@~0.0.2"
        }
      }
    },
    "colors": {
      "version": "0.6.0-1",
      "from": "colors@*"
    },
    "memory-cache": {
      "version": "0.0.5",
      "from": "memory-cache@*"
    }
  }
}

@igrigorik
Copy link
Owner

Interesting. I believe I just fixed the opposite bug (HTTPS not working - #29).. and I can't reproduce this case - both HTTP and HTTPS sites load fine for me, with latest node (0.10.8) and patched node-spdy.

@chemhack
Copy link
Contributor

I also get this problem frequently, not never succeeded to reproduce it on localhost.

@berstend
Copy link
Contributor Author

I tried using the latest node-spdy 1.8.9 (in hope spdy-http2/node-spdy#95 might somehow magically fix the problem), but unfortunately I still get the aforementioned error (on localhost as well on 3 remote hosts)

HTTPS works perfectly though. :)

Is there anymore useful debug output that I can provide?
I'll try to play a bit more with different code / dependency versions in order to boil down the problem.

@chemhack
Copy link
Contributor

FYI,

in chromium source code, the definition is very weird,

/net/spdy/spdy_session.cc

1519 if (stream->response_received()) {
1520 stream->LogStreamError(ERR_SYN_REPLY_NOT_RECEIVED,
1521 "Received duplicate SYN_REPLY for stream.");
1522 RecordProtocolErrorHistogram(PROTOCOL_ERROR_SYN_REPLY_NOT_RECEIVED);
1523 CloseStream(stream->stream_id(), ERR_SPDY_PROTOCOL_ERROR);
1524 return;
1525 }

The explanation is actually duplicated SYN_REPLY instead of missing SYN_REPLY.

@berstend Are you using any particular authHandler?

@igrigorik
Copy link
Owner

Which version of Chrome are you on?

On Tue, May 28, 2013 at 12:57 PM, Duan Lian notifications@github.comwrote:

FYI,

in chromium source code, the definition is very weird,

/net/spdy/spdy_session.cc

1519 if (stream->response_received()) {
1520 stream->LogStreamError(ERR_SYN_REPLY_NOT_RECEIVED,
1521 "Received duplicate SYN_REPLY for stream.");
1522 RecordProtocolErrorHistogram(PROTOCOL_ERROR_SYN_REPLY_NOT_RECEIVED);
1523 CloseStream(stream->stream_id(), ERR_SPDY_PROTOCOL_ERROR);
1524 return;
1525 }

The explanation is actually duplicated SYN_REPLY instead of missing
SYN_REPLY.

@berstend https://github.com/berstend Are you using any particular
authHandler?


Reply to this email directly or view it on GitHubhttps://github.com//issues/29#issuecomment-18575742
.

@berstend
Copy link
Contributor Author

@chemhack
In my chrome extension that updated the proxy settings I had a listener active that took care of entering user/pass credentials using this: chrome.webRequest.onAuthRequired.addListener.

At first, I thought that was the source of my issues: I removed the listener and the Proxy Authorization dialog appeared, I entered the credentials and was able to use HTTP sites (using local and remote node-spdyproxy instances).
Unfortunately that didn't last very long, the crude 332 error reappeared for good after a while and no more auth dialogs (even when restarting chrome).

I still have the feeling the error might be related to the auth part: While the Proxy Authorization dialog was open I got the 332 on all other tabs until I submitted the credentials.

@igrigorik
I'm using Chrome 26.0.1410.63 on x64 Ubuntu.
edit, the same issues also happen on a second machine (OSX; Chrome 27.0.1453.93).

@berstend
Copy link
Contributor Author

When using node-spdyproxy without authentication I have no issues at all.
All issues are related to using the proxy with Basic-Auth proxy authentication. :)

@chemhack
Copy link
Contributor

@igrigorik It was introduced here mirror/chromium@fce44a0

long time ago really. The original error message was "Received duplicate SYN_REPLY for stream". But no idea why it was labeled as "ERR_SYN_REPLY_NOT_RECEIVED". So misleading.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants