【问题标题】:Chrome stalls request for 15 secondsChrome 将请求暂停 15 秒
【发布时间】:2018-05-24 19:00:18
【问题描述】:

我们有一个 Angular 2 应用程序,它会随机停止请求 15 秒。问题似乎是 chrome 用完了 TCP/IP 连接。问题仅在chrome中。请求在 chrome dev 选项卡中获取连接 ID: Shows stalling and no connection id

15 秒后响应加载为空。

在 chrome://net-internals/#events 中,请求如下所示:

寻找 15 秒的间隔,chrome 告诉我什么?

t=543333 [st=   50]        HTTP_STREAM_PARSER_READ_HEADERS  [dt=15062]
t=558395 [st=15112]        HTTP_TRANSACTION_READ_RESPONSE_HEADERS

全部:

t=543283 [st=    0] +REQUEST_ALIVE  [dt=15113]
                 --> priority = "MEDIUM"
                 --> url = "https://www.struqtur.se/hyperion/GraphQl?hyperionRevertParapaar=6.4186284125575295"
t=543283 [st=    0]   +URL_REQUEST_DELEGATE  [dt=1]
t=543283 [st=    0]      DELEGATE_INFO  [dt=1]
                     --> delegate_blocked_by = "tillägget Adblock Plus"
t=543284 [st=    1]   -URL_REQUEST_DELEGATE
t=543284 [st=    1]   +URL_REQUEST_START_JOB  [dt=15111]
                   --> load_flags = 258 (BYPASS_CACHE | VERIFY_EV_CERT)
                   --> method = "POST"
                   --> upload_id = "0"
                   --> url = "https://www.struqtur.se/hyperion/GraphQl?hyperionRevertParapaar=6.4186284125575295"
t=543284 [st=    1]      URL_REQUEST_DELEGATE  [dt=0]
t=543284 [st=    1]      HTTP_CACHE_GET_BACKEND  [dt=0]
t=543284 [st=    1]     +HTTP_STREAM_REQUEST  [dt=49]
t=543284 [st=    1]        HTTP_STREAM_JOB_CONTROLLER_BOUND
                       --> source_dependency = 45248 (HTTP_STREAM_JOB_CONTROLLER)
t=543333 [st=   50]        HTTP_STREAM_REQUEST_BOUND_TO_JOB
                       --> source_dependency = 45249 (HTTP_STREAM_JOB)
t=543333 [st=   50]     -HTTP_STREAM_REQUEST
t=543333 [st=   50]     +UPLOAD_DATA_STREAM_INIT  [dt=0]
t=543333 [st=   50]        UPLOAD_DATA_STREAM_INIT  [dt=0]
                       --> is_chunked = false
                       --> net_error = 0 (?)
                       --> total_size = 151
t=543333 [st=   50]     -UPLOAD_DATA_STREAM_INIT
                     --> is_chunked = false
                     --> net_error = 0 (?)
                     --> total_size = 151
