内核-libc-2.19.so中的postgres segfault错误15

时间:2018-10-19 13:52:45

标签: postgresql segmentation-fault libc postgresql-9.5 debian-jessie

昨天我们在Debian 8上运行PostgreSQL 9.5.14时崩溃(Linux xxxxxx 3.16.0-7-amd64#1 SMP Debian 3.16.59-1(2018-10-03)x86_64 GNU / Linux)-分段错误。数据库关闭了所有连接,并在恢复模式下自行初始化了大约1分钟。

PostgreSQL日志:

  

2018-10-xx xx:xx:xx UTC [580-2]日志:服务器进程(PID 16461)为   由信号11终止:分段错误

kern.log:

  

十月xx xx:xx:xx xxxxxxxx内核:[117977.301353] postgres [16461]:   segfault at 7efd3237db90 ip 00007efd3237db90 sp 00007ffd26826678错误   15在libc-2.19.so [7efd322a2000 + 1a1000]

根据libc文档(https://support.novell.com/docs/Tids/Solutions/10100304.html)错误代码15表示: NX_EDEADLK 15 resource deadlock would occur-并不能告诉我很多。

能否请您告诉我,我们将来是否可以采取某些措施来避免此问题?因为该服务器当然是生产服务器。 所有软件包当前都是最新的。不幸的是,PG升级不是可选项。服务器在Google Compute Engine上运行。

1 个答案:

答案 0 :(得分:1)

  

错误代码15表示:NX_EDEADLK 15

不,不是This answer在此处解释了如何解释15。

位0、1、2、3置位=>保护故障,写访问,用户模式,保留位的使用。您的postgress进程很可能试图写入一些野指针。

  

如果将来我们能做些什么来避免这个问题?

您只能做的 操作是查找该错误并进行修复,或者升级到已修复该错误的postgress版本(并希望不引入任何新错误) )。

要了解错误可能在哪里,您应该检查是否产生了core转储(如果没有,请启用它们)。如果您有core,请使用gdb /path/to/postgress /path/to/core,然后使用where GDB命令。这将为您提供崩溃堆栈跟踪,这可能使您可以找到类似的错误报告。