记一次 Misskey 升级事故
真是惊心动魄的一次升级,跨了好几个小版本,从 12.110.0
升级到 12.117.1
。主要是之前升级的时候出了点小麻烦,所以升级没那么积极(主要还是怕自己搞不定,慌得一批)。
问题表现
本次升级以后站点呈现一种奇怪的状态:
- 不能发帖
- 不能与联邦宇宙联通
- 未登录的情况下,登录页面空白
- 奇迹般的私信功能还在工作
升级完成,打开主页心里就在喊糟了,因为 Notifications
部件不工作了。我以为是部件出现问题,点到信息提醒界面,一切看起来都很正常,也就准备放着不管了。发现问题是在之后,主页完全没有新的信息流入,我试着发帖以后,发现失败。 当时一整慌乱,以为是之前升级的时候,ssh 断开连接导致升级出现差错,于是又重新走了一遍流程,结果仍旧是这样。
这实在太让人焦虑了,没有 Fedi 我怎么活啊!
查看 CHANGELOG,试图找出在这几个版本升级过程中,额外需要注意的事项,发现似乎和 redis 有关系,但具体是什么我不明白。
解决方法
重启
重启大法在什么时候都应该试试,第二天在糖喵的建议下,我试着先重启看看。
- 重启 VPS
- 重启容器
结果当然是没有恢复啦!不过总算学会查看正在运行的 docker 了。
docker ps
当前正在运行的容器
docker ps -a
列出所有的容器
重新安装
既然重启没有用就重新安装吧。
1. 备份
-
配置文件
docker-compose.yml
default.yml
docker.env
-
数据库
db
文件夹,用户文件files
文件夹,缓存文件redis
文件夹用
tar
打包压缩tar -czvf backup.tar.gz misskey/db misskey/files misskey/redis misskey/docker-compose.yml misskey/.conf
2. 重新安装
参照官方教程安装就好了
3. 还原备份文件
tar -xzvf backup.tar.gz
实际上最后重启容器就好了。但是问题没有这么简单,我在完成安装以后,可以正常打开站点,可是没有连接到用户数据库。此时此刻,我已经不知道该干什么了,只好再次求助糖喵。甚至打算破罐子破摔,来一个全新的站点了。
Troubleshooting
数据库连接失败
实际上是 docker-compose.yml
配置文件的问题,不晓得哪一次更新的时候,配置文件变成了默认的,造成 Misskey 和 PostgreSQL
无法正常连接,需要修改
|
|
站点空白,页面无更新
从前端看表现为 HTTP/1.1 500 Internal Server Error
从后端看表现为
ERR 1 [core] TypeError: Cannot read properties of undefined (reading 'stack')
ERR 1 [core] TypeError: Cannot read properties of undefined (reading 'stack')
[ioredis] Unhandled error event: Error: getaddrinfo ENOTFOUND redis
at GetAddrInfoReqWrap.onlookup [as oncomplete] (node:dns:71:26)
主要锁定是 redis 出现问题。解决方法:将备份的 redis 文件夹改名,重新启动容器,让它自行生成 redis 在宿主机的目录。
终于学会了查看 Docker 日志 docker logs [container ID]
终于摸鱼站重生了