t=543333 [st=   50]     +HTTP_TRANSACTION_SEND_REQUEST  [dt=0]
t=543333 [st=   50]        HTTP_TRANSACTION_SEND_REQUEST_HEADERS
                       --> POST /hyperion/GraphQl?hyperionRevertParapaar=6.4186284125575295 HTTP/1.1
                           Host: www.struqtur.se
                           Connection: keep-alive
                           Content-Length: 151
                           Pragma: no-cache
                           Cache-Control: no-cache
                           Accept: application/json, text/plain, */*
                           Origin: https://www.struqtur.se
                           User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.94 Safari/537.36
                           Content-Type: application/json
                           Referer: https://www.struqtur.se/v2/day/handle
                           Accept-Encoding: gzip, deflate, br
                           Accept-Language: sv-SE,sv;q=0.9,en-US;q=0.8,en;q=0.7
                           Cookie: [408 bytes were stripped]
t=543333 [st=   50]        HTTP_TRANSACTION_SEND_REQUEST_BODY
                       --> did_merge = false
                       --> is_chunked = false
                       --> length = 151
t=543333 [st=   50]       +UPLOAD_DATA_STREAM_READ  [dt=0]
                       --> current_position = 0
t=543333 [st=   50]          UPLOAD_DATA_STREAM_READ  [dt=0]
                         --> current_position = 0
t=543333 [st=   50]       -UPLOAD_DATA_STREAM_READ
t=543333 [st=   50]        UPLOAD_DATA_STREAM_READ  [dt=0]
                       --> current_position = 151
t=543333 [st=   50]     -HTTP_TRANSACTION_SEND_REQUEST
t=543333 [st=   50]     +HTTP_TRANSACTION_READ_HEADERS  [dt=15062]
t=543333 [st=   50]        HTTP_STREAM_PARSER_READ_HEADERS  [dt=15062]
t=558395 [st=15112]        HTTP_TRANSACTION_READ_RESPONSE_HEADERS
                       --> HTTP/1.1 200 OK
                           Date: Mon, 11 Dec 2017 09:01:54 GMT
                           Server: Apache
                           Expires: Thu, 19 Nov 1981 08:52:00 GMT
                           Cache-Control: no-cache, no-transform
                           Pragma: no-cache
                           Content-Length: 53
                           Connection: close
                           Content-Type: application/json
t=558395 [st=15112]     -HTTP_TRANSACTION_READ_HEADERS
t=558395 [st=15112]      URL_REQUEST_DELEGATE  [dt=0]
t=558395 [st=15112]   -URL_REQUEST_START_JOB
t=558395 [st=15112]    URL_REQUEST_DELEGATE  [dt=0]
t=558395 [st=15112]    HTTP_TRANSACTION_READ_BODY  [dt=0]
t=558395 [st=15112]    URL_REQUEST_JOB_FILTERED_BYTES_READ
                   --> byte_count = 53
t=558395 [st=15112]    HTTP_TRANSACTION_READ_BODY  [dt=1]
t=558396 [st=15113] -REQUEST_ALIVE

Fininshed request in chrome dev tab

我已经阅读了很多线程并试图解决这个问题但没有运气

Chrome stalls when making multiple requests to same resource?

https://bugs.chromium.org/p/chromium/issues/detail?id=46104

https://bugs.chromium.org/p/chromium/issues/detail?id=447463

我发现的线程/问题相似,但没有解决方案,我希望有人对此类问题有经验并有任何想法

【问题讨论】:

  • 什么代码导致了这个问题?您尝试同时发出多少个请求?为什么你认为这与 Angular 有关?
  • 代码是一个简单的 Angular Post/GET 请求,我们也使用 apollo 客户端,但发起者似乎是问题 一次大约 7 个请求 s2.postimg.org/mvzs9eqp5/Sk_rmklipp.jpg 它可能对 chrome 更重要,但在这种情况下它的角度“引发”了问题
  • 你能在stackblitz.com复制吗?
  • 应用程序太大,无法上传到 stackblitz。该问题也仅与某些客户有关,而不是全部客户,对于大多数客户来说都是有效的。
  • 我怀疑还有很多其他人可以做。

标签: angular google-chrome connection tcp-ip


【解决方案1】:

我在使用 Chrome 时遇到了同样的问题,但我的应用没有使用 Angular。但是,停止请求的 net-internals/#events 条目在发生时是相同的,并且通常受影响的请求同样会停止长达 15 秒,但通常更像是 5-10 秒。

在我的情况下,它发生在应用程序访问内部 API 时,服务器端日志对于停滞的请求是完全正常的(即 API 调用不会比平时花费更长的时间),所以我知道这是 Chrome 中的东西.客户端应用程序部署在 Chromebox 上,这可能很重要,因为我无法在我的工作站上重现该问题。

@torpare-nilsson 你有没有找到更多关于这个的信息?我看到你在 Angular 的 GitHub 上打开了一个问题,但被退回到 SO,这可能是有道理的,因为这看起来是一个 Chrome 问题。

【讨论】:

  • 我们还没有解决这个问题。但这是一个客户端问题并重新发布到 chrome,这就是我们所知道的。我们设法重用连接(connectionId(TCP / IP))的服务器上的宽度保持活动,并且问题的频率减少但没有解决,更多的是一种解决方法。在我们的例子中,它只发生在我们自己的计算机上,而不是我们的客户 (4000)。不同的是,我们可以在客户帐户之间切换,这似乎是导致问题的原因。但这只是一个观察,而不是问题的原因。重启电脑后问题依旧。
猜你喜欢
  • 2015-08-17
  • 1970-01-01
  • 1970-01-01
  • 2012-01-08
  • 2016-05-23
  • 2020-03-20
  • 2020-10-31
  • 1970-01-01
  • 2011-03-07
相关资源
最近更新 更多