【银河麒麟高级服务器操作系统】服务器异常重启故障分析及处理建议

了解更多银河麒麟操作系统全新产品,请点击访问

麒麟软件产品专区:https://product.kylinos.cn

开发者专区:https://developer.kylinos.cn

文档中心:https://document.kylinos.cn


服务器环境以及配置

系统环境

物理机/虚拟机/云/容器

物理机

网络环境

外网/私有网络/无网络

私有网络

硬件环境

处理器:

Hygon C86 7390 32-core Processor

内存:

512 GiB

机器型号

New H3C Technologies Co., Ltd. UniServer R4930 G5 H3 PKG/62DB32

整机类型/架构:

x86

BIOS版本:

HXYH031027-U01 08/03/2023

软件环境

具体操作系统版本

银河麒麟高级服务器操作系统

Kylin Linux Advanced Server release V10 (Sword)

内核版本

4.19.90-25.37.v2101.ky10.x86_64

第三方模块

scap(OE)

现象描述

系统异常重启

现象分析

分析vmcore-dmesg.txt,"invalid opcode: 0000 [#1] SMP NOPTI",表明CPU在执行某条指令时遇到了无效的操作码(opcode)而触发异常,导致系统崩溃。invalid opcode表明CPU执行了无法识别的指令,通常这发生在软件问题或硬件失效上。

RIP(指令指针寄存器)显示异常发生在函数"bpf_prog_9500684e63fa4fd7+0x129d/0x3000"中的0x129d偏移处。结合Code段的反汇编代码"<4c> 09 fb 48 c1",可以看出正是这条指令出错。说明invalid opcode(无效的操作码)来自与函数bpf_prog_9500684e63fa4fd7,该函数来自于自定义bpf程序。

