Linux核心脑损伤臭虫,可能促使PostgreSQL资料遗失且没有任何错误通知
2018-05-03 17:42:10 | 来源:ithome | 投稿:小艾 | 编辑:dations

原标题:Linux核心脑损伤臭虫,可能促使PostgreSQL资料遗失且没有任何错误通知

PostgreSQL社交发现,在Linux上使用PostgreSQL,有机会发生核心处理I/O错误造成资料遗失,且系统不会回报任何的错误讯息,PostgreSQL执行缓冲I/O的方式恶化了这个错误,Linux社交表示,这并非Linux独有的问题,OpenBSD和NetBSD都可能受影响而且很难解决。

PostgreSQL支援工程师Craig△Ringer在3月的时候,于pgsql-hackers邮件列表首次回报了这个问题。简单来说,当fsync()被呼叫,PostgreSQL便会假设所有资料都成功写入到永久储存中,但事实并非总是如此。

当由硬件错误引发的缓冲I/O写入失败时,档案系统会作出不同的回应,而这个动作通常包括丢弃受影响页面,并将页面的资料标示为清空,所以之前写入资料的区块,可能回传除了写入资料之外的内容。

由于Linux社交在档案系统的错误报告还未达成共识,以至于错误报告在去年LSFMM会议上被人指称一团乱,这也让应用程序很难正确地获得通知,在核心4.13版本对此问题做了部分补丁,但是仍然没有提供完整的解决方案,而这样的情况发生在PostgreSQL,便会造成无警示的资料失败。

PostgreSQL社交对Linux这样的问题多表达不满,他们认为,无法写入的页面应该保存在记忆体内,将状态标记为Dirty并在稍后再次尝试,而且相关的档案描述符( File△Descriptor)状态也应该设为永久错误,让PostgreSQL伺服器不会错过这个存在的问题。

开源软件知名贡献者Tom△Lane表示,这样的错误根本是核心脑损伤(Kernel△Brain△Damage),而EnterpriseDB副总裁同时也是PostgreSQL社交重要成员Robert△Haas则认为,会发生这样的问题百分之一百不合理。

Robert△Haas进一步解释错误发生的细节,PostgreSQL伺服器服务由一群程序集合而成,许多程序都能执行资料库档案I/O,而呼叫fsync()工作由一个称为Checkpointer的程序执行,该程序负责确保硬盘上的资料一致性,以便在错误发生时回复。而Checkpointer不会总是一直开启所有的相关档案,通常只会在呼叫fsync()前打开文件。

而这就是问题发生的地方,Robert△Haas表示,即便在4.13或是更高的核心版本,Checkpointer在打开档案之前,不会知道有任何错误发生,如果Checkpointer在真正执行开启档案之前,系统发生了错误,fsync()呼叫仍会回传成功。Robert△Haas认为,这样的核心设计,也会对其他应用程序造成问题,不仅是PostgreSQL。

Linux社交讨论提到,Google有自己的I/O错误处理机制,核心会通过Netlink△socket回报I/O错误,这样的处理方式对于PostgreSQL可能是完美的,因此暂时解决办法可能采取这个方向进行。

而Linux社交对于该问题的解决方案,普遍共识认为应该让PostgreSQL执行直接I/O(Direct△I/O,DIO),一般来说直接I/O可以更容易控制回写以及I/O,也能存取I/O操作所发生的错误讯息。但是他们也同意这项工作是大工程,不会很快被实现。

但无论是哪一种的解决办法,更新都需要在新一版的核心才会出现。

tags:

上一篇  下一篇

相关:

铸造“国之重器”!国瓷永丰源以核心技术让中国瓷器复兴 推荐

从英文名称“China”一词即可看出,中国的瓷器及相关文化在全球都有着源远流长的影响。早在三千多年前的商代,“原始青瓷器”的出现就成为中国瓷器历史的开端,至今绵延不绝。长久以来,瓷器被视为中国独具代表的荣耀

冰汽时代蒸汽核心怎么获得 [游戏攻略]

冰汽时代蒸汽核心怎么获得?蒸汽核心在游戏中的作用相当大,但是数量却相当的少,很多小伙伴甚至都不知道怎么获得,今天小编为大家介绍冰汽时代蒸汽核心的获得方法冰汽时代蒸汽核心获得方法一览1.研究出热气球后,派遣

GitHub发现以明文纪录用户密码的内部臭虫

图片来源: GitHub GitHub本周二(5/2)以电子邮件知会用户,指出在定期检查内部程式时发现其登录系统含有一臭虫,以明文纪录了少数使用者的密码,并要收到邮件的用户尽速重设密码。GitHub于邮件中说明,一般而言,该

这款神药对鼻炎没有任何效果 [热事件]

鼻炎、狐臭难以根治,有不少人选择所谓的民间偏方,或者通过网络渠道购买"神药",然而有些"神药"并没有效果!苏州警方最近破获一起特大生产销售假药案,涉案金额达1100多万元!微商销售假药被抓 去年底,苏州市公安局

面膜选不对小心脸受罪 [热事件]

想要肌肤一直保持好的状态,那么有些护肤品就必不可少了,比如面膜就是很多人在日常保养中会用到的,但在选购这点上,可以说面膜选不对小心脸受罪!实际生活中,也不难看到一些人用完面膜后,皮肤变得更加差的情况,

站长推荐: