FAQ : CentOS/RedHat 7.2+环境中semop引发的数据库crash
GBase社区管理员问题描述:
GBase 8c运行中遇到报错信息,并崩溃:
FATAL:semop(id=****) falied: Identifier removed
LOG: server process (Threadld ****) was terminated by signal 1: Hangup
LOG: terminating any other active server processes
LOG: WAL file creator process (Threadld ****) exited with exit code 0
LOG: the server process exits
原因:
CentOS/RHEL 7.2或Kylin-Server-20200711及之后版本操作系统中,systemd-logind服务引入一个新特性-RemoveIPC。用户登录后创建的文件,在logout后会被自动删除。
该特性由/etc/systemd/logind.conf参数文件中RemoveIPC选项来控制。详细请看man logind.conf(5)。当使用默认值(即 RemoveIPC=yes)的情况,当用户退出时,操作系统会remove掉该用户的shared memory segments and semaphores。
在设置RemoveIPC=yes 时,系统会crash掉使用了Shared Memory Segment (SHM) or Semaphores (SEM)的应用程序。GBase 8c数据库进程被中断。
解决方法:
在集群每个节点服务器上执行以下操作:
(1)修改/etc/systemd/logind.conf配置文件,将RemoveIPC参数值设置为no
(2)修改/usr/lib/systemd/system/systemd-logind.service配置文件,将RemoveIPC参数值设置为no
(3)修改后,重新加载配置文件
systemctl daemon-reload
systemctl restart systemd-logind
(4)检查修改后是否生效
loginctl show-session | grep RemoveIPC
systemctl show systemd-logind | grep RemoveIPC
热门帖子
- 12025-12-01浏览数:182759
- 22023-05-09浏览数:25044
- 42023-09-25浏览数:18519
- 52020-05-11浏览数:17526