go操作空指针导致supervisor进程服务挂机的坑

一、起因

在数据库中直接手动插入了某条记录,但由于该记录的某个字段的空值,与另一个字段的状态码不符合,在go程序中,突然操作了该空字段的指针,导致程序panic挂机。

panic: runtime error: invalid memory address or nil pointer dereference

二、连锁错误

在go程序挂掉之后,想尝试用supervisor重新启动服务,但也报出错误。用supervisorctl stop也不行

backend_server
FATAL Exited too quickly
(process log may have details)

三、解决问题

最后只能尝试把所有supervisor的服务都关闭了,再一个个重新开启,此时居然成功把go服务启动了。其原因也不太清楚,有高手知道的话,请留言分享!