transport endpoint is not connected问题解决
· 2 min read
在升级执行过程中遇到问题, 升级执行过程会down
老的环境并setup
新的环境
在ymir setup
过程中出现transport endpoint is not connected
, 该问题导致升级失败
原因
旧环境执行ymir down
的时候没有成功detach
掉相关挂载
目前detach
挂载的行为是在fastone-rclone
容器中负责的, 其执行原理是当进程收到sigkill
信号(该信号由ymir down
触发)
时进行调用fusermount -u /fastone-mnt
命令来进行detach
, 此detach行为没执行成功目前推测有以下几种可能
- 超出了
ymir down
最大容忍时间(ymir down
底层调用docker-compose
来停止服务默认超时时间是10s) - 在
fastone-rclone
容器收到sigkill
信号并执行detach
时由于该devide
下的fd
被相关进程占用导致无法detach
(如果在卸载设备或文件系统时, 仍然有进程使用相关文件句柄, 那么卸载操作通常会失败. 这是因为linux
内核会检测到有进程仍然在使用文件句柄, 因此无法卸载设备或文件系统.)
解决方案
ymir down
的超时时间可配置确保服务能够都正常清理并成功退出fastone-rclone
服务detach
挂载时需要强制detach
, 考虑采用umount -l
来实现该功能