love wife love life —Roger的Oracle/MySQL/PostgreSQL数据恢复博客

Phone:18180207355 提供专业Oracle/MySQL/PostgreSQL数据恢复、性能优化、迁移升级、紧急救援等服务

IB驱动问题导致Oracle集群主机重启

本站文章除注明转载外,均为本站原创: 转载自love wife love life —Roger的Oracle/MySQL/PostgreSQL数据恢复博客

本文链接地址: IB驱动问题导致Oracle集群主机重启

某客户分布式存储环境在进行ifdown IB2测试时(Oracle RAC环境有2个心跳网卡;分别是ib0/ib2),发现数据库主机直接crash重启;我们先看看ocssd log:

可以看到18:43:52直接重启了。由于这几套环境我们之前开启了kdump;我将客户的vmcore文件拿到本地进行了简单分析。

下面进一步查看堆栈信息:

从上述堆栈来看是执行kfree 回收slab时失败了。我们可以通过crash工具的dis来查看相关报错代码原文件的具体位置:

接着我们来查看上述2个原文件的524行和424行;看看跟我们的分析是否匹配:

 

可以看到skb_release_data函数需要去调用kfree进行释放;进而报错了。从上面分析来看初步怀疑是IB驱动问题导致;如何查看IB相关的源代码呢?首先我们来看下该环境的IB驱动版本:

从dmesg日志来看是4.5版本。我这里在https://elixir.bootlin.com/linux/latest/source/drivers/net/ethernet/mellanox/mlx4/en_tx.c#L1077 上面可以查看到4.x版本相关函数代码,供参考。

 

Leave a Reply

You must be logged in to post a comment.