mpt2sas0: log_info(0x31120303) 问题分析与解决




一、遇到问题


1、发现某微服务的机器在业务层表现出失败;
在这里插入图片描述

2、登录失败聚集的机器,查看 dmesg 日志,发现共性 log :

mpt2sas0: log_info(0x31120303): originator(PL), code(0x12), sub_code(0x0303)




二、 问题分析


mpt2sas0: log_info(0x31120303): originator(PL), code(0x12), sub_code(0x0303)


先分析下日志是啥意思:


1、 由下图可知,0x3 代表SAS : 因此这个问题和读写 SAS SATA 硬盘有关系。
在这里插入图片描述


2、接下来的 1 ,对应源码,可知对应的是 PL
在这里插入图片描述

0x0 对应 IOP 意思为IO Processor,
0x1 对应 PL 意思为 Protocol Layer,
0x2 对应 IR 意思为 Intergrated RAID。

由于可知, 1 表示协议层出现了问题。

SAS 协议 6 大层:

physical layer物理层,
phy layer,
link layer链路层,
port layer端口层,
transport layer传输层,
application layer应用层。

这里某一层出现了问题。


3、接下来的 12 ,查询发现 12 表示这个命令被终止放弃了 ;
在这里插入图片描述


4、接下来的 sub_code 0x03 意思是:

#define PL_LOGINFO_SUB_CODE_WRONG_REL_OFF_OR_FRAME_LENGTH (0x00000300)

总结一下就是:前发送给 SAS 盘的某个命令因为协议层出现问题被终止了。




三、解决办法


更换主板或相关硬盘,即可解决。




参考文档: mpt2sas0 类似问题追踪


版权声明:本文为weixin_44648216原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。