【问题标题】:kernel - postgres segfault error 15 in libc-2.19.so内核 - libc-2.19.so 中的 postgres 段错误 15
【发布时间】:2019-03-24 10:17:20
【问题描述】:

昨天我们在 Debian 8 (Linux xxxxxx 3.16.0-7-amd64 #1 SMP Debian 3.16.59-1 (2018-10-03) x86_64 GNU/Linux) 上运行的 PostgreSQL 9.5.14 崩溃 - 分段错误.数据库关闭所有连接并重新初始化,在恢复模式下保持约 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]: 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 上运行。

【问题讨论】:

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


    【解决方案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 命令。这将为您提供崩溃堆栈跟踪,这可能使您可以找到类似的错误报告。

    【讨论】:

    • 你是绝对正确的 - 我在周末做了一些挖掘并问了很多人,他们得到了类似的答案。周末我们又遇到了 2 次暗恋,所以我们将迁移到带有最新 Debian 9 和最新 PostgreSQL 的全新实例。
    猜你喜欢
    • 1970-01-01
    • 2017-11-07
    • 1970-01-01
    • 2017-10-13
    • 1970-01-01
    • 2013-10-29
    • 1970-01-01
    • 2013-10-31
    • 2023-02-20
    相关资源
    最近更新 更多