[18594507.173491] invalid opcode: 0000 [#1] SMP NOPTI
[18594507.174449] CPU: 77 PID: 718772 Comm: java Kdump: loaded Tainted: G           OE     4.19.90-25.37.v2101.ky10.x86_64 #1
[18594507.175720] Hardware name: New H3C Technologies Co., Ltd. UniServer R4930 G5 H3 PKG/62DB32, BIOS HXYH031027-U01 08/03/2023
[18594507.176994] RIP: 0010:bpf_prog_9500684e63fa4fd7+0x129d/0x3000
[18594507.177646] Code: 16 4c 09 f6 48 c1 e6 10 48 09 d6 4d 0f b6 75 19 49 c1 e6 08 49 0f b6 55 18 49 09 d6 4d 0f b6 7d 1a 49 0f b6 5d 1b 48 c1 e3 08 <4c> 09 fb 48 c1 e3 10 4c 09 f3 48 c1 e3 20 48 09 f3 48 89 de 48 81
[18594507.178993] RSP: 0018:ffffa05fc164fc70 EFLAGS: 00010256
[18594507.179927] RAX: 000000000000000e RBX: 0000000000000000 RCX: 0000000000000000
[18594507.180621] RDX: 0000000000000000 RSI: 000000000000001e RDI: 0000000000000000
[18594507.181361] RBP: ffffa05fc164fe98 R08: 0000000000000000 R09: ffffffffc0d0a0a0
[18594507.182037] R10: 0000000000000001 R11: 0000000000000000 R12: 0000000000000000
[18594507.182711] R13: ffff8c91c3665920 R14: 0000000000000000 R15: 0000000000000000
[18594507.183378] FS:  00007ef74cfff700(0000) GS:ffff8c42ffd40000(0000) knlGS:0000000000000000
[18594507.184049] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[18594507.184717] CR2: 00007f63c9f1d000 CR3: 0000006e3167c000 CR4: 00000000003406e0
[18594507.185387] Call Trace:
[18594507.186070]  ? tcp_recvmsg+0x33d/0xd30
[18594507.186737]  ? inet_recvmsg+0x5b/0xd0
[18594507.187398]  ? sock_read_iter+0x92/0xf0
[18594507.188051]  ? recalibrate_cpu_khz+0x10/0x10
[18594507.188700]  ? ktime_get_with_offset+0x59/0xc0
[18594507.189351]  ? bpf_trace_run2+0x2d/0x50
[18594507.189993]  ? syscall_trace_enter+0x2ad/0x2e0
[18594507.190627]  ? bpf_trace_run2+0x2d/0x50
[18594507.191324]  ? do_syscall_64+0x153/0x1d0
[18594507.191954]  ? entry_SYSCALL_64_after_hwframe+0x44/0xa9
[18594507.192578] Modules linked in: nfsv3 nfs_acl rpcsec_gss_krb5 auth_rpcgss nfsv4 dns_resolver nfs lockd grace fscache cdc_ether usbnet mii iptable_raw xt_CT macvlan scap(OE) ip6table_nat nf_nat_ipv6 ip6_tables xt_set ip_set_hash_ipportnet ip_set_bitmap_port ip_set_hash_ipportip ip_set_hash_ipport ip_set dummy iptable_mangle xt_comment xt_mark xt_conntrack ipt_MASQUERADE nf_conntrack_netlink nfnetlink xt_addrtype iptable_filter iptable_nat nf_nat_ipv4 nf_nat aufs overlay fuse br_netfilter bridge ip_vs_sh ip_vs_wrr ip_vs_rr ip_vs nf_conntrack nf_defrag_ipv6 nf_defrag_ipv4 udp_diag tcp_diag inet_diag 8021q garp mrp stp llc bonding rfkill sunrpc amd64_edac_mod edac_mce_amd vfat fat kvm_amd ccp kvm irqbypass ipmi_ssif joydev crct10dif_pclmul ses crc32_pclmul enclosure scsi_transport_sas ghash_clmulni_intel
[18594507.197429]  pcspkr sg i2c_piix4 k10temp ipmi_si ipmi_devintf ipmi_msghandler acpi_cpufreq ip_tables xfs libcrc32c sd_mod ast i2c_algo_bit drm_kms_helper mlx5_core syscopyarea sysfillrect sysimgblt fb_sys_fops ttm crc32c_intel ahci libahci drm mlxfw libata devlink megaraid_sas dm_mirror dm_region_hash dm_log dm_mod

以下是按调用顺序排列的堆栈跟踪分析,堆栈显示异常主要源于与网络相关的系统调用经过BPF程序处理时发生了问题。BPF程序在处理网络套接字数据时,可能因编写错误或与内核版本不匹配而执行了非法指令。

do_syscall_64+0x153/0x1d0
 syscall_trace_enter+0x2ad/0x2e0 用于分析或调试目的
  bpf_trace_run2+0x2d/0x50  涉及执行BPF程序
   ktime_get_with_offset+0x59/0xc0 获取当前时间,可能用作事件时间戳
    recalibrate_cpu_khz+0x10/0x10 通常用于校准CPU频率
     sock_read_iter+0x92/0xf0 套接字读取操作,通过迭代器读入数据
      inet_recvmsg+0x5b/0xd0 处理来自网络通信的消息接收
       tcp_recvmsg+0x33d/0xd30 处理TCP网络通信的消息收取操作
        bpf_prog_9500684e63fa4fd7+0x129d/0x3000 导致非法指令错误的BPF程序

分析结果

堆栈显示异常主要源于与网络相关的系统调用经过BPF程序处理时发生了问题。问题的根源很可能在于BPF规则存在缺陷,生成了非法的指令序列。BPF规则通常由应用程序在用户态定义,然后传入内核执行,不当的BPF规则可能导致内核执行到非法指令。此外CPU硬件故障也可能导致指令码发生跳变。

后续计划与建议

建议针对该BPF程序进行代码审核与测试。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/891939.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Go语言中的 os.Stat() 与 os.Lstat() 实际应用中,你该如何选择?

文章精选推荐 1 JetBrains Ai assistant 编程工具让你的工作效率翻倍 2 Extra Icons&#xff1a;JetBrains IDE的图标增强神器 3 IDEA插件推荐-SequenceDiagram&#xff0c;自动生成时序图 4 BashSupport Pro 这个ides插件主要是用来干嘛的 &#xff1f; 5 IDEA必装的插件&…

少儿编程:开启多元成长,引领未来之路

今天&#xff0c;想跟大家深入聊聊一个当下热度颇高&#xff0c;却又让不少家长心存疑惑的话题 —— 少儿为什么要学习编程。 咱们先把目光投向国家层面的教育政策风向。近几年&#xff0c;国家对科技创新人才的培养予以了前所未有的重视&#xff0c;一系列重磅政策相继出台&a…

在vscode上

第一步 安装插件 &#xff08;1&#xff09;从菜单处打开vscode&#xff0c;之后点击左侧“拓展”&#xff0c;在搜索栏输入“platform”&#xff0c;安装这个插件。 注&#xff1a;安装过程可能会慢一点&#xff0c;可以尝试连接自己的热点 &#xff08;2&#xff09;安装完…

产品心、用户脑、押重注......解读vivo穿越周期之道

出品 | 何玺 排版 | 叶媛 国内科技企业中&#xff0c;vivo绝对算个“异类”。给人以平和谦逊、稳健踏实的印象&#xff0c;却极具实力&#xff01; 回望vivo发展历程&#xff0c;这家拥有近30年历史的超大型全球化产业科技生态型公司&#xff0c;从功能机到智能机一路走来&am…

jenkins入门4 --window执行execute shell

1、启动关闭jenkins 在Windows环境下&#xff0c;如果你需要关闭Jenkins服务&#xff0c;可以通过以下几种方式&#xff1a; 1、使用Windows服务管理器&#xff1a; 打开“运行”对话框&#xff08;Win R&#xff09;&#xff0c;输入services.msc&#xff0c;然后回车。 在服…

矩阵碰一碰发视频源码搭建全解析,支持OEM

在数字化营销与互动体验需求日益增长的当下&#xff0c;矩阵碰一碰发视频功能以其独特的交互性和高效的信息传播能力&#xff0c;正逐渐成为吸引用户、提升品牌影响力的有力工具。本文将深入探讨如何搭建矩阵碰一碰发视频的源码&#xff0c;帮助开发者实现这一创新功能。 一、技…

软件确认测试和验收测试有什么区别?

在当今快速发展的软件行业中&#xff0c;软件确认测试与验收测试是软件产品生产周期中的重要步骤&#xff0c;但很多人容易混淆&#xff0c;那么这两者之间究竟有什么区别呢? 软件确认测试是一个旨在确保软件产品符合用户需求规格的过程。它对软件的功能、性能和可用性进行深…

Oracle Dataguard 需要配置的参数详解

Oracle Dataguard 需要配置的参数详解 目录 Oracle Dataguard 需要配置的参数详解一、数据库名&#xff1a;DB_NAME二、数据库唯一名&#xff1a;DB_UNIQUE_NAME三、LOG_ARCHIVE_CONFIG四、LOG_ARCHIVE_DEST_1五、LOG_ARCHIVE_DEST_2六、LOG_ARCHIVE_DEST_3七、LOG_ARCHIVE_DES…

cat命令详解

cat 是 Linux/Unix 中的一个非常常用的命令&#xff0c;主要用于 连接 文件并显示文件内容。它的名称来源于 concatenate&#xff08;连接&#xff09;&#xff0c;不仅可以查看文件内容&#xff0c;还能将多个文件合并为一个文件&#xff0c;或用作其他数据流操作。 以下是对 …

php 多进程那点事,用 swoole 如何解决呢 ?

在 PHP 中&#xff0c;多进程的处理通常会遇到一些挑战&#xff0c;比如资源共享、进程间通信、性能优化等。Swoole 是一个高性能的协程和多进程框架&#xff0c;旨在为 PHP 提供异步、并发、协程等功能&#xff0c;解决了传统 PHP 环境中的多进程管理问题。通过使用 Swoole&am…

[sdx12] Qualcomm SDX12查看基线版本

about.html文件 Build部分 Product SDX12.LE.1.0-00263-NBOOT.NEFS.PROD-1.90789.1 Distribution SDX12.LE.1.0|AMSS|Standard|OEM: Build Components部分 从以上截图可以看到以下模块的版本号及格式 BOOT 基线版本号 BOOT.BF.3.1.c3-00010-SDX12AAAAANAZB-1 Distr…

基于CLIP和DINOv2实现图像相似性方面的比较

概述 在人工智能领域&#xff0c;CLIP和DINOv2是计算机视觉领域的两大巨头。CLIP彻底改变了图像理解&#xff0c;而DINOv2为自监督学习带来了新的方法。 在本文中&#xff0c;我们将踏上一段旅程&#xff0c;揭示定义CLIP和DINOv2的优势和微妙之处。我们的目标是发现这些模型…

HC32L160FCUA-QFN32TR

HC32L16x 系列具有灵活的功耗管理系统&#xff0c;超低功耗性能 – 0.8μA3V 深度休眠模式&#xff1a;所有时钟关闭&#xff0c;上电复位有效&#xff0c;IO 状态保持&#xff0c;IO 中断有效&#xff0c;所有寄存器、RAM 和CPU 数据保存状态时的功耗 ● 最大256KB Flash 存…

后台运行 Python

后台运行 Python 如何运行 在后台运行 Python 程序的方式取决于操作系统以及具体需求&#xff08;是否需要退出后继续运行、查看输出等&#xff09;。以下是几种常用方法&#xff1a; 1. 使用 & (Linux/Unix/MacOS) 在命令末尾加上 &&#xff0c;可以让程序在后台运…

LS1046 XFI网口接近10Gbps

硬件平台&#xff1a; CPU LS1046A 1.8GHZ 软件平台&#xff1a; LINUX 4.19.32 BUILDROOT 测试软件&#xff1a; ipferf 整个过程比较曲折&#xff0c;网口默认不能达到这个速度&#xff0c;只有2Gbps以内。需要FMC配置后才能达到9.4Gbps。

逆向安卓抓包

打开Mumu网易&#xff0c;打开设置&#xff0c;打开其他&#xff0c;开启root权限 打开Mumu网易&#xff0c;找到apk安装藏航准备网.apk charles配置&#xff1a;proxy setting 端口9888 查看当地IP:help--->local IP address SSL Proxying Setting--->Add---->IP…

大数据安全需求分析与安全保护工程

26.1 威胁与需求分析 1&#xff09;概念发展 2&#xff09;威胁分析 数据集 安全边界日渐模糊&#xff0c;安全保护难度提升 敏感数据泄漏安全风险增大 数据失真与大数据污染安全风险 大数据处理平台业务连续性与拒绝服务 个人数据广泛分布于多个数据平台&#xff0c;隐…

MOE怎样划分不同专家:K-Means聚类算法来实现将神经元特征聚类划分

MOE怎样划分不同专家:K-Means聚类算法来实现将神经元特征聚类划分 目录 MOE怎样划分不同专家:K-Means聚类算法来实现将神经元特征聚类划分MOE划分不同专家的方法K-Means聚类算法来实现将神经元特征聚类划分成不同专家(行或者列聚类)举例说明怎么聚类,最后神经网络怎么保存M…

一则问答:211集成电路专业,转互联网还是FPGA?

问&#xff1a; 我于2016年毕业于西安电子科技大学集成电路设计与集成系统专业。毕业后&#xff0c;我在一家不知名私企从事PCB绘制和单片机调试工作&#xff0c;持续了一年半。之后&#xff0c;我受律师职业光鲜外表的吸引&#xff0c;尝试了两年的司法考试&#xff0c;但未能…

嵌入式linux系统中QT信号与槽实现

第一:Qt中信号与槽简介 信号与槽是Qt编程的基础。因为有了信号与槽的编程机制,在Qt中处理界面各个组件的交互操作时变得更加直观和简单。 槽函数与一般的函数不同的是:槽函数可以与一个信号关联,当信号被发射时,关联的槽函数被自动执行。 案例操作与实现: #ifndef …