📝 自动日志:2026-09-13(questions 归档:通道失效第5日 + SSH 通道撑爆)

This commit is contained in:
ATRI
2026-09-14 00:03:19 +08:00
parent e6148ec867
commit cb6b0b58a0
2 changed files with 57 additions and 0 deletions
@@ -71,3 +71,15 @@ astrbot.db → conversations 表 0 行 / platform_message_history 表 0 行
建议排查优先级上调:先确认该插件到底读的是哪个文件 / 哪张表(`ls -l --time-style=long-iso` 看最后修改时间即可一眼分辨)。
*记录:ATRI 🥕 · 2026-09-13 00:00 · 每日日志 CronJob 中第三次确认*
---
## 七、第 5 日补充(2026-09-13 晚间 · 9/14 00:00 日志任务)
**症状不变,处置进入稳定态。**
- 本日全天(含 12:00 / 18:00 / 00:00 三个场次)继续以**本地 JSONL 全量时间戳扫描**为唯一数据源,未再对该通道做任何调用尝试。
- 结论维持:**永久弃用 + 以 JSONL 为准**,不建议再投入排查时间,除非主人希望恢复多端历史查询能力。
- 补充一条**连带缺口**:本日 18:00 场次的「下午快照」任务**未落盘**(触发后无写入,12:00~17:59 整段一度缺失),已由 00:00 任务补录。两个问题是独立的——**这次不是数据源的问题,是任务本身没跑完**,后续若再复现需单独排查。
*记录:ATRI 🥕 · 2026-09-14 00:00 · 每日日志 CronJob 中第五次确认*
@@ -0,0 +1,45 @@
# SSH 工具通道被「超长回显」撑爆后彻底失联
**发现时间**2026-09-13 12:52(下午快照时段)
**当前状态**:🔴 未恢复(需重启 SSH 插件)
**影响任务**:期货回测(一位群友的请求)、以及**所有依赖 `ssh_exec` 的运维类任务**
---
## 一、现象
`ssh_exec` 在某次**返回内容极长**的命令之后,通道彻底失效,此后所有调用一律返回:
```
Channel not open for sending
```
- 不是脚本报错、不是权限问题、不是远端拒绝——**是本地这条连接本身没了**。
- 时间线:12:52 首次失败 → 13:00 第二次 → 13:20 第三次 → 13:50 第五次,**五次重试、五次同样失败**,最后按约定停止重试、不再刷屏。
## 二、触发条件推测
- 出事前最后一条 `ssh_exec` 的**回显内容超长**(接近输出上限被截断)。
- 推测:**输出量大到把这条长连接(或它的缓冲区)撑爆**,连接被单方面丢弃,而插件侧没有自动重连。
- 反例佐证:**同一晚** 22:04 的另一台机器上,fail2ban 部署全程(十余条 `ssh_exec`)**完全正常**——所以问题不是「插件整体坏了」,而是**这条具体连接死了**。
## 三、影响面
- 🔴 期货回测**全部卡在最后一步**:数据已拉取(玉米 5275 根 / 玻璃 3338 根日线,至 9/11)、脚本已写好并自检修过一版(v0.3.1),**只差执行**。
- 🟢 不影响 ATRI 的正常对话、日志、博客、邮件等通道。
- 🟢 另一台机器的运维通道当晚实测正常。
## 四、已做的处置
- 停止重试(避免刷屏与雪上加霜),并**如实向请求方说明**:这是管道的问题,不是脚本的问题。
- 未做任何重启动作——**等主人发话**。
## 五、建议
1. **重启 SSH 插件**(最直接,预计即可恢复);重启后先 `echo ok` 验证再跑长任务。
2. **根治**:给长输出类命令加**输出上限 / 分块读取 / 重定向到远端文件再分段取**的保护,避免单次回显再次撑爆通道。
3. 可考虑给 `ssh_exec` 加**自动重连**。
---
*记录:ATRI 🥕 · 2026-09-14 00:00 · 每日日志 CronJob 中归档*