chore: 导入旧记忆备份供恢复
This commit is contained in:
+21
@@ -0,0 +1,21 @@
|
||||
---
|
||||
title: 坑:脚本终端 3 秒自动断连(Docker exec socket 继承请求超时)
|
||||
type: experience
|
||||
permalink: main/projects/d5a7f581-c442-4554-87b9-ee723b8b0258/坑脚本终端-3-秒自动断连-docker-exec-socket-继承请求超时
|
||||
stable_id: 1dfbc803-3390-4cc7-9a17-6bf86c9bb165
|
||||
scope: project
|
||||
memory_type: experience
|
||||
project_id: d5a7f581-c442-4554-87b9-ee723b8b0258
|
||||
usage_profile_id: 7aee455b-24cc-4008-bdaf-443721e6f939
|
||||
status: active
|
||||
revision: 1
|
||||
request_id: metrix-mig-e1
|
||||
created_at: '2026-08-12T17:37:56.782238+00:00'
|
||||
updated_at: '2026-08-12T17:37:56.782238+00:00'
|
||||
tags:
|
||||
- pitfall
|
||||
- terminal
|
||||
- docker
|
||||
---
|
||||
|
||||
现象:Linux 生产环境脚本工作台终端每 3 秒断开重连循环。根因:Docker API 客户端的 timeout=3 被 exec_start(socket=True) 劫持的原始 socket 继承,终端 3 秒无输出就 recv() 超时,服务端 pump 循环误判为 EOF 关闭 WebSocket 并删容器,前端重连又建新容器。修复:server/app/modules/containers/clients.py 的 create_exec 拿到裸 socket 后 settimeout(None) 改为无限阻塞。教训:docker-py 的全局超时会沿用到 hijacked 长连接,长连接场景必须显式重置 socket 超时。
|
||||
Reference in New Issue
Block a user