You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

macOS环境Docker容器内curl访问BigQuery偶发无限挂起问题

macOS端Docker Ubuntu容器访问bigquery.googleapis.com偶发挂起故障

故障基本情况

本地macOS主机上运行的ubuntu:20.04版本Docker容器中,执行curl bigquery.googleapis.com命令时偶发无限挂起故障;相同命令在macOS宿主机、生产环境中均可正常执行(返回404状态码)。出现故障的容器内部署的是Python Flask应用。

已确认故障特征

  • 故障具备随机性:容器刚启动时curl bigquery.googleapis.com可正常访问,间隔约10分钟后再次执行就会挂起;后续命令可能自行恢复正常,恢复时curl -v输出显示尝试连接的是与故障时段不同的IP地址。
  • 生产环境、所有宿主机本机环境均未复现该问题。
  • 团队不同成员遇到故障的时间不固定,故障发生时对应的目标IP也不相同。
  • 故障发生期间,容器访问其他谷歌服务(例如执行curl servicemanagement.googleapis.com)可正常连通。
  • 故障发生期间,使用其他镜像启动的Docker容器内执行相同curl命令可正常运行。
  • 多个版本的macOS端Docker均出现过该故障。
  • 直接curl请求解析得到的IPv4地址时同样会出现挂起。

核心异常现象

故障发生时存在TCP连接状态不一致问题:

  • 在宿主机执行netstat查看连接状态,显示对应连接为ESTABLISHED状态
  • 在容器内部执行netstat则显示连接处于SYN_SENT状态

初步判断故障方向为:宿主机侧的连接被保持存活,但容器侧的连接被中断;或是由于某些原因,部分ACK报文没有被正确转发到容器内部。

已采集排查证据

macOS宿主机netstat结果

宿主机netstat结果

容器内netstat结果

容器内netstat结果

TCP抓包结果

TCP抓包结果

curl -v执行输出

root@cf8bd850e9ab:/code# curl -v bigquery.googleapis.com
*   Trying 142.251.35.170:80...
* TCP_NODELAY set
*   Trying 2607:f8b0:4006:81e::200a:80...
* TCP_NODELAY set
* Immediate connect fail for 2607:f8b0:4006:81e::200a: Cannot assign requested address
*   Trying 2607:f8b0:4006:81e::200a:80...
* TCP_NODELAY set
* Immediate connect fail for 2607:f8b0:4006:81e::200a: Cannot assign requested address
*   Trying 2607:f8b0:4006:81e::200a:80...
* TCP_NODELAY set
* Immediate connect fail for 2607:f8b0:4006:81e::200a: Cannot assign requested address
*   Trying 2607:f8b0:4006:81e::200a:80...
* TCP_NODELAY set
* Immediate connect fail for 2607:f8b0:4006:81e::200a: Cannot assign requested address

其他补充排查结果

  • netstat -p全量输出已留存
  • curl --ipv4执行输出已留存

内容的提问来源于stack exchange,提问作者Toby Mellor

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.01 21:36:22