#4320·herdr

0.9.0:当SIGHUP成为退出代码1时,重启仍然可以清除会话

作者: ron23创建于 2026年9月18日更新于 2026年9月18日
标签bugmaintainer-neededp1linuxsessions

这是可复制的臭虫吗?

  • 我确认这是一个可复制的bug, 不是一个特性请求,想法,问题,贡献建议, 或方向检查。
  • 我在下面报告的版本和环境上重现了这个错误 使用提供的确切步骤。

• 当前行为

绝对 失去了我的所有工作空间/工作间/工作间/工作间/工作间/工作间/工作间/工作间(9个工作间共有34个工作间被终止).

在Linux主机重启后,赫德失去了完整的被保存的布局. session.json被明确清除,下一次启动时创建了空默认值 工作空间。

这似乎是被揭开的3415号变体. 大多数窗格出口没有信号:

paine child 已退出 pane id=18 status="Exitstatus {代码:1,信号:none}" paine child 已退出 pane id=30 status="Exitstatus {代码:1,信号:无}" . . . . . . . . 会话保存事件="persist.save" 结局="ok" 工作空间=9 服务器关闭启动 完成服务器关闭 会话清除事件=“persist. clear”结果=“ok”路径=/home/user/.config/herdr/session.json

基础的窗格会话分别报告了SIGHUP,建议用外壳或包装将信号翻译为出站代码1.

在0.9.0中,将 child exit只处理有状态的出站. signal (.is some ()) 归类为中断. 因此,退出代码 1 被作为普通面板处理 关闭,使会话缩小为零并被清除。

同一分类仍为0.9.1。

预期行为

主机关闭必须保留最后一个有效的会话快照,无论窗格进程是报告一个信号还是将其转换为普通的非零退出代码.

session.json 绝不应仅仅因为在服务器收到关闭信号前的窗格进程退出而被清除

  • 复制

我不能肯定,但鉴于这个虫子的重要性,我觉得值得调查。 探员:

使用可支配机器/会话, 因为这可能会删除所有赫德状态 。

  1. 安装Herdr 0.9.0。
  2. 启动Herdr并创建多个工作空间、标签和窗体。
  3. 在一些面板中启动制剂。
  4. 确认~/.config/herdr/session.json存在.
  5. 运行 :

草药更新

  1. 等待更新和服务器关闭完成。
  2. 再次启动Herdr.

影响

绝对 失去了我的所有工作空间/工作间/工作间/工作间/工作间/工作间/工作间/工作间(9个工作间共有34个工作间被终止).

环境

  • 故障时的Herdr服务器:0.9.0
  • 主机:Linux
  • 触发器:主机重启
  • 相关问题:3415
  • 相关修补:3418